Använda XML på Raspberry Pi med Python (3 / 3 steg)

Steg 3: Ett XML-program i Python



Ansökan - RasPiConnect (www.milocreek.com)

Vad är XML som används för i detta program?



XML används för tre syften i detta program. 1) för kommunikationskanalen (över HTTP) från App Raspberry Pi. 2) för kommunikationskanalen från Raspberry Pi App (över HTTP) och 3) för långlivade program och skärmen konfiguration lagring i App.

De kanaler

Klienten kommunicerar med servern genom att skicka och ta emot HTTP. Mål C-kod på Apple iOS-enhet för sändning och mottagning är utanför ramen för denna artikel. Python kod på servern för att ta emot och skicka XML-kod är mycket rättfram. I servern använder vi web.py biblioteket från webpy.org. Detta är en låg vikt webserver program lätt tillgänglig genom att köra följande kommando på din Raspberry Pi.

sudo lämplig-få installera python-webpy

Det är en dubbelriktad kommunikation mellan servern och klienten. Båda riktningarna hanteras av HTTP-förfrågningar. Klienten skickar en begäran data och åtgärder med alla förfrågningar grupperade tillsammans. Den XML som skickas från klienten till servern ser ut så här:

< XMLObjectXMLRequests >
< XMLCOMMAND >

< OBJECTSERVERID > LT-1 < / OBJECTSERVERID >
< OBJEKTNAMN > CPU Text och etikett
< / OBJEKTNAMN >
< OBJEKTTYP > 1 < / OBJECTTYPE >

...
< / XMLCOMMAND >

...
< / XMLCOMMAND >

< / XMLObjectXMLRequests >

Detta XML-filen innehåller flera förfrågningar till servern för att hämta information och åtgärd begäranden skickas till servern. Observera de flera entiteterna i strukturen.

Återkommande XML från klienten ser mycket lik.

< XMLRESPONSES >
< XMLCOMMAND >

...
< / XMLCOMMAND >
< XMLCOMMAND >

< OBJECTSERVERID > LT-1 < / OBJECTSERVERID >
< svar >

<! [CDATA [43.31, 43.31, CPU Temp (deg
C)]] >

...
< / XMLCOMMAND >

< / XMLRESPONSES >

Parsning av XML


Analysera detta XML-in i de enskilda enheterna (ovan), är en enkel användning av ElementTree Python biblioteket som visats tidigare i del två av denna artikel. När ansökningarna har tolkats och validerade, kör servern begäran en i taget, samtidigt som man bygger en ny XML-struktur som innehåller Svaren på kommandon. Struktur skickas sedan till klienten med hjälp av en HTTP-anslutning i stället för flera anslutningar.

...
klass RasPi:

def POST(self):
Web.header ("Content-Type",

"text/html")
incomingXML = web.data()

rot = ET.fromstring(incomingXML)
# iterera genom alla värden
för element i

root.findAll('XMLCOMMAND'):
...

Bygga XML Skicka till klienten

Bygga XML skickas tillbaka via HTTP-begäran från klienten till servern görs genom att bygga en sträng av sammanlänkade XML-kommandon och sedan återvänder strängen som en del av web.py POST HTTP-begäran.

# börja med att bygga XML-Svaren
outgoingData = "< XMLRESPONSES >"

...
outgoingData += "< XMLCOMMAND >"

...
outgoingData += "< / OBJECTTYPE >"
outgoingData += "< OBJECTID >"
outgoingData += "%i" % objectID
outgoingData += "< / OBJECTID >"
# gjort med ögla för

outgoingData += "< / XMLRESPONSES >"
återgå outgoingData

Ta emot och skicka XML

I web.py, den inkommande XML placeras i en sträng som ovan och sedan analyseras. Svaren skickas tillbaka till klienten från funktionen POST genom att returnera en sträng.

Slutsats

XML är ett mycket användbart medel för att lagra och överföra data över olika datorsystem. Det kan användas av både stora och små datorer. Läs mer om hur du använder XML på en Python baserad plattform prova följande webbplatser:

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

http://Eli.thegreenplace.net/201 2/03/1 5/bearbetning-xml-i-python-med-elementtree

och en handledning video på elementtree: http://www.youtube.com/watch?v=LNYoFo1 sdwg

Ytterligare XML-information, cool projekt och bloggar på www.switchdoc.com

Se Steg
Relaterade Ämnen

Nybörjarens guide till att använda Webhooks för hemautomation med Prota OS

TL:DR: webhooks är lätt att använda och ställa in med Prota OS. Använda webhooks till hundratals automation arbetsflöden.Lär dig hur du konfigurerar och använder Prota OS för Raspberry Pi här.Hämta Prota OS för Raspberry Pi här.Vad är webhooks?Google...

Använda Switcheroo slå på ljuset med din smartphone

Switcheroo är tänkt att styra små nuvarande, låg power DC-spänningar som de som vanligen används i små enheter. Koppla på en lampa är en hög ström, hög effekt AC spänning program. Det enklaste och säkraste sättet att byta dessa typer av saker med din...

Använda en USB-Barcode Scanner med en iPad

Du kan använda en USB-Barcode Scanner med en iPad men du måste få smart med olika tillbehör.Steg 1: Skaffa en powered "USB Camera Connection Kit" Du behöver en kamera eller media connection kit/adapter och i de flesta fall din kommer att vilja h...

Att få aktiekurser på Raspberry Pi (med Python)

Jag jobbar på några nya projekt som innefattar att få aktiekursen data från webben, som kommer att spåras och visas via min Raspberry Pi. Jag ville dela inställningen på hur man gör detta med hjälp av Python.Denna korta Instructable visar du hur inst...

TweeToy av Raspberry pi med Python

Jag skapade en leksak som talar somebody's tweets med Raspberry Pi.Denna leksak fångster objekt av avstånd sensor och sedan göra ljud (Tweet).Arkitekturen är mycket enkel. För att få Tweets, bara med hjälp av twitter api för python. Och spela upp lju...

Hur till använda ADXL345 på Raspberry pi

Jag har funnit att det finns inte mycket ute för att faktiskt ta reda på hur du använder ADXL345 på webben, men först, vad är en ADXL345, Jo det är en 3-axlig accelerometer med hög upplösning (13-bitars) mätning vid upp till ±16 g. Digital utgång dat...

Genom att använda Pimoroni Display-O-Tron med arduino

pimoroni Display-O-Tron 3000 (shop.pimoroni.com) är inte bara en av de bästa displayen för Raspberry Pi pengar kan köpa, hårdvaran köra stöds väl på Arduino plattform... Följ guiden!Steg 1: Hårdvara pinut Dot3k är en 3 x 16 LCD med 3 RGB bakgrundsbel...

Hur att använda moderna A / V dragutrustningen med gamla TV

om du har en gammal TV-uppsättning (före 1980) som inte har A / V-stöd, kan du lägga till komposit, SCART, S-Video, etc ingångar på den med inget krångel. Detta projekt bara kostnader om $40, eller billigare, om du shoppa runt. Jag älskar min TV, och...

Använda Switcheroo till kontroll leksaker med din smartphone

Tänk om du kunde göra en leksak göra en dans när den speciella någon kallas, eller Ställ in ett alarm på telefonen som orsakade ett fysiskt objekt att komma till livet? Med den Switcherooär det lätt!Först, du ska behov att få en Switcheroo ombord. Få...

Använda LEGO Mindstorm RCX ljussensor med Arduino (Program med Visuino)

I detta Instructable kommer du lära dig att programmera Arduino kontroll, och hämta data från LEGO Mindstorm RCX ljussensor med hjälp av Visuino - en enkel att använda grafiska utvecklingsmiljön för Arduino.Observera att anteckningen på några av bild...

Använda iRobot skapa Command Module med Linux

eftersom iRobot inte har tillhandahålls linux-användare med ett sätt att använda kommandot modul, jag var tvungen att räkna ut själv.Bli inte skrämmas, det är inte svårt alls, verkligen. Allt du behöver göra är att köra ett par skript.Kan komma igång...

Använda Printrbot's Autoleveling sond med Cura!

Printrbots nya enkla Maker's Edition kit är verkligen trevlig, speciellt för priset.De flesta människor använder Repetier-värd för utskrifter och Slic3r för skivning.Dock har jag haft med Cura för så länge jag har haft min skrivare.Mitt enda problem?...

Hur man ladda ner och använda Spotify på en dator med Windows

detta instructable kommer att lära dig hur man ladda ner och använda programmet musik Spotify på en dator som kör windows. Spotify är en kommersiell musik streaming program som erbjuder ett brett utbud av stora och oberoende skivbolag till lyssnare....

Använda en Accelerometer och gyroskop med Arduino

jag köpte nyligen en kombination 3 axlig accelerometer och 2 axis gyroskop från Sparkfun och jag ville lägga upp några av koden jag brukade få det igång. Jag planerar att använda den i en Arduino baserad MIDI-controller som jag kommer att utstationer...

Använda playstation remote på pc med arduino

jag har varit begåvad en gamla playstation 1 avlägsna en dag och ville använda den på datorn och sedan köpt en adapter på ebay som var defekt. Så beslutat jag äntligen att göra min egen med en arduino duemilanove. Jag försökte först att använda använ...

Hur att använda wiimote som en datormus med ljus som en sensor!

Denna guide om hur du ska koppla upp din Wii Remote (Wiimote) till datorn och använda den som en mus!Steg 1: Vad du behöverDetta är ganska enkelt att slutföra och du behöver bara följande:-Wiimote-Bluetooth-adapter-Ljus (eller sensor bar om du vill a...

DIY Fix att använda din GoPro fjärrkontroll med en QuikPod enbent!

QuikPod och GoPro är en perfekt match, men vad om du skulle vilja använda fjärrkontrollen, för att ha lättare tillgång till kontroller? Klipp din GoPro på, men det finns ingen plats för fjärrkontrollen. Här är vår lösning! http://youtu.be/MV3l-BUTm0w...

Använda Guitar Hero tangenter/knappar med din Arduino

delar-Guitar Hero Controller-Arduino-RGB-ljusdioder + nödvändigt motstånd-5 x 10 k motstånd (för knappar)-sladdar och skärbrädaJag bestämde mig för att äntligen få någon användning av min gamla guitar hero controller. Efter jag slet sönder handkontro...

Använda en Kindle Fire som en skärm för din Raspberry pi

I denna svårlösta jag kommer att visa dig hur man använder en kindle fire som skärm för en raspberry pi. Jag hade en gammal kindle fire som jag fick ett par år tillbaka som jag inte använder längre och jag tänkte, varför inte använda den som en monit...