Tester DMX barato (4 / 7 paso)

Paso 4: Introducción a la lógica de la máquina del estado

Si usted no está familiarizado con o no has usado la lógica de la máquina del estado en la programación, es la forma más fácil para dividir problemas complejos en Estados manejables y las transiciones de estado. Una de las maneras más fáciles para implementar una máquina de estado es utilizar una instrucción switch .

Ejemplo de una máquina de estado mediante una sentencia switch:

 switch(state) {case INITIAL: // process INITIAL state break; case STATE1: // process STATE1 state break; case CLEAR: clearAll(); state = INITIAL; break; default: break; } 

Dependiendo del estado, hay sólo unas teclas válidas. Permite echar un vistazo en el primer estado llamado inicial. Como se puede ver en el diagrama de estado el estado inicial sólo puede tener las siguientes teclas: 0-9 y ' *' (asterisco), otra cosa es un error de formato.

Estado Teclas Siguiente estado Comentario Inicial 0-9 START1 X
* WILDCARD1 * @
Otra cosa inicial formato Error

Aquí está un fragmento de código que muestra cómo implementé el estado inicial:

 char key = keypad.getKey ();<br> if (key != NO_KEY) { switch(state) { case INITIAL: // X if(validKeys0to9(key)) { pos = displayKey(key, pos); storeKey(key); state = START1; } else if (validWildCard(key)) { // *@ pos = displayKey(key, pos); state = WILDCARD1; } else { invalidFormat(); clearAll(); } break; 

Como veis que he creado algunas funciones auxiliares para hacer el código fácil de leer.

 // Validate key *<br>// return true if valid, else false int validWildCard(int key) { int valid=0; switch(key) { case '*': valid=1; break; } return valid; } <br>// Validate key 0-9 // return true if valid, else false int validKeys0to9(int key) { int valid=0; switch(key) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': valid=1; break; } return valid; } 

Artículos Relacionados

Tester DMX 512 de Arduino y el controlador

Tester DMX 512 de Arduino y el controlador

Actualizaciones, ficheros, códigos...Versión en inglésFacebookHerramienta para pruebas y control de iluminación de espectáculos a travez del protocolo DMX-512, ideal para hacer pruebas rápidas en instalaciones fijas o temporales de iluminación. Este
Tester DMX 512 de Arduino y el controlador ENG

Tester DMX 512 de Arduino y el controlador ENG

Actualizaciones, archivos, códigos, esquemas...Versión en EspañolFacebookHerramienta de control para la prueba y demostración de la luz por el protocolo DMX-512, ideal para pruebas rápidas en instalaciones fijas o temporales de alumbrado. Este proyec
Barato medidor de luz y LED Tester para menos entonces $5

Barato medidor de luz y LED Tester para menos entonces $5

Ive sido jugando con LED de alta luminosidad de un proyector LCD LED. El problema que encontré fue su muy difícil, por lo que ver si todos los LED son el mismo brillo y tan difícil de comparar LED individual. También si rápidamente quiso comprobar un
Frambuesa Pi como un controlador de luces DMX

Frambuesa Pi como un controlador de luces DMX

Convertir su frambuesa Pi en un controlador de luces DMXEste instructable muestra cómo mostrar una ventana de editor de la rueda de color en la pantalla de un ordenador Raspberry Pi, que se puede manipular con el ratón. Al cambiar el color de la pant
Ethernet Enlace Tester MK. II

Ethernet Enlace Tester MK. II

En primer lugar, felicitaciones a Psyber paraÉl es quien tuvo esta brillante idea. Que he hecho es más fácil de hacer y presentar esto como una mejora.Había estado buscando una manera de probar o no un puerto de red estaba vivo desde 1997, cuando cas
Compacto, barato y extensible sistema de hidroponía

Compacto, barato y extensible sistema de hidroponía

hay un montón de instructables que hay otros que se ocupan de hidroponía pero quería mina para cumplir con un determinado conjunto de especificaciones. Cuando me senté a diseñar mi nuevo sistema de hidroponía para mi apartamento tenía unos objetivos
Antiguo barato essentials cortadora del laser

Antiguo barato essentials cortadora del laser

Esencial para el corte con un cortador láser chino barato (viejo).Si quieres tener un cortador láser en su taller y tienen sólo unos $500, entrar en eBay y buscar chineese, 30 x 20 cm, máquinas del laser del CO2. Especificar voltaje cuando lo compra
Amplificador de estado sólido barato bricolaje (de partes de salvado)

Amplificador de estado sólido barato bricolaje (de partes de salvado)

viviendo en un país del tercer mundo, amplificadores como marshall, fender, line6, peavey y otros son demasiado caros para guitarristas pobres como yo, ya más amperios son juguetes para los chicos ricos. Así que con una mezcla de inspiración e imagin
Transceptor de canal DMX 4

Transceptor de canal DMX 4

el Módulo de plataforma de entrada de DMX es un transmisor-receptor DMX de 4 canales. En recepción puede controlar hasta cuatro canales de baja tensión TTL (3,3 v, por ejemplo, para servos y pequeños LEDs) o alta corriente (12v, por ejemplo, lámparas
Ionizador de combustible DIY de verdad barato. Realmente funciona.

Ionizador de combustible DIY de verdad barato. Realmente funciona.

¿Cuáles son los recursos?¿Cuáles son las tareas necesarias para lograr 100% de la humanidad?¿Cómo podemos alguna vez lo hacemos sin nunca advantaging a un humano a expensas de otro?¿Cómo podemos prestamos todo el mundo y todos sus tesoros agradable d
Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Construir su propio controlador de cámara inalámbrica de múltiples funciones (¡ barato!).

Introduction¿Siempre creyó su propio controlador de cámara de la construcción?Nota importante: Condensadores para la MAX619 son 470n o 0.47u.  El esquema es correcto, pero la lista de componentes era incorrecto - actualizado.Es una entrada en el conc
The Deck - Portable Penetration Testing and Forensics System

The Deck - Portable Penetration Testing and Forensics System

Nota: la información contenida en este instructable no ha sido actualizado para reflejar el desarrollo actual de la cubierta y la penetración prueba con varios dispositivos en red basados en el BeagleBone Black. Detalles sobre esto y más pueden encon
Tester comprobador de Led de la diversión

Tester comprobador de Led de la diversión

la diversión llevó inspector probador fue algo que necesitaba para mi banco de trabajo para mucho tiempo. Siempre que usted tenga una idea para empezar, pasando por sus piezas. Los LED son en la mayoría de mis proyectos. Tengo un montón de Leds, pero
Barato Arduino WiFi shield con ESP8266

Barato Arduino WiFi shield con ESP8266

En mi Instructable anterior he descrito cómo enchufar el módulo ESP-01 en un protoboard.Esto es sólo el primer paso para hacer un escudo Arduino WiFi barato utilizando el módulo ESP8266. Con pocos componentes más electrónicos y la biblioteca de WiFiE