Intellekten IoT Edison web kontrollerad LED (1 / 3 steg)
Steg 1: Inter Process kommunikation, mutex etc
Om du är intresserad av att veta hur Intel gör det, kan du kontrollera följande artikel
https://Software.Intel.com/en-us/blogs/2014/09/22/...
I den, författaren förklarar vad IPC (Inter Process kommunikation) är i linux, hur mutex (ömsesidigt uteslutande) variabler fungerar och ger också ett kodexempel, både för den arduino delen och en native C++ bearbeta.
Det är en bra utgångspunkt om du vill titta under Edisons huva, men, ärligt talat, mycket av informationen är inte lätt att smälta. Förutom den smältbarhet sak förstår jag inte varför någon skulle vilja skriva en halv kod i Arduino, en mer eller mindre lätt, nybörjare vänlig språk och den andra delen i hard-core C++, anställa mutex variabler och trådar och alla. Varför inte skriva allt i C/C++ då?
Hur som helst, en sak är viktigt att veta när du gör arduino skisser kommunicera med andra linux processer: skapa en fil i katalogen /tmp/ och göra både skiss och den andra processen läsa och skriva till filen. /tmp/ mappas till minne så Läs skrivåtgärder som är snabb och du bära inte ut din flash-minne. I Intels exempelvis filen skapas är binär (inte mänskliga läsbar).
Jag har försökt att förenkla saker lite: det finns fortfarande några C kod delaktiga, men man kan enkelt skräddarsy den arduino kod delen till hans/hennes behov. Vad är mer, kommunikationen lyckas genom en läsbar fil (ord! inte ettor och nollor!): /tmp/arduino.txt fördelen är att du enkelt kan använda oavsett skriptspråk du föredrar från linux sidan, oavsett om det node.js, perl, python, php etc och ändå kunna kontrollera (det vill säga läsa) vad dina program skicka till varandra. Jag har satt mutex bort, alltför: arduino skiss läser filen /tmp/arduino.txt och ignorerar det om det inte är komplett (om det inte fil en OK sträng i slutet). Detta är mer än tillräckligt för de flesta av användningen fall av en arduino skiss.
För detta projekt består fil /tmp/arduino.txt av fyra rader:
Rad 1: "sant" eller "falskt" strängar. Instruerar arduino att byta lampan på eller av
Linje 2: under Undersökningsperioden var det sista växel kommandot uppstod.
Linje 3: "OK" om arduino skiss inte möter detta OK, filen ignoreras tills nästa slingan.
Linje 4: tomt