Empezamos por lo mas sencillo seleccionar velocidad y mover el telescopio:
Comandos de selección de velocidad:
- :RC# Seleccionar velocidad de Guiado (guide).
 - :RG# Seleccionar velocidad de Centrado (center).
 - :RM# Seleccionar velocidad de Búsqueda.(find).
 - :RS# Seleccionar velocidad de Desplazamiento.(slew).
 
- :Me# Mueve Telescopio al Este a velocidad seleccionada.
 - :Mn# Mueve Telescopio al Norte a velocidad seleccionada.
 - :Ms# Mueve Telescopio al Sur a velocidad seleccionada.
 - :Mw# Mueve Telescopio al Oeste a velocidad seleccionada.
 - :MS# Mueve hasta Objeto / Coordenadas Destino.
 - Devuelve:
 - 0 si el desplazamiento es posible
 - 1<cadena># Object Below Horizon
 - 2<scadena># Object Below Higher
 
%%{
 machine LX200;
 write data;
}%%
//Definicion comandos 
%%{
Rate ="R" [GCMS];
Move = "M" [enswS];
main := ':' (Rate|Move) '#';
# Initialize and execute.
  write init;
  write exec;
 }%%
Traducida a lenguaje natural:
- Rate:
 - Acepto cualquier cadena que empieza por la letra 'R'seguida de una 'G' o 'C' o'M' o 'S' .
 - Move:
 - Acepto cualquier cadena que empieza por la letra 'M'seguida de una 'e' o 'n' o 's' o'w' o 'S' .
 - main:(Regla principal)
 - Acepto cualquier comando Rate o Move si van precedidos de ':' y les sigue '#';
 
Y aquí el grafo de la máquina de estado finito que reconoce el lenguaje.
Veremos como en la próxima entrada.

No hay comentarios:
Publicar un comentario