Med IPC för trådlös kryptering med Intel Galileo (4 / 10 steg)

Steg 4: Skapa IPC objekt

Ett delat minne-objekt skapas med shmget medan en semafor använder semget. De båda behöver en nyckel, flaggor och ett funktionsspecifikt värde. Om du vill kontrollera status för IPC objekt som du skapar, kan du ange ett av följande kommandon från Linux för delat minne eller semaforer, respektive:

cat /proc/sysvipc/shm
cat /proc/sysvipc/sem

Dessa kommandon är mycket användbar när du försöker avgöra när ett objekt har skapats eller förstörs. Du kan också se nyckel och ID för objektet. Detta hjälper felsökning Python skript eftersom ni vet säkert vilka IPC objekt finns faktiskt för Python att använda.
Nycklar Alla IPC objekt skapas med en unik nyckel. För ett enkelt test är det acceptabelt att använda en hårdkodad nyckel men utöver det är det bra att ha en funktion generera nycklar för dig. SysV innehåller funktionen ftok för detta ändamål. Argumenten är en sträng (som representerar platsen för en fil) och en int (används för att generera olika nycklar). ftok kombinerar sökvägen och int (även om bara de minst signifikanta 8 bitarna används - och måste vara noll) för att generera en unik nyckel (för det mesta). Det finns fortfarande möjlighet att ringa ftok med olika argument och få samma nyckel. Visst, chansen är liten men en robust lösning måste hantera detta villkor. Som sagt, ignorerar detta projekt detta villkor eftersom det kommer snart att uppdateras för att använda POSIX IPC funktioner - som returnerar alltid unika nycklar.
Flaggor Flaggorna shmget och semget styr hur den skapas. IPC_CREAT i sig kommer att skapa objektet om det inte finns eller helt enkelt returnera ID för det aktuella objektet om det redan har gjorts. OR'ing IPC_EXCL med IPC_CREAT kommer att orsaka att funktionen fel om objektet finns redan. Härifrån kan du förhandla fram ett sätt att skapa en ny nyckel och prova och öppna objektet i stället. Du kan också eller i filrättigheter - 0666 eller 0660 i denna kod. Detta representerar behörigheterna för ägare, grupp och andra för det här objektet. Värdet 0666 kan alla tre att läsa/skriva medan 0660 tillåter endast ägare och grupp att läsa/skriva.

I den här koden utelämna jag IPC_EXCL mestadels eftersom om du glömmer att förstöra IPC objekten innan omprogrammering Galileo, de gamla IPC objekt kvar. När den nya skissen kör med IPC_EXCL ser det att IPC objekten redan har skapats och kommer fel. Detta nu lämnar du för att manuellt förstöra objekt eller starta om Galileo. Genom att lämna IPC_EXCL ut problemet undviks. Också, eftersom de enda program skapa IPC objekt är sådana du lanserar du inte behöver oroa kolliderar med en annan process IPC objekt.
Ytterligare argument och initiering I SysV är en semafor-objekt faktiskt en matris med semaforer. För enkelhetens skull kommer vi att begränsa varje objekt till bara en enda semafor. Detta hjälper också göra koden mer läsbar. Det andra argumentet för semget är antalet semaforer för det här objektet.

En delade minnesobjektet behöver veta dess storlek innan skapelsen. Därför är det andra argumentet för shmget storleken på de delat minnessegmentet skapas.

Funktionen shmat fäster det delade minnesobjektet vid adressutrymmet till den aktuella processen (dvs. skissen). Detta är vad gör att skissen att läsa och skriva från det delat minnessegmentet som om det vore bara en annan dataobjekt skapad av skissen. Void pekaren returneras av shmat måste vara gjuten så att vi kan fungera på det senare.

Semaforen måste dess räkna initieras till ett värde som överensstämmer med dess tolkning i koden. Till exempel ska en semafor som motsvarar hur mycket data är (inledningsvis tom) kö anges till noll efter skapelsen. Detta görs med funktionen semctl som tar den semaphore ID, index i matrisen semafor (alltid 0 för denna kod), ett kommando och en union. Unionen innehåller data som kan användas av vissa kommandon. Här behöver vi bara kommandot SETVAL som sätter den semaphore räknas lika med int inom unionen.

Se Steg
Relaterade Ämnen

Streaming USB Webcam med Intel Galileo Gen 2

Välkommen!Idag lär vi dig att strömma en USB webbkamera med Intel Galileo Gen 2.Vi måste av "apt-get" så en Debian Linux bygga behövs på din Galileo.Följ min Instructable för att bygga en Debian Linux-distributionen för Intel GalileoKompatibla e...

Komma igång med Intel® Galileo Gen2 utveckling styrelsen

Denna handbok förklarar om hur du kommer igång med Intel® Galileo Gen2 styrelsen.Intel® Galileo Gen 2 utveckling ombord är en mikrokontroller styrelsen baserat på Intel® Quark™ SoC X 1000 ansökan processor, en 32-bitars Intel® Pentium® varumärke syst...

Komma igång med Intel Galileo

Nyligen fick jag Intel Galileo från Microsoft som jag är en av finalistIoT konkurrens. Nu spendera jag min tid att göra en massa kreativa tyger med min Galileo. Jag skriver detta instructable för alla som ville komma igång med Intel Galileo.Steg 1: I...

Gränsyta knappsats och LCD-skärm med Intel Galileo

IntroduktionI den här guiden kommer att visa dig hur gränssnittet en flytande kristalldisplay och knappsats med Intel Galileo. I den här guiden kommer vi att använda en 16 x 2 LCD, som visar 2 rader eller karaktär i 16 kolumner.Steg 1: Komponenter;Ko...

Hur man skjuter timelapse-video med Intel Galileo Gen 2

Nedan visar vi dig hur man skjuter en timelapse-video med Intel Galileo Gen 2 eller en liknande ombord.Vi använder en 2,5 mm-uttag att ansluta styrelsen till en Canon DSLR och sedan kontrollera slutaren med vår styrelse.Allmänhet Canon digitala syste...

Super fot - en smart följeslagare för fysiskt utmanas med Intel Galileo

Induktion av denna idé:Vi kände verkligen mycket ledsen för en kollega på vårt kontor, vars ben inaktiveras mycket dåligt och hon kämpar många dagligen med kryckor att gå. Men det finns avsättning för hissen, är det svårare för henne att nå det avstå...

DIY fukt Sensor med Intel Galileo

Nyligen jag spelar med en fukt sensor för ett av mina projekt så jag tänkte dela den med dig. Jag fick den från eBay för mindre än $4. I princip A markens fukt sensor mäter halten i jord. Med det, kan du enkelt berätta när jorden behöver mer vatten e...

Handledning om hur man gör en rökdetektion system med Intel Galileo Gen2.

I detta projekt, kommer att vi gå över hur man bygger en rök sensorkrets med en Intel Galileo Gen2 ombord bland lite fler enheter.Vi kommer använda MQ2 rök sensorn i detta fall eftersom det är förnuftigt att både rök och brandfarlig gas.MQ2 röken fun...

Grove startpaket med Intel Galileo Gen 2: Komma igång

När jag började med IoT var jag alla förvirrade om elektronik materialen,motstånd och kretsar, då jag fick Seeed Studio's Grove Starter Kit plus. Med detta har vi att bara koppla in modulerna som sensor istället för att hantera det genom lödning elle...

Fukt-Sensor med Intel Galileo

Nyligen var jag spelar med fukt sensor för en av mitt projekt så tänkte dela den med dig.Steg 1: Fukt SensorJag fick jord fukt Sensor från ebay för mindre än $4. I princip A markens fukt sensor mäter halten i jord. Med det, kan du enkelt berätta när...

Gränsyta för LCD-skärm med Intel Galileo

TITEL: GRÄNSSNITT LCD-SKÄRM MED INTELGALILEOINLEDNING:Detta projekt syftar till gränssnitt en LCD med en Intel Galileo. LCD-skärmen visar en Välkommen uttalande. Detta underlättas av koden program som laddas upp till Intel Galileo.LCD används är en 1...

Hur man bygger en parkering med Intel® Galileo! (Intel IoT)

En steg för steg handledning för att bygga, på ett mycket enkelt sätt, en rolig bil park med automatisk barriär och display-räknare med din Intel® Galileo!» Rekommenderad ålder: 15 +» Rekommenderad ålder (att spela med parkeringen): 3 + :)» Minsta se...

Komma igång med Intel Edison - Python programmering

Denna guide är för alla er python programmerare som har alltid undrat,vad är det bästa sättet att komma in i "IoT"(Internet of Things) , nu sedan du har gjort det till den här sidan, köpa dig en Intel Edison från Amazon eller online lagra som Ad...

Komma igång med Intel IoT för de riktiga Mac dummies :)

Detta Instructable beskriver hur jag arbetade mig igenom de första stegen med Intel IoT kit på en Mac.Jag Charlotte, en av medlemmarna av FabLab Breda (Nederländerna). Jag är mycket mer kapabel med hårdvara (3D-skrivare, lasercutters, CNC etc) än med...

Automatiserad studiemiljö med Intel Edison

I detta projekt ska jag visa dig hur man gör en automatiserad studiemiljö med Intel Edison!Intel-Edison använder flera sensor för att övervaka miljön i ditt studierum. Edison optimerar miljön på ditt rum som passar dina angivna parametrar för att stu...

Geiger ryggsäck med Intel Edison

Vi är en grupp av beslutsfattare som vill tillbringa nätter och helger mixtra med tecnology här på Verona FabLab (Verona är en stad i norra Italien) och med detta instructable vill vi beskriva projektet vi har insett för Intel Maker contest.Vårt proj...

Dagis övervakning och spårning System med Intel Edison Development Kit

Vi har byggt ett dagis övervakning och spårning system med Intel Edison styrelsen tillsammans med Bluetooth låg energi (BLE) enheter och en USB-kamera. Det är en demonstration av hur lätt Intel Edison DevKit kan användas för att bygga en lösning till...

ETextiles med Intel Edison

eTextiles görs med hjälp av tekniker och material som gör det så elektriska komponenter kan bäddas in och integreras i tyg. Det är en viktig del av bärbar teknik och ett perfekt sätt för crafty människor att dyka till elektronik och vice versa. Dessa...

Anslutning av Intel® RealSense™ 3D-kamera med Intel® Edison

Intel® har infört många stor innovation. En är Intel® RealSense™ teknologi med Intel® RealSense™ 3D kameror och SDK; Vi kan skapa program som kan utföra gest upptäckt, ansikts analys, bakgrunden segmentering, röstigenkänning, röst-syntes, och mer, SD...