Supongo que recibe un mensaje de la puerta de enlace como: (Session #, UserInput) y necesita calcular la siguiente información para enviar al usuario?
propongo:
mesa currentState:
Sesión #
Estado
mesa UNIDOS:
Estado
Título
OPCIONES mesa:
Estado
elección
Nombre
DOCODE
NewState
Entonces, cuando llegue el mensaje (Sesión #, EntradaUsuario):
- consulta currentState utilizando la Sesión # para determinar en qué estado el usuario está en.
- consulta OPCIONES usando el Estado y Elección = Entrada de Usuario para determinar el nuevo estado (y DoCode) basado en el usuario i entrada.
- Según DoCode, puede realizar algunos procesos.
- actualice CURRENTSTATE para reflejar el nuevo estado.
- consulta STATES para obtener el título (por ejemplo, "Elige un color").
- OPCIONES consulta para obtener las posibles opciones del nuevo estado (por ejemplo, (1, "azul"), (2, "Rojo"), etc.)
- construir el mensaje (concat Título + opciones)
- devolver mensaje al usuario.
¿Es esa una forma razonable de resolver el problema?
que no entiendo. ¿Aparece su menú en un navegador web o en una aplicación Swing/SWT? – Riduidel
El navegador ussd aparece en el teléfono móvil cuando envía un código corto como * 123 #. Básicamente, no puedo usar ninguna API para este propósito. Yo mismo tengo que mantener los nodos del árbol del menú. Pero no puedo idear un buen diseño. –