Ik ben nu al een tijdje bezig met een draadloze stack te schrijven in C. Deze stack draaid op een Atmega328p icm een RFM-12B 868 MHz radio. (en nee, ik gebruik geen Arduino, gewoon een custom PCB
)
De stack is volledig opgezet dmv. TDD (TestDrivenDevelopment). Ik ontwikkel de stack in C en kan hem compileren voor mijn AVR en voor een OSX target, waar ik wat debug informatie zoals message-queues en retries etc kan zien.

Maar dat is allemaal niet zo interessant.
Met name de netwerklaag van de stack begint nu aardig wat intelligentie te krijgen, omdat hij volledig meshing is. Dit gedrag wil ik graag lokaal op mijn PCtje kunnen testen. Om dit meshing gedrag goed in kaart te krijgen wil ik 100+ instanties van een node die mijn stack gebruikt emuleren.
Nu heb ik 2 problemen:
Welke communicatie techniek benaderd een radio spectrum het beste?
Ik zit te denken over het mechanisme dat ik ga gebruiken om de verschillende 'stack-instanties' (lees applicaties) met elkaar te laten praten. Een UDP broadcast server is het eerste wat in mij opkwam en het dit emuleert mijn radio spectrum ook het beste. Echter weet ik niet of het mogelijk is om onder OSX een re-use van een UDP server poort te doen? Ik heb hier nog maar weinig over kunnen vinden, en de udp broadcast servercode die ik tot nu toe heb gebruikt werkt wel, maar geen meerdere instanties van dezelfde server op 1 pc. Dit is echter wel vereist, omdat ik straks gewoon 100x mijn test applicatie wil spawnen en zo hoop ik dus een netwerk met 100 nodes te simuleren.
Hoe kan ik snel meerdere instanties van mijn stack maken?
Aangezien ik C gebruik en dit dus geen OO taal is, word het wat lastiger voor mij om meerdere instanties van mijn stack te creeeren. Ik heb niet echt veel globale variabelen, dus wat ik nog zou kunnen doen is alle globalen in een struct mikken en deze telkes bij elke functie meegeven. Zo kan ik meerdere instanties van mijn stack in 1 applicatie maken. Echter lijkt mij dit niet echt de manier... Als ik een UDP broadcast server heb kan ik gewoon 100 instanties van mijn applicatie spawnen, dit lijkt vooralsnog het makkelijkste, hebben jullie nog goede ideeen verder?
Ik heb dus al wel aardig een idee hoe ik het op kan lossen, echter is het allemaal nog een beetje hobby en voordat ik een hoop tijd in een oplossing ga stoppen wilde ik even een second opinion
De stack is volledig opgezet dmv. TDD (TestDrivenDevelopment). Ik ontwikkel de stack in C en kan hem compileren voor mijn AVR en voor een OSX target, waar ik wat debug informatie zoals message-queues en retries etc kan zien.
Maar dat is allemaal niet zo interessant.
Met name de netwerklaag van de stack begint nu aardig wat intelligentie te krijgen, omdat hij volledig meshing is. Dit gedrag wil ik graag lokaal op mijn PCtje kunnen testen. Om dit meshing gedrag goed in kaart te krijgen wil ik 100+ instanties van een node die mijn stack gebruikt emuleren.
Nu heb ik 2 problemen:
Welke communicatie techniek benaderd een radio spectrum het beste?
Ik zit te denken over het mechanisme dat ik ga gebruiken om de verschillende 'stack-instanties' (lees applicaties) met elkaar te laten praten. Een UDP broadcast server is het eerste wat in mij opkwam en het dit emuleert mijn radio spectrum ook het beste. Echter weet ik niet of het mogelijk is om onder OSX een re-use van een UDP server poort te doen? Ik heb hier nog maar weinig over kunnen vinden, en de udp broadcast servercode die ik tot nu toe heb gebruikt werkt wel, maar geen meerdere instanties van dezelfde server op 1 pc. Dit is echter wel vereist, omdat ik straks gewoon 100x mijn test applicatie wil spawnen en zo hoop ik dus een netwerk met 100 nodes te simuleren.
Hoe kan ik snel meerdere instanties van mijn stack maken?
Aangezien ik C gebruik en dit dus geen OO taal is, word het wat lastiger voor mij om meerdere instanties van mijn stack te creeeren. Ik heb niet echt veel globale variabelen, dus wat ik nog zou kunnen doen is alle globalen in een struct mikken en deze telkes bij elke functie meegeven. Zo kan ik meerdere instanties van mijn stack in 1 applicatie maken. Echter lijkt mij dit niet echt de manier... Als ik een UDP broadcast server heb kan ik gewoon 100 instanties van mijn applicatie spawnen, dit lijkt vooralsnog het makkelijkste, hebben jullie nog goede ideeen verder?
Ik heb dus al wel aardig een idee hoe ik het op kan lossen, echter is het allemaal nog een beetje hobby en voordat ik een hoop tijd in een oplossing ga stoppen wilde ik even een second opinion
"Honey, you think KFC is still open?" - Frank the tank / old school the movie