Hacer aplicaciones interactivas microcontrolador en minutos (2 / 4 paso)

Paso 2: Definición de menú

No creo que nunca he conocido a alguien que realmente disfruta aprendiendo otra programación sintaxis del lenguaje (especialmente con los plazos que se avecina!), pero esta sintaxis es un poco diferente.  Esto no es un lenguaje y una sintaxis muy específica conocida como Lenguaje específico de dominio (DSL ) de programación de propósito general.  DSLs en general son herramientas poderosas que pueden significativamente amp encima de su capacidad para interactuar eficientemente con el ordenador delante de usted y sus alcances muy limitados ayudan a acelerar tu dominio de ellos.

Ahora tome un momento para mirar el archivo de diseño de menú (imagen de abajo) que se utilizó para generar los menús para el sintonizador.

El archivo de menú es una especificación compacta que dice el generador de código mucho acerca de la manera que usted va a interactuar con la aplicación.  --en particular:

• Define las líneas de texto de uno o más menús
• Define los campos dentro de esas líneas que está ligadas a las variables en el programa
• Define los comandos que se deben llamar cuando se cambia un campo, o cuando dibujo un campo
• Define los tipos de variables asociadas como los límites o entradas aceptables para aquellos campos de
• Asocia ciertas entradas de botón con comandos a ser ejecutados o menús para activar

Menús tienen esta forma:

<MenuName > {[MenuCommand ] *

"MenuLine " [LineCommand ] *
}

MenuName
El nombre del menú siempre se indica dentro de corchetes angulares ya sea definir el menú, o actuando como el objetivo de una acción (por ejemplo, cambiar a < DisplaySettingsMenu >).  El menú de nivel superior siempre se nombra HomeMenu.

MenuCommand
MenuCommands puede tomar la forma de una directiva de no_cursor:

[no_cursor]

Esto dice el generador de código que no cursor debe mostrarse en este menú.  Más comúnmente, sin embargo, el MenuCommands tendrá la forma de un enlace de evento que asocia una entrada de botón con una acción determinada.  Las acciones pueden cambiar a otro menú por ejemplo:

[long_back -> < DisplaySettingsMenu >]

Esto hace que la máquina de estado cambiar a la DisplaySettingsMenu si el botón de retroceso se mantiene pulsado durante un segundo o más.

O una acción de enlace de evento simplemente puede usarse para activar una llamada a una función generado por el usuario por ejemplo:

[sel -> (toggleStrobe)]

Eventos posibles incluyen:

SEL, detrás, arriba, abajo, long_sel, long_back

MenuLine
MenuLines son cadenas de caracteres que indican lo que se mostrará en la pantalla y también se identifican los campos que se asocia variables mediante la LineCommands.  Por lo general tienes que tener el cursor para indicar la línea actualmente seleccionada.  Cuando se muestra, el cursor aparece como un mayor-que firmar en la primera columna, así que usted debe estar seguro de dejar un espacio en blanco en la primera posición de cada línea.  Tenga en cuenta también la línea de comentario que ayuda a mantener un seguimiento de la anchura máxima de línea--16 en este caso, pero esto dependerá de la pantalla que está utilizando.  Los campos están marcados mediante la colocación de una cadena de caracteres que es único dentro de la línea que será compensada por el LineCommands asociado, tenga en cuenta que usted debe estar seguro a la medida este campo para contener el número máximo de caracteres para cualquier valor de campo posible.

LineCommand
El LineCommand es posiblemente la parte más compleja de la sintaxis, pero, afortunadamente, esta es la última.  El LineCommand sigue siempre la línea que modifica y su trabajo es definir acciones evento select específicos de línea tanto para asociar los campos con las variables y definir los tipos de las variables así que el código generado puede manejar las variables de manera apropiada por el tipo.

Eventos seleccionadas específicos de línea son exactamente como los eventos de nivel de menú anterior excepto que aquí el evento del botón de selección es el único disponible como los otros botones no son típicamente asociados con una línea en particular.  Si, un evento select específicos de línea anula el evento select menú global si el cursor está situado en la línea en cuestión.

Asociaciones de variables de campo toman esta forma

[FieldString dirección destino :tipo ]

FieldString
La FieldString que ya hemos analizado, es la cadena de caracteres única línea que marca la ubicación y la longitud de un campo en el MenuLine.

Dirección
La dirección indica si estamos asociando un objetivo con un evento de entrada del usuario (->), o un evento de dibujo (<-) o ambos (<> -).

Blanco
El objetivo puede ser una variable, un sistema o una función de drenaje, o una variable y una función callback valor cambiado.

Objetivo Variable (<-| -> | <> –): [min <> – timer_minutes]

Objetivo establecer la función (->): [spd -> (SetSpeed)]

Dibujar la función de destino (<-): [nnn <-(DrawNum)]

Objetivo Variable w/Callback (-> | <> –): [xxx -> SetContrast(LCD_Contrast)]

[strobeMode <> – SetStrobeMode(strobeMode)]

Tenga en cuenta que el último caso en sobre (el caso bidireccional Variable w/Callback), la devolución de llamada de cambio de valor se omite al dibujar el campo.

Tipo
El modificador de tipo es responsable de identificar el tipo de variable y los límites o valores posibles.
Los tipos disponibles incluyen binario codificado decimal, entero firmado o sin firmar de 8, 16 o 32 bits o 8 bits enumeraciones.  La sintaxis de estos tipos es como sigue:

• BCD8, BCD16, BCD32
• U8, U16, U32
• S8, S16, S32
• enum

El modificador de tipo tiene la forma:

:Tipo (límites )

Tenga en cuenta que (límites) son opcionales para todos los tipos enum.

Ejemplos:

: BCD8(0,0x99)

: U16(8,1000)

: enumeración ("ninguno", "Lineal", "Log")

: S16(-1000,1000)

: U32

Y eso es todo.  Eso es todo el manual para el lenguaje de definición de menú!

A continuación veremos un código fuente necesario para terminar el afinador de guitarra.  Te quitamos la entrada Mode como complica el código un poco sin ofrecer mucho más desde un punto de vista del aprendizaje.  También, el modo 3 x trabajó mucho mejor que los otros modos que experimentamos, por lo que no tiene sentido para ofrecerles.

Artículos Relacionados

Aprender a hacer aplicaciones para IOS con NO expiriance programación

Aprender a hacer aplicaciones para IOS con NO expiriance programación

Para hacer aplicaciones IOS, usted necesita un Apple mac ejecutando OS X El capitán o superior. Lo sentimos usuarios del P.C., IOS está todo para mac.Paso 1: Descargar XcodeEn primer lugar, almuerzo a la mac app store, buscar Xcode y descargar. Es un
Cómo hacer un brownie en un minuto! (para una persona)

Cómo hacer un brownie en un minuto! (para una persona)

Hacer un brownie en un minuto! Esta es una receta tan fácil y es delicioso. Tiene huevo, que generalmente hace brownies en este tipo de recetas microondas todo gomoso y seco, y no el aceite que es saludable (pero usted puede Agregar mantequilla si qu
Cómo hacer aplicaciones para I-Phone, I-Pad y I-Pod Touch

Cómo hacer aplicaciones para I-Phone, I-Pad y I-Pod Touch

Cómo hacer aplicaciones para I-Phone, I-Pad y I-Pod TouchVideo de arriba no funciona ir al link abajo!http://vimeo.com/user9799820/awesomeappsGracias y voten por mí en el concurso de maestros!!!!!!_____________________________________________________
Hacer paneles solares rad en minutos con una laminadora de escritorio dulce

Hacer paneles solares rad en minutos con una laminadora de escritorio dulce

sé lo que estás pensando.  Está escrito en tu cara.  Eres todos, "aw, hombre!  Estoy sentado aquí, listo para hacer un panel solar, y tengo mis células de silicio y EVA todo listo y espera, pero mi hijo dang sólo lanzó mi soldador en el vidrio que ib
Hacer una cometa en cinco minutos

Hacer una cometa en cinco minutos

en este video instructivo, les mostraré cómo hacer una cometa en menos de cinco minutos, utilizando materiales que son baratos y fáciles de conseguir.
Cómo hacer aplicaciones (automator)

Cómo hacer aplicaciones (automator)

En este Instructable te voy a mostrar cómo hacer sus propias aplicaciones usando automator. Si te gusta esto, por favor Sígueme o votar.Paso 1: materialesUsted necesitaráAutomator (viene con todos los mac)Una idea para una aplicaciónVista previa (tam
Hacer $10.000 en 10 minutos o menos

Hacer $10.000 en 10 minutos o menos

¿Cansado de solo raspado? Poner lógica proposicional a trabajar para usted! Utilice estos pasos para convencer a tus amigos que no tienen más remedio que entregar grandes sumas de dinero en efectivo.ADVERTENCIA: La gente puede reaccionar impredecible
Cómo hacer un proyecto de 5 minutos de Popsci

Cómo hacer un proyecto de 5 minutos de Popsci

presentar un proyecto de 5 minutos para Popular Science! Cada mes presentamos un nuevo proyecto fresco y práctico, y nos complace mostrar algunas ideas de la comunidad creativa de Instructables.A veces los proyectos más básicos son más ingeniosas. As
Hacer aplicaciones ios invisible 8.2

Hacer aplicaciones ios invisible 8.2

se trata de un error fresco usando el bug de la carpeta anidada.Lo que usted necesita:Como muchas de las aplicaciones que desea ocultar (al menos 2)5 otras aplicacionesPaciencia (pero una vez que aprender puede hacerlo en segundos!)Vamos a estar ocul
Como hacer un estetoscopio de último minuto

Como hacer un estetoscopio de último minuto

bien sólo había sido invitado a un vestido de fiesta en el último minuto y apenas me habían mirado un episodio Doctor.Who y estaba como hmm lo que haría el médico (estaba en un trance Doctor.Who) y pensé que él haría un disfraz para él y puesto que s
Encienda las luces encendido o apagado de su cama (se puede hacer en 5 a 10 minutos)

Encienda las luces encendido o apagado de su cama (se puede hacer en 5 a 10 minutos)

odiaba tener que levantarme de mi cama, mis luces, luego tropezar con todas las cosas en mi piso como volví a la cama. Esta solución simple toma 5 a 10 minutos y se puede hacer con cosas de alrededor de la casa.Lista de partes:Tachuela pegajosaCadena
Hacer un plano en un minuto

Hacer un plano en un minuto

Aquí es cómo hacer un avión muy ligero. Todo lo que necesitas es cartulina, tijeras, lápiz y 1 minutoPaso 1: Dibujar las formasUsar un lápiz, dibuje el fuselaje, alas y alas de cuento. Puede hacer casi cualquier forma de esta pero las alas simétricas
Hacer una tabla en 10 minutos.  La hice en Techshop!!!!  www.techshop.ws

Hacer una tabla en 10 minutos. La hice en Techshop!!!! www.techshop.ws

sólo tenía 15 minutos para hacer una mesa y yo estaba en Techshop, www.techshop.ws así que sabía que podía hacerlo.  He tenido unos 5/8" MDF que cortar un 21" cuadrado y cortar algunos pinos de 2 "x 4" en las piernas en 20" de lar
Cómo hacer pantalones Palazzo en 20 minutos | Ilustrado + Video

Cómo hacer pantalones Palazzo en 20 minutos | Ilustrado + Video

El tutorial de los pantalones Palazzo DIY más fácil en youtube!Compro A tela en línea y ahorrar en tu próxima compra con Jo-Ann con estos cupones https://www.chippmunk.com/joanns-coupons/#cp=jocy...COMPRAR telas online en Ebay haciendo click aquí: ht