Paso 11: La aplicación Sinatra
Vamos a diseccionar la aplicación adjunta de Sinatra:Este consigue 's las bibliotecas necesarias para Sinatra y serie
requieren 'serialport'
requieren a 'sinatra'
Esto es donde puede configurar el número de puerto serie y velocidad
arduinoSerialPort = 'COM22'
arduinoSerialPortSpeed = 9600
Esto crea el objeto de puerto serie. No es realmente importante entender lo que esto significa si no eres un programador, sino porque hicimos sp iguales a la SerialPort.new entonces sp.write es cómo nos va salida cosas al puerto serie
SP = SerialPort.new (arduinoSerialPort, arduinoSerialPortSpeed, 8, 1, SerialPort::NONE)
Normalmente en Sinatra tienes un archivo separado en un directorio separado con la plantilla de su página. Quería tener esta aplicación en el mismo archivo, así que hice una plantilla muy sencilla a continuación. En las "rutas" (las páginas URL) cambiar la palabra cuerpo a continuación con el código HTML de la página que desea mostrar.
htmlCode = "< html >< cabeza >< / cabeza >< cuerpo > < cuerpo / >< / html >"
Aquí le damos la primera ruta. Haz sólo significa que es una petición get, que es el tipo de solicitud que sucede cuando usted escriba una dirección URL o haga clic en un enlace. La '/' significa básicamente la página (por lo que si escriba http://servername/ llegaré a este código). Todo entre el "hacer" y el "fin" se ejecuta como parte de esta página. Aquí todo lo que hago es una variable de cuerpo y asignar un montón de HTML para los enlaces a otras páginas. Hay tres enlaces a /shootstuff, a /lightallleds y otro para /coinsound. Lo último que hago es sustituir el cuerpo en htmlCode (desde arriba) con el código HTML define aquí. Lo que es lo último en la ruta consiga volvió y como la página.
get ' /' hacer
cuerpo = "< a href = \" / shootstuff\ "> cosas dispara < /a >< br / >"
cuerpo += "< a href = \" / lightallleds\ "> todos los luz LED < /a >< br / >"
cuerpo += "< a href = \" / coinsound\ "> sonido de moneda Mario < /a >< br / >"
htmlCode.gsub ("Cuerpo", cuerpo)
final
Aquí hay otra ruta, esto es lo que obtienes si golpeas http://servername/shootstuff. Lo primero que hace es enviar un "1" en la serie a mi caja de moneda. Sólo tiene un enlace para volver a la última página.
Haz ' / shootstuff'
SP.Write "1"
cuerpo = "< b > cosas debe tirar < /b >< /br >"
cuerpo += "< a href = \" / \ "> volver a acciones < /a >< br / >"
htmlCode.gsub ("Cuerpo", cuerpo)
final
Similar a la ruta anterior, éste se activa cuando alguien va a http://servername/lightallleds. Envía un 2 en la serie y darle un enlace hacia la página de índice
Haz ' do lightallleds'
SP.Write "2"
cuerpo = "< b > todos los LEDs deben ser iluminado < /b >< /br >"
cuerpo += "< a href = \" / \ "> volver a acciones < /a >< br / >"
htmlCode.gsub ("Cuerpo", cuerpo)
final
Esta ruta es similar a los dos anteriores. Dispara cuando alguien golpea http://servername/coinsound, escribe un "3" sobre la serie y tiene un enlace a la página de índice
Haz ' / coinsound'
SP.Write "3"
cuerpo = "< b > moneda sonido debe sonar < /b >< /br >"
cuerpo += "< a href = \" / \ "> volver a acciones < /a >< br / >"
htmlCode.gsub ("Cuerpo", cuerpo)
final