From 111c118844620ef1581c03f0c4f4e87f070d7253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20DI=20MERCURIO?= Date: Mon, 12 Nov 2018 14:00:53 +0100 Subject: [PATCH] small modifs --- software/monitor/monitor/MonitorUI.cs | 76 +++++++++++++----- software/monitor/monitor/monitor | Bin 104448 -> 104960 bytes software/raspberry/testeur/testeur/main.cpp | 71 ++++++++++------ .../private/timestamps-10.105.1.13-pi-22 | 20 ++--- 4 files changed, 113 insertions(+), 54 deletions(-) diff --git a/software/monitor/monitor/MonitorUI.cs b/software/monitor/monitor/MonitorUI.cs index cc6dda2..d042c15 100644 --- a/software/monitor/monitor/MonitorUI.cs +++ b/software/monitor/monitor/MonitorUI.cs @@ -200,6 +200,9 @@ public partial class MainWindow : Gtk.Window a.RetVal = true; } + private byte[] imageComplete; + private byte[] imageInProgress; + /// /// Callback called when new message is received from server /// @@ -208,17 +211,47 @@ public partial class MainWindow : Gtk.Window /// Raw buffer corresponding of received message public void OnCommandReceivedEvent(string header, string data, byte[] buffer) { + if (buffer==null) + { + // we have lost server + ChangeState(SystemState.NotConnected); + + MessagePopup(MessageType.Error, + ButtonsType.Ok, "Server lost", + "Server is down: disconnecting"); + cmdManager.Close(); + } + // if we have received a valid message if (header != null) { #if DEBUG // print message content - Console.WriteLine("Received header (" + header.Length + "): " + header); - if (header.ToUpper() != DestijlCommandList.HeaderStmImage) - { - if (data != null) Console.WriteLine("Received data (" + data.Length + "): " + data); - } + if (header.Length > 4) + Console.WriteLine("Bad header(" + buffer.Length + ")"); + else + Console.WriteLine("Received header (" + header.Length + "): " + header); + //if (header.ToUpper() != DestijlCommandList.HeaderStmImage) + //{ + // if (data != null) Console.WriteLine("Received data (" + data.Length + "): " + data); + //} #endif + // Image management + if (header == DestijlCommandList.HeaderStmImage) + { + imageComplete = imageInProgress; + imageInProgress = buffer; + } + else + { + if (imageInProgress == null) imageInProgress = buffer; + else + { + Array.Resize(ref imageInProgress, imageInProgress.Length + buffer.Length); + System.Buffer.BlockCopy(buffer, 0, imageInProgress, imageInProgress.Length - buffer.Length, buffer.Length); + } + } + // depending on message received (based on header) // launch correponding action if (header.ToUpper() == DestijlCommandList.HeaderStmBat) @@ -243,23 +276,26 @@ public partial class MainWindow : Gtk.Window { // if message is an image, convert it to a pixbuf // that can be displayed - byte[] image = new byte[buffer.Length - 4]; - System.Buffer.BlockCopy(buffer, 4, image, 0, image.Length); + if (imageComplete != null) + { + byte[] image = new byte[imageComplete.Length - 4]; + System.Buffer.BlockCopy(imageComplete, 4, image, 0, image.Length); - imageReceivedCounter++; - try - { - drawingareaCameraPixbuf = new Pixbuf(image); - drawingAreaCamera.QueueDraw(); - } - catch (GLib.GException) - { - badImageReceivedCounter++; + imageReceivedCounter++; + try + { + drawingareaCameraPixbuf = new Pixbuf(image); + drawingAreaCamera.QueueDraw(); + } + catch (GLib.GException) + { + badImageReceivedCounter++; #if DEBUG - Console.WriteLine("Bad Image: " + badImageReceivedCounter + - " / " + imageReceivedCounter + - " (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)"); -#endif + Console.WriteLine("Bad Image: " + badImageReceivedCounter + + " / " + imageReceivedCounter + + " (" + badImageReceivedCounter * 100 / imageReceivedCounter + "%)"); +#endif + } } } } diff --git a/software/monitor/monitor/monitor b/software/monitor/monitor/monitor index 45c541fe749254cf087df7130b665f170a6db3f4..d65f28ccb20963cd6bfb8e2953b14a070e75a2b9 100755 GIT binary patch delta 16966 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 diff --git a/software/raspberry/testeur/testeur/main.cpp b/software/raspberry/testeur/testeur/main.cpp index 577f344..3bdccc8 100644 --- a/software/raspberry/testeur/testeur/main.cpp +++ b/software/raspberry/testeur/testeur/main.cpp @@ -63,6 +63,8 @@ MessageToMon messageAnswered; std::thread *threadTimer; std::thread *threadServer; +char* imgMsg = NULL; + using namespace std; /* @@ -80,7 +82,8 @@ void ThreadTimer(void) { struct timespec tim, tim2; tim.tv_sec = 0; tim.tv_nsec = 100000000; - + int cnt =0; + while (1) { //std::this_thread::sleep_for(std::chrono::seconds ) //sleep(1); @@ -89,24 +92,32 @@ void ThreadTimer(void) { return; } - sysTick = true; + cnt++; + + if (cnt>=1) + { + sysTick = true; + cnt=0; + } } } void printReceivedMessage(MessageFromMon *mes) { - cout << "Received " + to_string(receivedLength) + " data\n"; + cout << "Received " + to_string(receivedLength) + " data"; + cout << std::endl; cout << "Header: "; for (int i = 0; i < 4; i++) { cout << mes->header[i]; } - cout << "\nData: "; + cout << std::endl; + cout << "Data: "; for (int i = 0; i < receivedLength - 4; i++) { cout << mes->data[i]; } - cout << "\n"; + cout << std::endl; } int sendAnswer(string cmd, string data) { @@ -115,7 +126,7 @@ int sendAnswer(string cmd, string data) { msg = cmd + ':' + data; cout << "Answer: " + msg; - cout << "\n"; + cout << std::endl; sendDataToServer((char*) msg.c_str(), msg.length()); return status; @@ -123,20 +134,23 @@ int sendAnswer(string cmd, string data) { int sendBinaryData(string cmd, char* data, int length) { int status = 0; - char* msg; + int lengthSend; + + if (imgMsg != NULL) free((void*) imgMsg); + imgMsg = (char*) malloc(length + 4); + imgMsg[0] = cmd[0]; + imgMsg[1] = cmd[1]; + imgMsg[2] = cmd[2]; + imgMsg[3] = ':'; - msg = (char*) malloc(length + 4); - msg[0] = cmd[0]; - msg[1] = cmd[1]; - msg[2] = cmd[2]; - msg[3] = ':'; - - memcpy((void*) &msg[4], (const void *) data, length); + memcpy((void*) &imgMsg[4], (const void *) data, length); cout << "Answer: " + cmd; - cout << "\n"; - sendDataToServer(msg, length + 4); + cout << std::endl; - free((void*) msg); + lengthSend=sendDataToServer(imgMsg, length + 4); + + cout << "Requested Length: " + to_string(length) + " / Send Length: " + to_string(lengthSend); + cout << std::endl; return status; } @@ -198,30 +212,39 @@ int main(int argc, char** argv) { #else if (open_communication_robot("/dev/ttyS0") != 0) { #endif /*__FOR_PC__ */ - cerr << "Unable to open /dev/ttyUSB0: abort\n"; + cerr << "Unable to open /dev/ttyUSB0: abort"; + cout << std::endl; return -1; } - cout << "Com port opened\n"; + cout << "Com port opened"; + cout << std::endl; // Ouverture de la camera if (open_camera(&cam) == -1) { - cerr << "Unable to open camera: abort\n"; + cerr << "Unable to open camera: abort"; + cout << std::endl; + return -1; } - cout << "Camera opened\n"; + cout << "Camera opened"; + cout << std::endl; // Ouverture du serveur socketID = openServer(5544); - cout << "Server opened on port 5544\n"; + cout << "Server opened on port 5544"; + cout << std::endl; threadTimer = new std::thread(ThreadTimer); for (;;) { - cout << "Waiting for client to connect ...\n"; + cout << "Waiting for client to connect ..."; + cout << std::endl; acceptClient(); disconnected = false; dataReady = false; - cout << "Client connected\n"; + cout << "Client connected"; + cout << std::endl; + threadServer = new std::thread(ThreadServer); while (disconnected == false) { diff --git a/software/raspberry/testeur/testeur/nbproject/private/timestamps-10.105.1.13-pi-22 b/software/raspberry/testeur/testeur/nbproject/private/timestamps-10.105.1.13-pi-22 index fe5221c..727d827 100644 --- a/software/raspberry/testeur/testeur/nbproject/private/timestamps-10.105.1.13-pi-22 +++ b/software/raspberry/testeur/testeur/nbproject/private/timestamps-10.105.1.13-pi-22 @@ -1,26 +1,26 @@ -#Mon Nov 12 09:47:39 CET 2018 +#Mon Nov 12 11:20:04 CET 2018 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/project.xml=c1541775358000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-impl.mk=c1541775357000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/project.xml=c1542014288000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-impl.mk=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/main.cpp=c1541778496000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1541685829000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/main.cpp=c1542017998000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-Release.mk=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Package-Debug.bash=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/.gitignore=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-variables.mk=c1541775358000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/private/Makefile-variables.mk=c1541775358000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-variables.mk=c1542014288000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/private/Makefile-variables.mk=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/Makefile=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-Debug-rpi.mk=c1541776257000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-Debug-rpi.mk=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Makefile-Debug.mk=c1541775193000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.h=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1541778370000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Package-Release.bash=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/.dep.inc=c1541685829000 VERSION=1.3 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1541685829000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/definitions.h=c1541685829000 -/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Package-Debug-rpi.bash=c1541775358000 +/home/dimercur/Documents/Travail/git/dumber/software/raspberry/testeur/testeur/nbproject/Package-Debug-rpi.bash=c1542014288000 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp=c1541685829000