No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

monitor.cpp 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "monitor.h"
  2. #include "server.h"
  3. using namespace std;
  4. SOCKADDR_IN ssin;
  5. SOCKET sock;
  6. socklen_t recsize = sizeof (ssin);
  7. string serverReceive(int size);
  8. int sendMessage(const char *data, int dataLength);
  9. int receive(char *data);
  10. int send_message_to_monitor(const char* typeMessage, const void * data) {
  11. if ((string) typeMessage == HEADER_STM_IMAGE) {
  12. Jpg * imgC = (Jpg*) data;
  13. sendMessage("IMG", 3);
  14. sendMessage((const char*)imgC->data(), imgC->size());
  15. sendMessage("TRAME", 5);
  16. return 0;
  17. } else if ((string) typeMessage == HEADER_STM_POS) {
  18. char buffer[400];
  19. Position * maPosition = (Position*) data;
  20. sprintf(buffer, "POScenter: %3d;%3d | %.1fTRAME", maPosition->center.x, maPosition->center.y, maPosition->angle);
  21. sendMessage(buffer, strlen(buffer));
  22. return 0;
  23. } else if ((string) typeMessage == HEADER_STM_MES) {
  24. char buffer[50];
  25. sprintf(buffer, "MSG%sTRAME", (const char*) data);
  26. sendMessage(buffer, strlen(buffer));
  27. return 0;
  28. } else if ((string) typeMessage == HEADER_STM_ACK) {
  29. char buffer[50];
  30. sprintf(buffer, "ACK%sTRAME", (const char*) data);
  31. sendMessage(buffer, strlen(buffer));
  32. return 0;
  33. } else if ((string) typeMessage == HEADER_STM_BAT) {
  34. char buffer[50];
  35. sprintf(buffer, "BAT%sTRAME", (const char*) data);
  36. sendMessage(buffer, strlen(buffer));
  37. return 0;
  38. } else if ((string) typeMessage == HEADER_STM_NO_ACK) {
  39. char buffer[50];
  40. sprintf(buffer, "NAK%sTRAME", (const char*) data);
  41. sendMessage(buffer, strlen(buffer));
  42. return 0;
  43. } else if ((string) typeMessage == HEADER_STM_LOST_DMB) {
  44. char buffer[50];
  45. sprintf(buffer, "LCD%sTRAME", (const char*) data);
  46. sendMessage(buffer, strlen(buffer));
  47. return 0;
  48. } else {
  49. return -1;
  50. }
  51. }
  52. int receive_message_from_monitor(char *typeMessage, char *data) {
  53. char buffer[20];
  54. int tBuffer = receive(buffer);
  55. sscanf(buffer, "%3s:%s", typeMessage, data);
  56. return tBuffer;
  57. }
  58. int receive(char *data) {
  59. int result;
  60. result = receiveDataFromServer(data, 20);
  61. //cout <<"Data : " << data << endl;
  62. return result;
  63. }
  64. int sendMessage(const char *data, int dataLength) {
  65. if (sendDataToServer((char*)data, dataLength) != dataLength) {
  66. perror("Send failed : ");
  67. return false;
  68. }
  69. return true;
  70. }