Hoi, ik loop momenteel stage en ben een communicatie device aan het programmeren.
Het device heeft een bezale versie van Linux draaien en alle POSIX api's staan tot mijn beschikking.
De code ziet er nu al volgt uit
include <....>
..
..
int createAndConnectSocket()
{
commandó's....
}
void *zendOmTienSecs
{
while(1)
send(....);
}
void *haalBerichtenOp
{
while(1)
recv(...);
}
int Main
{
pthread_t haalopThread, zendThread;
int handle1, handle2;
int u = 1;
int t = 1;
printf("%i",createAndConnectSocket());
handle1 = pthread_create(&haalopThread, null, haalBerichtenOp, (void *) t);
handle2 = pthread_create(&zendThread, null, zendOmTienSecs, (void *) u);
}
Ik heb nog nooit POSIX Threads gebruikt alleen in java heb ik ermee geprogrammeerd.
Het is eigenlijk de bedoeling dat die haalopThread gewoon de hele tijd onafhankelijk van het programma, berichten binnen moet halen en die in een array opslaan. Maar ik weet niet hoe ik de thread zo moet creeeren dat de rest van het programma door blijft lopen terwijl deze thread ook zijn werk doet.
In java heb ik toen een gps_plotter gemaakt die onafhankelijk van de rest gewoon de hele tijd gps coordinaten bufferde, terwijl het programma gewoon door ging met tekenen(was een realtime plotter
)
Plus zendOmTienSecs zou om de 10 sec gewaked moeten worden, hoe doe ik dit?? dmv een interrupt en een timer??
Als hij alleen berichten zou moeten opvangen zou ik gewoon dmv
Join(haalopThread,0) deze thread voortdurende laten lopen, dit kan nu niet omdat andere threads en functies ook nog moeten worden aangeroepen
Het device heeft een bezale versie van Linux draaien en alle POSIX api's staan tot mijn beschikking.
De code ziet er nu al volgt uit
include <....>
..
..
int createAndConnectSocket()
{
commandó's....
}
void *zendOmTienSecs
{
while(1)
send(....);
}
void *haalBerichtenOp
{
while(1)
recv(...);
}
int Main
{
pthread_t haalopThread, zendThread;
int handle1, handle2;
int u = 1;
int t = 1;
printf("%i",createAndConnectSocket());
handle1 = pthread_create(&haalopThread, null, haalBerichtenOp, (void *) t);
handle2 = pthread_create(&zendThread, null, zendOmTienSecs, (void *) u);
}
Ik heb nog nooit POSIX Threads gebruikt alleen in java heb ik ermee geprogrammeerd.
Het is eigenlijk de bedoeling dat die haalopThread gewoon de hele tijd onafhankelijk van het programma, berichten binnen moet halen en die in een array opslaan. Maar ik weet niet hoe ik de thread zo moet creeeren dat de rest van het programma door blijft lopen terwijl deze thread ook zijn werk doet.
In java heb ik toen een gps_plotter gemaakt die onafhankelijk van de rest gewoon de hele tijd gps coordinaten bufferde, terwijl het programma gewoon door ging met tekenen(was een realtime plotter
Plus zendOmTienSecs zou om de 10 sec gewaked moeten worden, hoe doe ik dit?? dmv een interrupt en een timer??
Als hij alleen berichten zou moeten opvangen zou ik gewoon dmv
Join(haalopThread,0) deze thread voortdurende laten lopen, dit kan nu niet omdat andere threads en functies ook nog moeten worden aangeroepen
[ Voor 18% gewijzigd door Verwijderd op 04-11-2004 14:10 ]