Gebruik van XML met de Raspberry Pi met Python (3 / 3 stap)

Stap 3: Een XML-toepassing in Python


De applicatie - RasPiConnect (www.milocreek.com)

Wat is XML wordt gebruikt voor in dit programma?



XML wordt gebruikt om drie redenen in dit programma. 1) voor het communicatiekanaal (via HTTP) vanuit de App naar de Raspberry Pi. 2) voor het communicatiekanaal van de Raspberry Pi aan de App (via HTTP) en 3) voor blijvende programma en scherm configuratie opslag in de App.

De kanalen van de communicatie

De Client communiceert met de Server door het verzenden en ontvangen van HTTP. De Objective C-code op het Apple iOS apparaat voor het verzenden en ontvangen valt buiten het bestek van dit artikel. De Python code op de Server voor het ontvangen en verzenden van XML-code is zeer ongecompliceerd. In de Server gebruiken we de web.py-bibliotheek van webpy.org. Dit is een lichtgewicht webserver programma beschikbaar door de volgende opdracht uit te voeren op je Raspberry Pi.

 sudo apt-get install python-webpy 

Er is een bi-directioneel communicatiekanaal tussen de Server en de Client. Beide richtingen worden afgehandeld door HTTP-verzoeken. De Client stuurt verzoeken om gegevens en de actie met alle verzoeken gegroepeerd. Het XML-bestand van de Client naar de Server verzonden ziet er zo uit:

< XMLObjectXMLRequests > <XMLObjectXMLRequests> <XMLCOMMAND> 
 <OBJECTSERVERID>LT-1</OBJECTSERVERID> <OBJECTNAME>CPU Text and Label </OBJECTNAME> <OBJECTTYPE>1</OBJECTTYPE> 
... ... </XMLCOMMAND> 
... ... </XMLCOMMAND> 
 </XMLObjectXMLRequests> 

Deze XML bevat meerdere aanvragen naar de Server voor het ophalen van informatie en actie-aanvragen naar de Server te verzenden. Opmerking de meerdere entiteiten in de structuur.

De terugkerende XML van de Client kijkt zeer gelijkaardig.

< XMLRESPONSES > <XMLRESPONSES> <XMLCOMMAND> 
... ... </XMLCOMMAND> <XMLCOMMAND> 
 <OBJECTSERVERID>LT-1</OBJECTSERVERID> <RESPONSE> 
 <![CDATA[43.31, 43.31, CPU Temp (deg C)]]> 
... ... </XMLCOMMAND> 
 </XMLRESPONSES> 

De XML parsing

Deze XML parseren in de afzonderlijke entiteiten (boven), is een eenvoudig gebruik van de ElementTree Python bibliotheek zoals eerder aangegeven in deel twee van dit artikel. Zodra de verzoeken zijn geparseerd en gevalideerd, voert de server de aanvragen een tegelijk, terwijl de bouw van een nieuwe XML-structuur met de antwoorden op de opdrachten. De structuur wordt vervolgens verzonden naar de Client met behulp van een HTTP-verbinding in plaats van meerdere verbindingen.

 ... class RasPi: 
 def POST(self): web.header('Content-Type', 
 'text/html') incomingXML = web.data() 
 root = ET.fromstring(incomingXML) # iterate through all the values for element in 
 root.findall('XMLCOMMAND'): ... 

Bouwen van XML te verzenden naar de cliënt

Gebouw de XML naar terug via de HTTP-aanvraag van de Client naar de Server worden verzonden wordt gedaan door de bouw van een reeks van aaneengeschakelde XML-opdrachten en vervolgens de tekenreeks te retourneren als onderdeel van de web.py HTTP POST-aanvraag.

 # start of building the XML responses outgoingData="<XMLRESPONSES>" 
 ... outgoingData +="<XMLCOMMAND>" 
 ... outgoingData +="</OBJECTTYPE>" outgoingData +="<OBJECTID>" outgoingData += "%i" % objectID outgoingData +="</OBJECTID>" # done with FOR loop 
 outgoingData+="</XMLRESPONSES>" return outgoingData 

Ontvangen en verzenden van het XML-bestand

In web.py, wordt de inkomende XML geplaatst in een tekenreeks als hierboven en vervolgens geparseerd. De reacties worden teruggestuurd naar de client van de POST-functie door het retourneren van een string.

Conclusie

XML is een zeer nuttig middel voor het opslaan en overbrengen van gegevens over uiteenlopende computersystemen. Het is bruikbaar door zowel grote en kleine computers. Meer informatie over het gebruik van XML op een Python gebaseerd platform proberen de volgende websites:

http://docs.python.org/2/library/XML.etree.elementtree.html

http://Eli.thegreenplace.net/201 2/03/1 5/verwerking-xml-in-python-met-elementtree

en een tutorial video op elementtree: http://www.youtube.com/watch?v=LNYoFo1 sdwg

Meer XML-informatie, coole projecten en blogs op www.switchdoc.com

Gerelateerde Artikelen

Fotocel reageren op licht als een oog. een inleidende Project voor het gebruik van Processing met Arduino

Fotocel reageren op licht als een oog. een inleidende Project voor het gebruik van Processing met Arduino

In dit project ziet u een eenvoudig voorbeeld van het gebruik van verwerking zodat een grafische weergave van gegevens die een arduino als krijgt input van een sensor. In dit geval een fotocel.Nadat een oog beeld krijgen van internet, wat ik deed is,
Converteren van uw POP/drankautomaat voor het gebruik van RFID met Arduino

Converteren van uw POP/drankautomaat voor het gebruik van RFID met Arduino

Dit is mijn eerste instructable zodat elke nuttige opmerkingen worden op prijs gesteld. Ik begon dit project ongeveer een jaar geleden.Begon ik op zoek over het gebruik van de arduino te controleren van een automaat en ik vond dat een project zonder
Afspelen van Video met Python en GPIO

Afspelen van Video met Python en GPIO

Hallo weer. Vandaag ga ik om te laten zien van een lopend project dat ik bezig ben. Mijn bedrijf heeft me schonk het genoegen om te bouwen van een demo-kit voor een van onze productlijnen. Ik werk in de industrie voor laagspanning waarin brandalarm,
Beheren van Arduino met python gebaseerd web API (geen php)

Beheren van Arduino met python gebaseerd web API (geen php)

In deze handleiding zal ik u tonen hoe om uw apparaat arduino van een webpagina te controleren! Daarna zal ik u tonen hoe om te controleren uw arduino vanaf uw mobiele apparaat en zelfs het maken van een web-gebaseerde API voor het beheersen van je a
Het eerste gebruik van ESP8266 met Arduino Uno

Het eerste gebruik van ESP8266 met Arduino Uno

Vandaag, ga ik om u te tonen die hoe kunnen we onze module ESP8266 voor gebruik met Arduino UNO voorbereiden.De noodzaak lijst:1. Arduino UNO (met USB-kabel die op uw computer via USB-kabel aangesloten, ook wordt gebruikt de spanning)2. uw computer (
Het gebruik van calqueerpapier met uw patroon

Het gebruik van calqueerpapier met uw patroon

keer om te leren van de basics: met behulp van calqueerpapier ter gelegenheid van uw patroon.Wat u nodig hebt:-Stof-Patroon-Transfer papier/tracering papier (het heeft meerdere namen)-Tracing wiel1. Beveilig uw patroon op je stof. (Check out mijn and
Het gebruik van Miracast met een Android toestel

Het gebruik van Miracast met een Android toestel

Terug naar toen Android 4.0 werd ontwikkeld had het een systeem ingebouwd genaamd Wi-Fi Direct, waarmee ad hock draadloze netwerken worden opgezet. Dit nooit echt aangeslagen maar het was dit systeem die later toegestaan Miracast worden ontwikkeld to
Het gebruik van Google Chrome op Raspberry Pi 2

Het gebruik van Google Chrome op Raspberry Pi 2

Vandaag, ga ik u tonen hoe Google Chrome browser werken op Raspberry Pi 2 te gebruiken. Ik lees dit onderwerp op de Raspberry Pi Forums. Tijdens het uitvoeren van dat uw Raspberry Pi 2 met geladen Noobs opgenomen Raspbian Jessie, kun je dat de codes
Beheersing van Edison met Python

Beheersing van Edison met Python

Dit is een project om bekend zijn de Edison Intel en Intel Arduino expansiekaart.In de tussentijd ik eindelijk geleerd wat Python code.Het een tijdje geweest aangezien ik Linux gebruikt heb en nu had ik om het te doen zonder een Gui venster front-end
Beheersing van richting en snelheid van gelijkstroommotor met Raspberry Pi

Beheersing van richting en snelheid van gelijkstroommotor met Raspberry Pi

Dit is een eenvoudige gids wanneer leert u hoe u kunt besturen gelijkstroommotoren met behulp van de Raspberry pi. Over raspberrypi - is het een cradit kaart grootte kleine computer die General-Purpose input-output GPIO pinnen die worden gebruikt hee
Het gebruik van uw MotorShield met gelijkstroommotoren

Het gebruik van uw MotorShield met gelijkstroommotoren

Ik wilde helpen met het geven van de Gemeenschap een eenvoudiger te begrijpen gids voor het gebruik van gelijkstroommotoren met de Motorshield die kan worden aangesloten op de Arduino.Dus gelieve pak die je Arduino en MotorShield en ik hoop dat we ku
Integratie van LEDs met fischertechnik

Integratie van LEDs met fischertechnik

dit instructable beschrijft hoe te integreren LEDs met fischertechnik elementen!Mijn oorspronkelijke visie was het creëren van een mechanische videospel dat zou LEDs oplichten. Toen ik begon knutselen met fischertechnik van Eco Power kit (#57485) en
Plotly met Python

Plotly met Python

Ik struikelde onlangs, op Plotly, een prachtige online Data Visualization systeem op grond van een artikel maken. Het is overbodig voor mij om te zeggen dat er verschillende artikelen waaruit het gebruik van Plotly voor Arduino, Raspberry Pi, etceter
Inleiding tot de aan het gebruik van de Google api.

Inleiding tot de aan het gebruik van de Google api.

Google naar verluidt niet langer steunt deze api met de nieuwste versie van python. Ik maakte een fout verslag, maar nog nooit gehoord terug.Voorwoord: Er is een programmeertaal die is gericht op nieuwe ontwikkelaars. Die taal heet Python. Het is bes