123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "../src/imagerie.h"
- #include "../src/serial.h"
- #include "../src/tcpServer.h" // include himself imagerie.h
- #include <pthread.h>
- #include <unistd.h>
-
- using namespace std;
- using namespace cv;
- #ifndef __STUB__
- using namespace raspicam;
- #endif
-
- void * threadVideo(void *arg)
- {
- printf("Thread lancé ... \n");
- Camera rpiCam;
- Image imgVideo;
- Arene monArene;
- Position positionRobots[20];
- Jpg compress;
-
- openCamera(&rpiCam);
- do
- {
- #ifndef __STUB__
- getImg(&rpiCam, &imgVideo);
- #else
- getImg(&rpiCam, &imgVideo, "/home/pehladik/C-TP-RT/src/mondrian22.jpeg");
- #endif
- /*if(detectArena(&imgVideo, &monArene)==0)
- {
- detectPosition(&imgVideo,positionRobots,&monArene);
- drawArena(&imgVideo,&imgVideo,&monArene);
- }
- else
- detectPosition(&imgVideo,positionRobots);
-
- drawPosition(&imgVideo,&imgVideo,&positionRobots[0]);*/
- imgCompress(&imgVideo,&compress);
-
- sendToUI("IMG",&compress);
- sendToUI("POS",&positionRobots[0]);
- }while(waitKey(30)!='q');
- closeCam(&rpiCam);
- pthread_exit(NULL);
- }
-
- void * threadClient(void *arg){
- char * args [] = {"nodejs", "/home/pehladik/Interface-TP-RT/interface.js", NULL};
- if (execv("/usr/bin/nodejs", args)== -1){
- perror("execv");
- return EXIT_FAILURE;
- }
-
- }
-
- int main() {
- pthread_t threadClient;
- if(pthread_create(&threadClient,NULL, threadClient, NULL) == -1)
- perror("erreur lors de la creation du thread\n");
-
-
- serverOpen();
- robotOpenCom();
-
- char header[4];
- char data[20];
- memset(data, '\0',20);
- memset(header,'\0',4);
-
- pthread_t thread1;
- if(pthread_create(&thread1,NULL, threadVideo, NULL) == -1)
- perror("erreur lors de la creation du thread\n");
-
- do
- { receptionFromUI(header,data);
- printf("Msg reçu : %s %s", header, data);
-
- if(strcmp(header, DMB) == 0)
- {
- printf("EVENEMENT DUMBER DETECTE AVEC LE MESSAGE :%s \n",data);
- int a = sendCmdToRobot(data[0]);
- printf("Resultat CMD : %d \n", a);
- if(data[0] == WITHOUT_WD && a == 0)
- {
- sendToUI(ACK);
- }
- else if(data[0] == BACKIDLE && a == 0)
- {
- sendToUI(ACK);
- }
- }
-
- if(strcmp(header, MES) == 0)
- {
- printf("EVENEMENT MESSAGE DETECTE AVEC LE MESSAGE :%s \n",data);
- }
-
- if(strcmp(header,POS)==0)
- {
- printf("EVENEMENT POSITION DETECTE AVEC LE MESSAGE :%s \n",data);
- }
- }while((strcmp(header,MES)!=0) || (data[0] != 'C'));
- robotCloseCom();
- serverClose();
-
- return 0;
- }
|