Etape 11 : L’Application de Sinatra
Permet de disséquer l’app de Sinatra ci-joint :Ce obtenir des bibliothèques requises pour faire Sinatra et série
exiger « serialport »
nécessite « sinatra »
C’est lorsque vous configurez le numéro de port série et la vitesse
arduinoSerialPort = « COM22 »
arduinoSerialPortSpeed = 9600
Cela crée l’objet de port série. Il n’est pas vraiment important de comprendre ce que cela signifie si vous n’êtes pas un programmeur, mais parce que nous avons fait sp égales à la SerialPort.new puis sp.write est comment nous allons sortie trucs sur le port série
SP = SerialPort.new (arduinoSerialPort, arduinoSerialPortSpeed, 8, 1, SerialPort::NONE)
Normalement, dans Sinatra, vous auriez un fichier distinct dans un répertoire distinct avec votre modèle de votre page. Je voulais avoir ce soft tous dans le même fichier, alors j’ai fait un modèle très simple ci-dessous. Dans les "routes" (les pages dans l’URL), j’ai remplacer le mot corps ci-dessous avec le code HTML de la page que je veux afficher.
htmlCode = "< html >< tête >< / chef >< corps > < body / >< / html >"
Voici le premier itinéraire. Téléchargez signifie simplement que c’est une demande get, qui est le type de demande, ce qui se passe lorsque vous saisissez une adresse URL, ou cliquez sur un lien. Le « / » désigne la page d’accueil principalement (donc si je tape dans http://servername/ alors je vais arriver à ce code). Ce qui est entre le « do » et le « end » est exécuté dans le cadre de cette page. Ici tout ce que je fais est ont une variable de corps et j’ai assigner un tas de HTML pour des liens vers d’autres pages. Il y a trois liens ci-dessous un à /shootstuff, à /lightallleds et l’autre pour /coinsound. La dernière chose que je fais est de remplacer le corps de htmlCode (d’en haut) avec le HTML, j’ai défini ici. Quelle que soit la dernière chose est dans l’EEG itinéraire retourné et restitué sous la page.
Téléchargez « / » do
corps = "< a href = \" / shootstuff\ "> Shoot Stuff < /a >< br / >"
corps += "< a href = \" / lightallleds\ "> lumière toutes les LEDs < /a >< br / >"
corps += "< a href = \" / coinsound\ "> Mario pièce sonore < /a >< br / >"
htmlCode.gsub ("BODY", body)
fin
Voici une autre voie, c’est ce que vous obtenez si vous frappez http://servername/shootstuff. La première chose qu’il fait, c’est envoyer un « 1 » au fil de la série à ma tirelire. Puis, elle a juste un lien pour revenir à la dernière page.
Téléchargez ' / shootstuff'
SP.Write « 1 »
corps = "< b > Stuff devrait être tir < /b >< /br >"
corps += "< a href = \" / \ "> revenir aux Actions < /a >< br / >"
htmlCode.gsub ("BODY", body)
fin
Semblable à l’itinéraire ci-dessus, celui-ci se déclenche quand quelqu'un va à http://servername/lightallleds. Elle envoie un 2 sur la série et de donner un lien retour vers la page d’index
Téléchargez ' / lightallleds' do
SP.Write « 2 »
corps = "< b > tous les voyants doivent être Lit < /b >< /br > »
corps += "< a href = \" / \ "> revenir aux Actions < /a >< br / >"
htmlCode.gsub ("BODY", body)
fin
Cet itinéraire est semblable pour les deux ci-dessus. Cet événement se déclenche quand quelqu'un frappe http://servername/coinsound, écrit un « 3 » au cours de la série et a un lien vers la page d’index
Téléchargez ' / coinsound'
SP.Write « 3 »
corps = "< b > pièce sonore devrait paru < /b >< /br >"
corps += "< a href = \" / \ "> revenir aux Actions < /a >< br / >"
htmlCode.gsub ("BODY", body)
fin