Stap 1: Inter Process Communication, mutex enz
Bent u geïnteresseerd om te weten hoe Intel dat doet, kunt u het volgende artikel
https://software.Intel.com/en-US/blogs/2014/09/22/...
Daarin legt de auteur uit wat IPC (Inter Process Communication) is in linux, hoe mutex (elkaar uitsluitende) variabelen werken en biedt ook een codevoorbeeld, zowel voor het deel van de arduino en een native C++ verwerken.
Het is een goed uitgangspunt, als u wilt kijken onder Edisons motorkap, maar, eerlijk gezegd, veel van de verstrekte informatie is niet gemakkelijk om te verteren. Afgezien van de verteerbaarheid ding snap ik niet waarom iemand zou willen een half de code schrijven in Arduino, een min of meer gemakkelijk, beginner vriendelijke taal en anderzijds in hard-core C++, dienst mutex variabelen en de draden en alles. Waarom niet schrijf alles in C/C++ dan?
Hoe dan ook, een ding is belangrijk om te weten bij het maken van schetsen van de arduino communiceren met andere processen van linux: Maak een bestand in de directory /tmp/ en maak zowel schets en het andere proces lezen en schrijven naar dit bestand. /tmp/ wordt toegewezen aan geheugen dus lees en schrijfbewerkingen zijn snel, en je niet slijten uw flash-geheugen. Intels bijvoorbeeld in het bestand gemaakt is binair (niet menselijk leesbaar).
Ik heb geprobeerd om de dingen een beetje vereenvoudigen: er gaat nog wat C-code, maar men kan gemakkelijk op maat van de arduino Wetboek deel aan zijn/haar behoeften. Wat is meer, de mededeling slaagt door een mens leesbaar dossier (woorden! geen nullen en enen!): /tmp/arduino.txt het voordeel is dat u makkelijk kunt gebruiken welke scripttaal die u liever van de zijde van linux, zij het node.js, python, perl, php etc en nog steeds in staat om te controleren zijn (dat wil zeggen, lees) wat uw programma's naar elkaar sturen. Ik heb mutex weg, ook: de arduino schets leest het bestand /tmp/arduino.txt en negeert het als het niet volledig is (als het niet een OK tekenreeks bestand in het einde). Dit is meer dan genoeg voor de meeste van het gebruik van de gevallen van een schets van de arduino.
Voor dit project bestaat de /tmp/arduino.txt bestand uit vier lijnen:
Lijn 1: "waar" of "onwaar" strings. Gelast van arduino om over te schakelen van de LED in- of uitschakelen
Lijn 2: de IP-adressen van waaruit de laatste schakeloptie opdracht afkomstig is.
Linha 3: "OK" als de arduino schets dit OK niet tegenkomt doet, het bestand genegeerd tot de next-lus.
Regel 4: leeg