aruco rajouté + script pour compiler et installer opencv avec le support aruco
This commit is contained in:
		
							parent
							
								
									8bf6c73dbb
								
							
						
					
					
						commit
						2ef33f2e59
					
				
					 31 changed files with 1472 additions and 940 deletions
				
			
		
							
								
								
									
										88
									
								
								software/install-opencv.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										88
									
								
								software/install-opencv.sh
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,88 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| ###################################### | ||||
| # INSTALL OPENCV ON UBUNTU OR DEBIAN # | ||||
| ###################################### | ||||
| 
 | ||||
| # |          THIS SCRIPT IS TESTED CORRECTLY ON          | | ||||
| # |------------------------------------------------------| | ||||
| # | OS               | OpenCV       | Test | Last test   | | ||||
| # |------------------|--------------|------|-------------| | ||||
| # | Ubuntu 18.04 LTS | OpenCV 3.4.2 | OK   | 18 Jul 2018 | | ||||
| # | Debian 9.5       | OpenCV 3.4.2 | OK   | 18 Jul 2018 | | ||||
| # |----------------------------------------------------- | | ||||
| # | Debian 9.0       | OpenCV 3.2.0 | OK   | 25 Jun 2017 | | ||||
| # | Debian 8.8       | OpenCV 3.2.0 | OK   | 20 May 2017 | | ||||
| # | Ubuntu 16.04 LTS | OpenCV 3.2.0 | OK   | 20 May 2017 | | ||||
| 
 | ||||
| 
 | ||||
| # VERSION TO BE INSTALLED | ||||
| 
 | ||||
| OPENCV_VERSION='3.4.2' | ||||
| 
 | ||||
| 
 | ||||
| # 1. KEEP UBUNTU OR DEBIAN UP TO DATE | ||||
| 
 | ||||
| sudo apt-get -y update | ||||
| # sudo apt-get -y upgrade       # Uncomment this line to install the newest versions of all packages currently installed | ||||
| # sudo apt-get -y dist-upgrade  # Uncomment this line to, in addition to 'upgrade', handles changing dependencies with new versions of packages | ||||
| # sudo apt-get -y autoremove    # Uncomment this line to remove packages that are now no longer needed | ||||
| 
 | ||||
| 
 | ||||
| # 2. INSTALL THE DEPENDENCIES | ||||
| 
 | ||||
| # Build tools: | ||||
| sudo apt-get install -y build-essential cmake | ||||
| 
 | ||||
| # GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake): | ||||
| #sudo apt-get install -y qt5-default libvtk6-dev | ||||
| sudo apt-get install -y libgtkglext1-dev | ||||
| 
 | ||||
| # Media I/O: | ||||
| sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev | ||||
| 
 | ||||
| # Video I/O: | ||||
| sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev | ||||
| 
 | ||||
| # Parallelism and linear algebra libraries: | ||||
| sudo apt-get install -y libtbb-dev libeigen3-dev | ||||
| 
 | ||||
| # Python: | ||||
| sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy | ||||
| 
 | ||||
| # Java: | ||||
| sudo apt-get install -y ant default-jdk | ||||
| 
 | ||||
| # Documentation: | ||||
| sudo apt-get install -y doxygen | ||||
| 
 | ||||
| 
 | ||||
| # 3. INSTALL THE LIBRARY | ||||
| 
 | ||||
| sudo apt-get install -y unzip wget | ||||
| wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip | ||||
| 
 | ||||
| unzip ${OPENCV_VERSION}.zip | ||||
| rm ${OPENCV_VERSION}.zip | ||||
| mv opencv-${OPENCV_VERSION} OpenCV | ||||
| 
 | ||||
| # 3.5 Add Aruco | ||||
| # Get opencv_contrib from github | ||||
| # Copy aruco directory from <opencv_contrib>/modules to <opencv>/modules | ||||
| wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip | ||||
| mv ${OPENCV_VERSION}.zip opencv_contrib-${OPENCV_VERSION}.zip | ||||
| unzip opencv_contrib-${OPENCV_VERSION}.zip | ||||
| 
 | ||||
| cd OpenCV | ||||
| mkdir build | ||||
| cd build | ||||
| # cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF .. | ||||
| cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_JAVA=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules -DBUILD_aruco=ON .. | ||||
| make -j5 | ||||
| sudo make install | ||||
| sudo ldconfig | ||||
| 
 | ||||
| 
 | ||||
| # 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION | ||||
| 
 | ||||
| # To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'. | ||||
|  | @ -35,7 +35,7 @@ namespace monitor | |||
|         /// <summary> | ||||
|         /// Default server name | ||||
|         /// </summary> | ||||
|         public const string defaultIP = "localhost"; | ||||
|         public const string defaultIP = "10.105.1.13"; | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Default server port number | ||||
|  | @ -55,7 +55,7 @@ namespace monitor | |||
|         /// <summary> | ||||
|         /// Size of internal buffer used when reading data from server | ||||
|         /// </summary> | ||||
|         private const int BufferMaxSize = 512; | ||||
|         private const int BufferMaxSize = 8*1024; | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Internal buffer used when reading data from server | ||||
|  | @ -66,7 +66,7 @@ namespace monitor | |||
|         /// buffer containing received message from TCP server | ||||
|         /// Used to concatenate internal buffers into one | ||||
|         /// </summary> | ||||
|         private static byte[] receiveBuffer; | ||||
|         //private static byte[] receiveBuffer; | ||||
| 
 | ||||
|         //private static int initialReceiveBufferIndex = 0; | ||||
| 
 | ||||
|  | @ -83,11 +83,6 @@ namespace monitor | |||
|         public delegate void ReadEvent(string msg); | ||||
|         public static ReadEvent readEvent = null; | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Thread used in reception | ||||
|         /// </summary> | ||||
|         private static Thread readThread; | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Open connection to server "host", on default port number. | ||||
|         /// </summary> | ||||
|  | @ -156,134 +151,14 @@ namespace monitor | |||
|             if (client != null) client.Close(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Callback call by stream.BeginRead after reception of newLength data | ||||
|         /// </summary> | ||||
|         //private static void ReadCallback() | ||||
|         //{ | ||||
|         //    char character; | ||||
|         //    int data; | ||||
|         //    byte[] buffer=new byte[4096]; | ||||
|         //    int lengthRead; | ||||
| 
 | ||||
|         //    while (client.Connected) | ||||
|         //    { | ||||
|         //        try | ||||
|         //        { | ||||
|         //            //data = stream.ReadByte(); | ||||
|         //            lengthRead = stream.Read(buffer, 0, buffer.Length); | ||||
|         //        } | ||||
|         //        catch (ObjectDisposedException) | ||||
|         //        { | ||||
|         //            Console.WriteLine("Connection to server dropped (object disposed)!"); | ||||
|         //            return; | ||||
|         //        } | ||||
|         //        catch (System.IO.IOException) | ||||
|         //        { | ||||
|         //            Console.WriteLine("Connection to server dropped (other error)"); | ||||
|         //            return; | ||||
|         //        } | ||||
| 
 | ||||
|         //        if (lengthRead > 0) // a data was read | ||||
|         //        { | ||||
|         //            //character = (char)data; | ||||
|         //            var str = System.Text.Encoding.Default.GetString(buffer); | ||||
|         //            int indexOf = str.IndexOf('\n'); | ||||
| 
 | ||||
|         //            //if (character != '\n') | ||||
|         //            if (indexOf == -1) // \n doesn't exists | ||||
|         //            { | ||||
|         //                message.Append(str); | ||||
| 
 | ||||
|         //                //if (receiveBuffer == null) receiveBuffer = new byte[1]; | ||||
|         //                //else Array.Resize<byte>(ref receiveBuffer, receiveBuffer.Length + 1); // resize currrent buffer | ||||
| 
 | ||||
|         //                //receiveBuffer[receiveBuffer.Length - 1] = (byte)data; | ||||
|         //            } | ||||
|         //            else // end of string found | ||||
|         //            { | ||||
|         //                message.Append((str.Substring(0,indexOf))); | ||||
|         //                readEvent?.Invoke(message.ToString(), receiveBuffer); | ||||
| 
 | ||||
|         //                message.Clear(); | ||||
|         //                receiveBuffer = null; | ||||
|         //            } | ||||
|         //        } | ||||
|         //    } | ||||
|         //} | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Callback call by stream.BeginRead after reception of newLength data | ||||
|         /// </summary> | ||||
|         /// <param name="ar">Not sure of what is it, but needed for terminate reading</param> | ||||
|         //private static void ReadCallback(IAsyncResult ar) | ||||
|         //{ | ||||
|         //    if (client.Connected) | ||||
|         //    { | ||||
|         //        int bytesRead; | ||||
| 
 | ||||
|         //        try | ||||
|         //        { | ||||
|         //            // Termintae read operation, and get number of byte stored in buffer | ||||
|         //            bytesRead = stream.EndRead(ar); | ||||
|         //        } | ||||
|         //        catch (ObjectDisposedException e) | ||||
|         //        { | ||||
|         //            Console.WriteLine("Connection to server dropped: " + e.ToString()); | ||||
|         //            return; | ||||
|         //        } | ||||
| 
 | ||||
|         //        newLength = 1; | ||||
| 
 | ||||
|         //        // if number of byte read is not 0, concatenate string and buffer | ||||
|         //        if (bytesRead > 0) | ||||
|         //        { | ||||
|         //            packetCounter++; | ||||
| 
 | ||||
|         //            if (packetCounter >= 3) | ||||
|         //            { | ||||
|         //                //Console.WriteLine("Supplementary packet " + packetCounter); | ||||
|         //            } | ||||
| 
 | ||||
|         //            // Append new data to current string (expecting data are ascii) | ||||
|         //            message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead)); | ||||
| 
 | ||||
|         //            // Similarly, append received bytes to current buffer  | ||||
|         //            if (receiveBuffer == null) receiveBuffer = new byte[bytesRead]; | ||||
|         //            else Array.Resize<byte>(ref receiveBuffer, initialReceiveBufferIndex + bytesRead); // resize currrent buffer | ||||
| 
 | ||||
|         //            System.Buffer.BlockCopy(buffer, 0, receiveBuffer, initialReceiveBufferIndex, bytesRead); // and add received data | ||||
|         //            initialReceiveBufferIndex = receiveBuffer.Length; // move last index of current buffer | ||||
|         //        } | ||||
| 
 | ||||
|         //        // if it remains received data, prepare for a new reading (get another buffer to append to current one) | ||||
|         //        if (client.Available > 0) | ||||
|         //        { | ||||
|         //            newLength = client.Available; | ||||
|         //            if (newLength > BufferMaxSize) newLength = BufferMaxSize; | ||||
|         //            else newLength = client.Available; | ||||
|         //        } | ||||
|         //        else | ||||
|         //        { | ||||
|         //            // no more data to read, buffer and string can be send to upper level | ||||
|         //            readEvent?.Invoke(message.ToString(), receiveBuffer); | ||||
| 
 | ||||
|         //            message.Clear(); | ||||
|         //            receiveBuffer = null; | ||||
|         //            initialReceiveBufferIndex = 0; | ||||
|         //            packetCounter = 0; | ||||
|         //        } | ||||
| 
 | ||||
|         //        // Prepare for reading new data | ||||
|         //        if (newLength> BufferMaxSize) newLength = BufferMaxSize; | ||||
|         //        if (newLength <= 0) newLength = 1; | ||||
|         //        stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message); | ||||
|         //    } | ||||
|         //} | ||||
| 
 | ||||
|         private static void ReadCallback(IAsyncResult ar) | ||||
|         { | ||||
|             int newLength = 1; | ||||
|             int index = -1; | ||||
| 
 | ||||
|             if (client.Connected) | ||||
|             { | ||||
|  | @ -299,38 +174,98 @@ namespace monitor | |||
|                     Console.WriteLine("Connection to server dropped: " + e.ToString()); | ||||
|                     return; | ||||
|                 } | ||||
|                 catch (System.IO.IOException e) | ||||
|                 { | ||||
|                     Console.WriteLine("Connection to server dropped: " + e.ToString()); | ||||
|                     return; | ||||
|                 } | ||||
| 
 | ||||
|                 //newLength = 1; | ||||
|                 newLength = 1; | ||||
|                 index = -1; | ||||
| 
 | ||||
|                 // if number of byte read is not 0, concatenate string and buffer | ||||
|                 if (bytesRead > 0) | ||||
|                 { | ||||
|                     //Console.WriteLine("Receive " + bytesRead + " data"); | ||||
| 
 | ||||
|                     // Append new data to current string (expecting data are ascii) | ||||
|                     message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead)); | ||||
|                     index = SearchCarriageReturn(buffer, bytesRead); | ||||
|                 } | ||||
| 
 | ||||
|                 // if it remains received data, prepare for a new reading (get another buffer to append to current one) | ||||
|                 if (client.Available > 0) | ||||
|                 if (index == -1) | ||||
|                 { | ||||
|                     newLength = client.Available; | ||||
|                     if (newLength > BufferMaxSize) newLength = BufferMaxSize; | ||||
|                     else newLength = client.Available; | ||||
|                     if (client.Available > 0) | ||||
|                     { | ||||
|                         newLength = client.Available; | ||||
|                         if (newLength > BufferMaxSize) newLength = BufferMaxSize; | ||||
|                         else newLength = client.Available; | ||||
|                     } | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     string s = message.ToString(); | ||||
| 
 | ||||
|                     //Console.WriteLine("Message received (" + s.Length + ")"); | ||||
|                     // no more data to read, buffer and string can be send to upper level | ||||
|                     readEvent?.Invoke(message.ToString()); | ||||
|                     readEvent?.Invoke(s); | ||||
| 
 | ||||
|                     message.Clear(); | ||||
| 
 | ||||
|                     if (index != bytesRead - 1) | ||||
|                     { | ||||
|                         //Console.WriteLine("Index not at end (" + index + "/" + bytesRead + ")"); | ||||
|                         //Console.WriteLine("1=" + (char)buffer[index + 1] + " 2=" + (char)buffer[index + 2]); | ||||
| 
 | ||||
|                         byte[] trailing=new byte[BufferMaxSize]; | ||||
| 
 | ||||
|                         Array.Copy(buffer, index + 1, trailing, 0, bytesRead - index - 1); | ||||
|                         message.Append(Encoding.ASCII.GetString(trailing, 0, bytesRead - index - 1)); | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 // Prepare for reading new data | ||||
|                 if (newLength> BufferMaxSize) newLength = BufferMaxSize; | ||||
|                 if (newLength <= 0) newLength = 1; | ||||
|                 stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message); | ||||
| 
 | ||||
|                 try | ||||
|                 { | ||||
|                     stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message); | ||||
|                 } | ||||
|                 catch (ObjectDisposedException e) | ||||
|                 { | ||||
|                     Console.WriteLine("Connection to server dropped: " + e.ToString()); | ||||
|                     return; | ||||
|                 } | ||||
|                 catch (System.IO.IOException e) | ||||
|                 { | ||||
|                     Console.WriteLine("Connection to server dropped: " + e.ToString()); | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Searchs the carriage return. | ||||
|         /// </summary> | ||||
|         /// <returns>Index of carriage return, if present, -1 otherwise.</returns> | ||||
|         /// <param name="buf">Buffer of byte</param> | ||||
|         /// <param name="length">Length of buffer</param> | ||||
|         private static int SearchCarriageReturn(byte[] buf, int length) | ||||
|         { | ||||
|             int index = -1; | ||||
|             int i = 0; | ||||
| 
 | ||||
|             for (i = 0; i < length; i++) | ||||
|             { | ||||
|                 if (buf[i] == (byte)'\n') break; | ||||
|             } | ||||
| 
 | ||||
|             if (i!= length) index = i; | ||||
|             return index; | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// Write a string to server | ||||
|         /// </summary> | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ using Gdk; | |||
| using Cairo; | ||||
| 
 | ||||
| using monitor; | ||||
| using System.Timers; | ||||
| 
 | ||||
| /// <summary> | ||||
| /// Main part of the program, behavior of main window | ||||
|  | @ -69,6 +70,13 @@ public partial class MainWindow : Gtk.Window | |||
| 
 | ||||
|     private int imageReceivedCounter = 0; | ||||
|     private int badImageReceivedCounter = 0; | ||||
|     private int imageFPS = 0; | ||||
|     private int imageFPScounter = 0; | ||||
| 
 | ||||
|     /// <summary> | ||||
|     /// Timer for FPS request | ||||
|     /// </summary> | ||||
|     private System.Timers.Timer fpsTimer; | ||||
| 
 | ||||
|     /// <summary> | ||||
|     /// Initializes a new instance of the <see cref="MainWindow"/> class. | ||||
|  | @ -83,6 +91,10 @@ public partial class MainWindow : Gtk.Window | |||
|         batteryTimer = new System.Timers.Timer(10000.0); | ||||
|         batteryTimer.Elapsed += OnBatteryTimerElapsed; | ||||
| 
 | ||||
|         // create new timer for FPS , every 1s | ||||
|         fpsTimer = new System.Timers.Timer(1000.0); | ||||
|         fpsTimer.Elapsed += OnFpsTimerElapsed; | ||||
| 
 | ||||
|         // Customize controls | ||||
|         AdjustControls(); | ||||
|     } | ||||
|  | @ -126,6 +138,8 @@ public partial class MainWindow : Gtk.Window | |||
| 
 | ||||
|                 checkButtonCameraOn.Active = false; | ||||
|                 checkButtonRobotPosition.Active = false; | ||||
|                 checkButtonFPS.Active = false; | ||||
| 
 | ||||
|                 if (cmdManager != null) cmdManager.Close(); | ||||
| 
 | ||||
|                 batteryTimer.Stop(); | ||||
|  | @ -165,6 +179,7 @@ public partial class MainWindow : Gtk.Window | |||
| 
 | ||||
|                 checkButtonCameraOn.Active = false; | ||||
|                 checkButtonRobotPosition.Active = false; | ||||
|                 checkButtonFPS.Active = false; | ||||
| 
 | ||||
|                 systemState = SystemState.NotConnected; | ||||
| 
 | ||||
|  | @ -183,11 +198,9 @@ public partial class MainWindow : Gtk.Window | |||
|     /// <param name="message">Message</param> | ||||
|     private void MessagePopup(MessageType type, ButtonsType buttons, string title, string message) | ||||
|     { | ||||
|         MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, type, buttons, message) | ||||
|         { | ||||
|             Title = title | ||||
|         }; | ||||
|         MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, type, buttons, message); | ||||
| 
 | ||||
|         md.Title = title; | ||||
|         md.Run(); | ||||
|         md.Destroy(); | ||||
|     } | ||||
|  | @ -206,15 +219,11 @@ public partial class MainWindow : Gtk.Window | |||
|         a.RetVal = true; | ||||
|     } | ||||
| 
 | ||||
|     //private byte[] imageComplete; | ||||
|     //private byte[] imageInProgress; | ||||
| 
 | ||||
|     /// <summary> | ||||
|     /// Callback called when new message is received from server | ||||
|     /// </summary> | ||||
|     /// <param name="header">Header of message</param> | ||||
|     /// <param name="data">Data of message</param> | ||||
|     /// <param name="buffer">Raw buffer corresponding of received message</param> | ||||
|     public void OnCommandReceivedEvent(string header, string data) | ||||
|     { | ||||
|         if (header == null) | ||||
|  | @ -237,33 +246,11 @@ public partial class MainWindow : Gtk.Window | |||
| #if DEBUG | ||||
|             // print message content | ||||
|             if (header.Length > 4) | ||||
|             { | ||||
|                 Console.WriteLine("Bad header(" + header.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.CAMERA_IMAGE) | ||||
|             //{ | ||||
|             //    imageComplete = imageInProgress; | ||||
|             //    //TODO: Decoder le base64 pour recuperer le JPG | ||||
|             //    imageInProgress = buffer; | ||||
|             //} | ||||
|             //else | ||||
|             //{ | ||||
|             //    if (imageInProgress == null) imageInProgress = buffer; | ||||
|             //    else | ||||
|             //    { | ||||
|             //        Array.Resize<byte>(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 | ||||
|             // Depending on message received (based on header), launch correponding action | ||||
|             header = header.ToUpper(); | ||||
| 
 | ||||
|             if (header == DestijlCommandList.ROBOT_BATTERY_LEVEL) | ||||
|  | @ -293,20 +280,23 @@ public partial class MainWindow : Gtk.Window | |||
|             } | ||||
|             else if (header == DestijlCommandList.CAMERA_IMAGE) | ||||
|             { | ||||
|                 // if message is an image, convert it to a pixbuf | ||||
|                 // that can be displayed | ||||
|                 //if (imageComplete != null) | ||||
|                 //{ | ||||
|                 //TODO: Decoder le base64 et convertir en JPG | ||||
|                 byte[] image = Convert.FromBase64String(data); | ||||
|                 //byte[] image = new byte[imageComplete.Length - 4]; | ||||
|                 //System.Buffer.BlockCopy(imageComplete, 4, image, 0, image.Length); | ||||
| 
 | ||||
|                 imageReceivedCounter++; | ||||
| 
 | ||||
|                 byte[] image = new byte[2]; | ||||
|                 try | ||||
|                 { | ||||
|                     image = Convert.FromBase64String(data); | ||||
|                 } | ||||
|                 catch (FormatException) | ||||
|                 { | ||||
|                     badImageReceivedCounter++; | ||||
|                     Console.WriteLine("Unable to convert from base64 "); | ||||
|                 } | ||||
| 
 | ||||
|                 try | ||||
|                 { | ||||
|                     drawingareaCameraPixbuf = new Pixbuf(image); | ||||
|                     imageFPScounter++; | ||||
| 
 | ||||
|                     Gtk.Application.Invoke(delegate | ||||
|                     { | ||||
|  | @ -326,10 +316,7 @@ public partial class MainWindow : Gtk.Window | |||
|             } | ||||
|             else if (header == DestijlCommandList.CAMERA_POSITION) | ||||
|             { | ||||
|                 //Console.WriteLine("Pos data: " + data); | ||||
| 
 | ||||
|                 position = DestijlCommandManager.DecodePosition(data); | ||||
|                 //Console.WriteLine("decoded position: " + position.ToString()); | ||||
| 
 | ||||
|                 Gtk.Application.Invoke(delegate | ||||
|                 { | ||||
|  | @ -728,6 +715,23 @@ public partial class MainWindow : Gtk.Window | |||
|             ((IDisposable)cr.GetTarget()).Dispose(); | ||||
|             ((IDisposable)cr).Dispose(); | ||||
|         } | ||||
| 
 | ||||
|         if (checkButtonFPS.Active) { | ||||
|             Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow); | ||||
|             Cairo.Color textFontColor = new Cairo.Color(0.8, 0, 0); | ||||
| 
 | ||||
|             cr.SelectFontFace("Cantarell", FontSlant.Normal, FontWeight.Bold); | ||||
|             cr.SetSourceColor(textFontColor); | ||||
|             cr.SetFontSize(16); | ||||
| 
 | ||||
|             string text = "FPS= " + imageFPS.ToString() ; | ||||
|             TextExtents te = cr.TextExtents(text); | ||||
|             cr.MoveTo( 10,10 + te.Height); | ||||
|             cr.ShowText(text); | ||||
| 
 | ||||
|             ((IDisposable)cr.GetTarget()).Dispose(); | ||||
|             ((IDisposable)cr).Dispose(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /// <summary> | ||||
|  | @ -738,9 +742,8 @@ public partial class MainWindow : Gtk.Window | |||
|         DestijlCommandManager.CommandStatus status; | ||||
|         MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, | ||||
|                                              MessageType.Question, ButtonsType.YesNo, "Arena is correct ?"); | ||||
|         { | ||||
|             Title = "Check arena"; | ||||
|         }; | ||||
| 
 | ||||
|         md.Title = "Check arena"; | ||||
| 
 | ||||
|         ResponseType result = (ResponseType)md.Run(); | ||||
|         md.Destroy(); | ||||
|  | @ -781,4 +784,33 @@ public partial class MainWindow : Gtk.Window | |||
|         // show popup and wait for user to say if arena is ok or not  | ||||
|         DetectArena(); | ||||
|     } | ||||
| 
 | ||||
|     protected void OnCheckButtonFPSToggled(object sender, EventArgs e) | ||||
|     { | ||||
|         if (checkButtonFPS.Active) { // User ask for FPS | ||||
|             imageFPS = 0; | ||||
|             imageFPScounter = 0; | ||||
| 
 | ||||
|             fpsTimer.Start(); | ||||
|         } | ||||
|         else { // stop computing FPS | ||||
|             fpsTimer.Stop(); | ||||
| 
 | ||||
|             Gtk.Application.Invoke(delegate | ||||
|             { | ||||
|                 drawingAreaCamera.QueueDraw(); | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void OnFpsTimerElapsed(object sender, ElapsedEventArgs e) | ||||
|     { | ||||
|         imageFPS = imageFPScounter; | ||||
|         imageFPScounter = 0; | ||||
| 
 | ||||
|         Gtk.Application.Invoke(delegate | ||||
|         { | ||||
|             drawingAreaCamera.QueueDraw(); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -21,14 +21,18 @@ public partial class MainWindow | |||
| 
 | ||||
| 	private global::Gtk.VBox boxCamera; | ||||
| 
 | ||||
| 	private global::Gtk.HBox hbox2; | ||||
| 
 | ||||
| 	private global::Gtk.Alignment alignment1; | ||||
| 
 | ||||
| 	private global::Gtk.HBox hbox2; | ||||
| 	private global::Gtk.HBox hbox5; | ||||
| 
 | ||||
| 	private global::Gtk.CheckButton checkButtonCameraOn; | ||||
| 
 | ||||
| 	private global::Gtk.CheckButton checkButtonRobotPosition; | ||||
| 
 | ||||
| 	private global::Gtk.CheckButton checkButtonFPS; | ||||
| 
 | ||||
| 	private global::Gtk.Button buttonAskArena; | ||||
| 
 | ||||
| 	private global::Gtk.DrawingArea drawingAreaCamera; | ||||
|  | @ -170,33 +174,51 @@ public partial class MainWindow | |||
| 		this.boxCamera.Name = "boxCamera"; | ||||
| 		this.boxCamera.Spacing = 6; | ||||
| 		// Container child boxCamera.Gtk.Box+BoxChild | ||||
| 		this.alignment1 = new global::Gtk.Alignment(0F, 0.5F, 0F, 1F); | ||||
| 		this.alignment1.Name = "alignment1"; | ||||
| 		this.alignment1.BorderWidth = ((uint)(6)); | ||||
| 		// Container child alignment1.Gtk.Container+ContainerChild | ||||
| 		this.hbox2 = new global::Gtk.HBox(); | ||||
| 		this.hbox2.Name = "hbox2"; | ||||
| 		this.hbox2.Spacing = 6; | ||||
| 		// Container child hbox2.Gtk.Box+BoxChild | ||||
| 		this.alignment1 = new global::Gtk.Alignment(0F, 0.5F, 0F, 1F); | ||||
| 		this.alignment1.Name = "alignment1"; | ||||
| 		this.alignment1.BorderWidth = ((uint)(6)); | ||||
| 		// Container child alignment1.Gtk.Container+ContainerChild | ||||
| 		this.hbox5 = new global::Gtk.HBox(); | ||||
| 		this.hbox5.Name = "hbox5"; | ||||
| 		this.hbox5.Spacing = 6; | ||||
| 		// Container child hbox5.Gtk.Box+BoxChild | ||||
| 		this.checkButtonCameraOn = new global::Gtk.CheckButton(); | ||||
| 		this.checkButtonCameraOn.CanFocus = true; | ||||
| 		this.checkButtonCameraOn.Name = "checkButtonCameraOn"; | ||||
| 		this.checkButtonCameraOn.Label = global::Mono.Unix.Catalog.GetString("Camera On"); | ||||
| 		this.checkButtonCameraOn.DrawIndicator = true; | ||||
| 		this.checkButtonCameraOn.UseUnderline = true; | ||||
| 		this.hbox2.Add(this.checkButtonCameraOn); | ||||
| 		global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.checkButtonCameraOn])); | ||||
| 		this.hbox5.Add(this.checkButtonCameraOn); | ||||
| 		global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonCameraOn])); | ||||
| 		w3.Position = 0; | ||||
| 		// Container child hbox2.Gtk.Box+BoxChild | ||||
| 		// Container child hbox5.Gtk.Box+BoxChild | ||||
| 		this.checkButtonRobotPosition = new global::Gtk.CheckButton(); | ||||
| 		this.checkButtonRobotPosition.CanFocus = true; | ||||
| 		this.checkButtonRobotPosition.Name = "checkButtonRobotPosition"; | ||||
| 		this.checkButtonRobotPosition.Label = global::Mono.Unix.Catalog.GetString("Robot Position"); | ||||
| 		this.checkButtonRobotPosition.Label = global::Mono.Unix.Catalog.GetString("Show Position"); | ||||
| 		this.checkButtonRobotPosition.DrawIndicator = true; | ||||
| 		this.checkButtonRobotPosition.UseUnderline = true; | ||||
| 		this.hbox2.Add(this.checkButtonRobotPosition); | ||||
| 		global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.checkButtonRobotPosition])); | ||||
| 		this.hbox5.Add(this.checkButtonRobotPosition); | ||||
| 		global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonRobotPosition])); | ||||
| 		w4.Position = 1; | ||||
| 		// Container child hbox5.Gtk.Box+BoxChild | ||||
| 		this.checkButtonFPS = new global::Gtk.CheckButton(); | ||||
| 		this.checkButtonFPS.CanFocus = true; | ||||
| 		this.checkButtonFPS.Name = "checkButtonFPS"; | ||||
| 		this.checkButtonFPS.Label = global::Mono.Unix.Catalog.GetString("Show FPS"); | ||||
| 		this.checkButtonFPS.DrawIndicator = true; | ||||
| 		this.checkButtonFPS.UseUnderline = true; | ||||
| 		this.hbox5.Add(this.checkButtonFPS); | ||||
| 		global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonFPS])); | ||||
| 		w5.Position = 2; | ||||
| 		this.alignment1.Add(this.hbox5); | ||||
| 		this.hbox2.Add(this.alignment1); | ||||
| 		global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.alignment1])); | ||||
| 		w7.Position = 0; | ||||
| 		// Container child hbox2.Gtk.Box+BoxChild | ||||
| 		this.buttonAskArena = new global::Gtk.Button(); | ||||
| 		this.buttonAskArena.CanFocus = true; | ||||
|  | @ -204,26 +226,24 @@ public partial class MainWindow | |||
| 		this.buttonAskArena.UseUnderline = true; | ||||
| 		this.buttonAskArena.Label = global::Mono.Unix.Catalog.GetString("Ask Arena..."); | ||||
| 		this.hbox2.Add(this.buttonAskArena); | ||||
| 		global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.buttonAskArena])); | ||||
| 		w5.PackType = ((global::Gtk.PackType)(1)); | ||||
| 		w5.Position = 2; | ||||
| 		w5.Expand = false; | ||||
| 		w5.Fill = false; | ||||
| 		this.alignment1.Add(this.hbox2); | ||||
| 		this.boxCamera.Add(this.alignment1); | ||||
| 		global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.alignment1])); | ||||
| 		w7.Position = 0; | ||||
| 		w7.Expand = false; | ||||
| 		w7.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.buttonAskArena])); | ||||
| 		w8.Position = 2; | ||||
| 		w8.Expand = false; | ||||
| 		w8.Fill = false; | ||||
| 		this.boxCamera.Add(this.hbox2); | ||||
| 		global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.hbox2])); | ||||
| 		w9.Position = 0; | ||||
| 		w9.Expand = false; | ||||
| 		w9.Fill = false; | ||||
| 		// Container child boxCamera.Gtk.Box+BoxChild | ||||
| 		this.drawingAreaCamera = new global::Gtk.DrawingArea(); | ||||
| 		this.drawingAreaCamera.Name = "drawingAreaCamera"; | ||||
| 		this.boxCamera.Add(this.drawingAreaCamera); | ||||
| 		global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.drawingAreaCamera])); | ||||
| 		w8.Position = 1; | ||||
| 		global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.drawingAreaCamera])); | ||||
| 		w10.Position = 1; | ||||
| 		this.hbox1.Add(this.boxCamera); | ||||
| 		global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.boxCamera])); | ||||
| 		w9.Position = 0; | ||||
| 		global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.boxCamera])); | ||||
| 		w11.Position = 0; | ||||
| 		// Container child hbox1.Gtk.Box+BoxChild | ||||
| 		this.hbox3 = new global::Gtk.HBox(); | ||||
| 		this.hbox3.Name = "hbox3"; | ||||
|  | @ -232,10 +252,10 @@ public partial class MainWindow | |||
| 		this.vseparator1 = new global::Gtk.VSeparator(); | ||||
| 		this.vseparator1.Name = "vseparator1"; | ||||
| 		this.hbox3.Add(this.vseparator1); | ||||
| 		global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vseparator1])); | ||||
| 		w10.Position = 0; | ||||
| 		w10.Expand = false; | ||||
| 		w10.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vseparator1])); | ||||
| 		w12.Position = 0; | ||||
| 		w12.Expand = false; | ||||
| 		w12.Fill = false; | ||||
| 		// Container child hbox3.Gtk.Box+BoxChild | ||||
| 		this.alignment3 = new global::Gtk.Alignment(1F, 0F, 0F, 0F); | ||||
| 		this.alignment3.Name = "alignment3"; | ||||
|  | @ -255,10 +275,10 @@ public partial class MainWindow | |||
| 		this.labelServer.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Server connection</u></b>"); | ||||
| 		this.labelServer.UseMarkup = true; | ||||
| 		this.vbox10.Add(this.labelServer); | ||||
| 		global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.labelServer])); | ||||
| 		w11.Position = 0; | ||||
| 		w11.Expand = false; | ||||
| 		w11.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.labelServer])); | ||||
| 		w13.Position = 0; | ||||
| 		w13.Expand = false; | ||||
| 		w13.Fill = false; | ||||
| 		// Container child vbox10.Gtk.Box+BoxChild | ||||
| 		this.gtkAlignmentServer = new global::Gtk.Alignment(0F, 0F, 1F, 1F); | ||||
| 		this.gtkAlignmentServer.Name = "gtkAlignmentServer"; | ||||
|  | @ -279,10 +299,10 @@ public partial class MainWindow | |||
| 		this.entryServerName.IsEditable = true; | ||||
| 		this.entryServerName.InvisibleChar = '●'; | ||||
| 		this.table1.Add(this.entryServerName); | ||||
| 		global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerName])); | ||||
| 		w12.LeftAttach = ((uint)(1)); | ||||
| 		w12.RightAttach = ((uint)(2)); | ||||
| 		w12.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerName])); | ||||
| 		w14.LeftAttach = ((uint)(1)); | ||||
| 		w14.RightAttach = ((uint)(2)); | ||||
| 		w14.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table1.Gtk.Table+TableChild | ||||
| 		this.entryServerPort = new global::Gtk.Entry(); | ||||
| 		this.entryServerPort.CanFocus = true; | ||||
|  | @ -290,12 +310,12 @@ public partial class MainWindow | |||
| 		this.entryServerPort.IsEditable = true; | ||||
| 		this.entryServerPort.InvisibleChar = '●'; | ||||
| 		this.table1.Add(this.entryServerPort); | ||||
| 		global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerPort])); | ||||
| 		w13.TopAttach = ((uint)(1)); | ||||
| 		w13.BottomAttach = ((uint)(2)); | ||||
| 		w13.LeftAttach = ((uint)(1)); | ||||
| 		w13.RightAttach = ((uint)(2)); | ||||
| 		w13.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerPort])); | ||||
| 		w15.TopAttach = ((uint)(1)); | ||||
| 		w15.BottomAttach = ((uint)(2)); | ||||
| 		w15.LeftAttach = ((uint)(1)); | ||||
| 		w15.RightAttach = ((uint)(2)); | ||||
| 		w15.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table1.Gtk.Table+TableChild | ||||
| 		this.entryTimeout = new global::Gtk.Entry(); | ||||
| 		this.entryTimeout.CanFocus = true; | ||||
|  | @ -303,12 +323,12 @@ public partial class MainWindow | |||
| 		this.entryTimeout.IsEditable = true; | ||||
| 		this.entryTimeout.InvisibleChar = '●'; | ||||
| 		this.table1.Add(this.entryTimeout); | ||||
| 		global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.entryTimeout])); | ||||
| 		w14.TopAttach = ((uint)(2)); | ||||
| 		w14.BottomAttach = ((uint)(3)); | ||||
| 		w14.LeftAttach = ((uint)(1)); | ||||
| 		w14.RightAttach = ((uint)(2)); | ||||
| 		w14.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.entryTimeout])); | ||||
| 		w16.TopAttach = ((uint)(2)); | ||||
| 		w16.BottomAttach = ((uint)(3)); | ||||
| 		w16.LeftAttach = ((uint)(1)); | ||||
| 		w16.RightAttach = ((uint)(2)); | ||||
| 		w16.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table1.Gtk.Table+TableChild | ||||
| 		this.label1 = new global::Gtk.Label(); | ||||
| 		this.label1.Name = "label1"; | ||||
|  | @ -316,9 +336,9 @@ public partial class MainWindow | |||
| 		this.label1.LabelProp = global::Mono.Unix.Catalog.GetString("Server name:"); | ||||
| 		this.label1.Justify = ((global::Gtk.Justification)(1)); | ||||
| 		this.table1.Add(this.label1); | ||||
| 		global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); | ||||
| 		w15.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w15.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.label1])); | ||||
| 		w17.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w17.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table1.Gtk.Table+TableChild | ||||
| 		this.label2 = new global::Gtk.Label(); | ||||
| 		this.label2.Name = "label2"; | ||||
|  | @ -326,26 +346,26 @@ public partial class MainWindow | |||
| 		this.label2.LabelProp = global::Mono.Unix.Catalog.GetString("Server port:"); | ||||
| 		this.label2.Justify = ((global::Gtk.Justification)(1)); | ||||
| 		this.table1.Add(this.label2); | ||||
| 		global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.label2])); | ||||
| 		w16.TopAttach = ((uint)(1)); | ||||
| 		w16.BottomAttach = ((uint)(2)); | ||||
| 		w16.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w16.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table1[this.label2])); | ||||
| 		w18.TopAttach = ((uint)(1)); | ||||
| 		w18.BottomAttach = ((uint)(2)); | ||||
| 		w18.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w18.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table1.Gtk.Table+TableChild | ||||
| 		this.label5 = new global::Gtk.Label(); | ||||
| 		this.label5.Name = "label5"; | ||||
| 		this.label5.LabelProp = global::Mono.Unix.Catalog.GetString("Timeout (ms):"); | ||||
| 		this.table1.Add(this.label5); | ||||
| 		global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); | ||||
| 		w17.TopAttach = ((uint)(2)); | ||||
| 		w17.BottomAttach = ((uint)(3)); | ||||
| 		w17.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w17.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1[this.label5])); | ||||
| 		w19.TopAttach = ((uint)(2)); | ||||
| 		w19.BottomAttach = ((uint)(3)); | ||||
| 		w19.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w19.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		this.vbox6.Add(this.table1); | ||||
| 		global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.table1])); | ||||
| 		w18.Position = 0; | ||||
| 		w18.Expand = false; | ||||
| 		w18.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.table1])); | ||||
| 		w20.Position = 0; | ||||
| 		w20.Expand = false; | ||||
| 		w20.Fill = false; | ||||
| 		// Container child vbox6.Gtk.Box+BoxChild | ||||
| 		this.buttonServerConnection = new global::Gtk.Button(); | ||||
| 		this.buttonServerConnection.CanFocus = true; | ||||
|  | @ -353,30 +373,30 @@ public partial class MainWindow | |||
| 		this.buttonServerConnection.UseUnderline = true; | ||||
| 		this.buttonServerConnection.Label = global::Mono.Unix.Catalog.GetString("Connect"); | ||||
| 		this.vbox6.Add(this.buttonServerConnection); | ||||
| 		global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.buttonServerConnection])); | ||||
| 		w19.PackType = ((global::Gtk.PackType)(1)); | ||||
| 		w19.Position = 1; | ||||
| 		w19.Expand = false; | ||||
| 		w19.Fill = false; | ||||
| 		this.gtkAlignmentServer.Add(this.vbox6); | ||||
| 		this.vbox10.Add(this.gtkAlignmentServer); | ||||
| 		global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.gtkAlignmentServer])); | ||||
| 		global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.buttonServerConnection])); | ||||
| 		w21.PackType = ((global::Gtk.PackType)(1)); | ||||
| 		w21.Position = 1; | ||||
| 		w21.Expand = false; | ||||
| 		w21.Fill = false; | ||||
| 		this.gtkAlignmentServer.Add(this.vbox6); | ||||
| 		this.vbox10.Add(this.gtkAlignmentServer); | ||||
| 		global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.gtkAlignmentServer])); | ||||
| 		w23.Position = 1; | ||||
| 		w23.Expand = false; | ||||
| 		w23.Fill = false; | ||||
| 		this.vbox5.Add(this.vbox10); | ||||
| 		global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox10])); | ||||
| 		w22.Position = 0; | ||||
| 		w22.Expand = false; | ||||
| 		w22.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox10])); | ||||
| 		w24.Position = 0; | ||||
| 		w24.Expand = false; | ||||
| 		w24.Fill = false; | ||||
| 		// Container child vbox5.Gtk.Box+BoxChild | ||||
| 		this.hseparator1 = new global::Gtk.HSeparator(); | ||||
| 		this.hseparator1.Name = "hseparator1"; | ||||
| 		this.vbox5.Add(this.hseparator1); | ||||
| 		global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator1])); | ||||
| 		w23.Position = 1; | ||||
| 		w23.Expand = false; | ||||
| 		w23.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator1])); | ||||
| 		w25.Position = 1; | ||||
| 		w25.Expand = false; | ||||
| 		w25.Fill = false; | ||||
| 		// Container child vbox5.Gtk.Box+BoxChild | ||||
| 		this.vbox11 = new global::Gtk.VBox(); | ||||
| 		this.vbox11.Name = "vbox11"; | ||||
|  | @ -388,10 +408,10 @@ public partial class MainWindow | |||
| 		this.labelRobot.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Activation</u></b>"); | ||||
| 		this.labelRobot.UseMarkup = true; | ||||
| 		this.vbox11.Add(this.labelRobot); | ||||
| 		global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.labelRobot])); | ||||
| 		w24.Position = 0; | ||||
| 		w24.Expand = false; | ||||
| 		w24.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.labelRobot])); | ||||
| 		w26.Position = 0; | ||||
| 		w26.Expand = false; | ||||
| 		w26.Fill = false; | ||||
| 		// Container child vbox11.Gtk.Box+BoxChild | ||||
| 		this.alignment9 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F); | ||||
| 		this.alignment9.Name = "alignment9"; | ||||
|  | @ -418,8 +438,8 @@ public partial class MainWindow | |||
| 		this.radioButtonWithWatchdog.UseUnderline = true; | ||||
| 		this.radioButtonWithWatchdog.Group = new global::GLib.SList(global::System.IntPtr.Zero); | ||||
| 		this.hbox4.Add(this.radioButtonWithWatchdog); | ||||
| 		global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithWatchdog])); | ||||
| 		w25.Position = 0; | ||||
| 		global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithWatchdog])); | ||||
| 		w27.Position = 0; | ||||
| 		// Container child hbox4.Gtk.Box+BoxChild | ||||
| 		this.radioButtonWithoutWatchdog = new global::Gtk.RadioButton(global::Mono.Unix.Catalog.GetString("without watchdog")); | ||||
| 		this.radioButtonWithoutWatchdog.CanFocus = true; | ||||
|  | @ -428,14 +448,14 @@ public partial class MainWindow | |||
| 		this.radioButtonWithoutWatchdog.UseUnderline = true; | ||||
| 		this.radioButtonWithoutWatchdog.Group = this.radioButtonWithWatchdog.Group; | ||||
| 		this.hbox4.Add(this.radioButtonWithoutWatchdog); | ||||
| 		global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithoutWatchdog])); | ||||
| 		w26.Position = 1; | ||||
| 		global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithoutWatchdog])); | ||||
| 		w28.Position = 1; | ||||
| 		this.alignment6.Add(this.hbox4); | ||||
| 		this.vbox8.Add(this.alignment6); | ||||
| 		global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment6])); | ||||
| 		w28.Position = 0; | ||||
| 		w28.Expand = false; | ||||
| 		w28.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment6])); | ||||
| 		w30.Position = 0; | ||||
| 		w30.Expand = false; | ||||
| 		w30.Fill = false; | ||||
| 		// Container child vbox8.Gtk.Box+BoxChild | ||||
| 		this.alignment5 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F); | ||||
| 		this.alignment5.Name = "alignment5"; | ||||
|  | @ -451,30 +471,30 @@ public partial class MainWindow | |||
| 		this.alignment7.Add(this.buttonRobotActivation); | ||||
| 		this.alignment5.Add(this.alignment7); | ||||
| 		this.vbox8.Add(this.alignment5); | ||||
| 		global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment5])); | ||||
| 		w31.Position = 1; | ||||
| 		w31.Expand = false; | ||||
| 		w31.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment5])); | ||||
| 		w33.Position = 1; | ||||
| 		w33.Expand = false; | ||||
| 		w33.Fill = false; | ||||
| 		this.gtkAlignmentRobot.Add(this.vbox8); | ||||
| 		this.alignment9.Add(this.gtkAlignmentRobot); | ||||
| 		this.vbox11.Add(this.alignment9); | ||||
| 		global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.alignment9])); | ||||
| 		w34.Position = 1; | ||||
| 		w34.Expand = false; | ||||
| 		w34.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w36 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.alignment9])); | ||||
| 		w36.Position = 1; | ||||
| 		w36.Expand = false; | ||||
| 		w36.Fill = false; | ||||
| 		this.vbox5.Add(this.vbox11); | ||||
| 		global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox11])); | ||||
| 		w35.Position = 2; | ||||
| 		w35.Expand = false; | ||||
| 		w35.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox11])); | ||||
| 		w37.Position = 2; | ||||
| 		w37.Expand = false; | ||||
| 		w37.Fill = false; | ||||
| 		// Container child vbox5.Gtk.Box+BoxChild | ||||
| 		this.hseparator2 = new global::Gtk.HSeparator(); | ||||
| 		this.hseparator2.Name = "hseparator2"; | ||||
| 		this.vbox5.Add(this.hseparator2); | ||||
| 		global::Gtk.Box.BoxChild w36 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator2])); | ||||
| 		w36.Position = 3; | ||||
| 		w36.Expand = false; | ||||
| 		w36.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w38 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator2])); | ||||
| 		w38.Position = 3; | ||||
| 		w38.Expand = false; | ||||
| 		w38.Fill = false; | ||||
| 		// Container child vbox5.Gtk.Box+BoxChild | ||||
| 		this.vbox12 = new global::Gtk.VBox(); | ||||
| 		this.vbox12.Name = "vbox12"; | ||||
|  | @ -486,10 +506,10 @@ public partial class MainWindow | |||
| 		this.labelRobotControl.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Controls and Status</u></b>"); | ||||
| 		this.labelRobotControl.UseMarkup = true; | ||||
| 		this.vbox12.Add(this.labelRobotControl); | ||||
| 		global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.labelRobotControl])); | ||||
| 		w37.Position = 0; | ||||
| 		w37.Expand = false; | ||||
| 		w37.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.labelRobotControl])); | ||||
| 		w39.Position = 0; | ||||
| 		w39.Expand = false; | ||||
| 		w39.Fill = false; | ||||
| 		// Container child vbox12.Gtk.Box+BoxChild | ||||
| 		this.gtkAlignmentRobotControl = new global::Gtk.Alignment(0F, 0F, 1F, 1F); | ||||
| 		this.gtkAlignmentRobotControl.Name = "gtkAlignmentRobotControl"; | ||||
|  | @ -511,67 +531,67 @@ public partial class MainWindow | |||
| 		this.buttonDown.CanFocus = true; | ||||
| 		this.buttonDown.Name = "buttonDown"; | ||||
| 		this.buttonDown.UseUnderline = true; | ||||
| 		global::Gtk.Image w38 = new global::Gtk.Image(); | ||||
| 		w38.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); | ||||
| 		this.buttonDown.Image = w38; | ||||
| 		this.table4.Add(this.buttonDown); | ||||
| 		global::Gtk.Table.TableChild w39 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); | ||||
| 		w39.TopAttach = ((uint)(2)); | ||||
| 		w39.BottomAttach = ((uint)(3)); | ||||
| 		w39.LeftAttach = ((uint)(1)); | ||||
| 		w39.RightAttach = ((uint)(2)); | ||||
| 		w39.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w39.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table4.Gtk.Table+TableChild | ||||
| 		this.buttonForward = new global::Gtk.Button(); | ||||
| 		this.buttonForward.CanFocus = true; | ||||
| 		this.buttonForward.Name = "buttonForward"; | ||||
| 		this.buttonForward.UseUnderline = true; | ||||
| 		global::Gtk.Image w40 = new global::Gtk.Image(); | ||||
| 		w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); | ||||
| 		this.buttonForward.Image = w40; | ||||
| 		this.table4.Add(this.buttonForward); | ||||
| 		global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); | ||||
| 		w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png"); | ||||
| 		this.buttonDown.Image = w40; | ||||
| 		this.table4.Add(this.buttonDown); | ||||
| 		global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown])); | ||||
| 		w41.TopAttach = ((uint)(2)); | ||||
| 		w41.BottomAttach = ((uint)(3)); | ||||
| 		w41.LeftAttach = ((uint)(1)); | ||||
| 		w41.RightAttach = ((uint)(2)); | ||||
| 		w41.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w41.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table4.Gtk.Table+TableChild | ||||
| 		this.buttonForward = new global::Gtk.Button(); | ||||
| 		this.buttonForward.CanFocus = true; | ||||
| 		this.buttonForward.Name = "buttonForward"; | ||||
| 		this.buttonForward.UseUnderline = true; | ||||
| 		global::Gtk.Image w42 = new global::Gtk.Image(); | ||||
| 		w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png"); | ||||
| 		this.buttonForward.Image = w42; | ||||
| 		this.table4.Add(this.buttonForward); | ||||
| 		global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward])); | ||||
| 		w43.LeftAttach = ((uint)(1)); | ||||
| 		w43.RightAttach = ((uint)(2)); | ||||
| 		w43.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w43.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table4.Gtk.Table+TableChild | ||||
| 		this.buttonLeft = new global::Gtk.Button(); | ||||
| 		this.buttonLeft.CanFocus = true; | ||||
| 		this.buttonLeft.Name = "buttonLeft"; | ||||
| 		this.buttonLeft.UseUnderline = true; | ||||
| 		global::Gtk.Image w42 = new global::Gtk.Image(); | ||||
| 		w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); | ||||
| 		this.buttonLeft.Image = w42; | ||||
| 		global::Gtk.Image w44 = new global::Gtk.Image(); | ||||
| 		w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png"); | ||||
| 		this.buttonLeft.Image = w44; | ||||
| 		this.table4.Add(this.buttonLeft); | ||||
| 		global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); | ||||
| 		w43.TopAttach = ((uint)(1)); | ||||
| 		w43.BottomAttach = ((uint)(2)); | ||||
| 		w43.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w43.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft])); | ||||
| 		w45.TopAttach = ((uint)(1)); | ||||
| 		w45.BottomAttach = ((uint)(2)); | ||||
| 		w45.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w45.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table4.Gtk.Table+TableChild | ||||
| 		this.buttonRight = new global::Gtk.Button(); | ||||
| 		this.buttonRight.CanFocus = true; | ||||
| 		this.buttonRight.Name = "buttonRight"; | ||||
| 		this.buttonRight.UseUnderline = true; | ||||
| 		global::Gtk.Image w44 = new global::Gtk.Image(); | ||||
| 		w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); | ||||
| 		this.buttonRight.Image = w44; | ||||
| 		global::Gtk.Image w46 = new global::Gtk.Image(); | ||||
| 		w46.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png"); | ||||
| 		this.buttonRight.Image = w46; | ||||
| 		this.table4.Add(this.buttonRight); | ||||
| 		global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); | ||||
| 		w45.TopAttach = ((uint)(1)); | ||||
| 		w45.BottomAttach = ((uint)(2)); | ||||
| 		w45.LeftAttach = ((uint)(2)); | ||||
| 		w45.RightAttach = ((uint)(3)); | ||||
| 		w45.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w45.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight])); | ||||
| 		w47.TopAttach = ((uint)(1)); | ||||
| 		w47.BottomAttach = ((uint)(2)); | ||||
| 		w47.LeftAttach = ((uint)(2)); | ||||
| 		w47.RightAttach = ((uint)(3)); | ||||
| 		w47.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w47.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		this.alignment8.Add(this.table4); | ||||
| 		this.vbox9.Add(this.alignment8); | ||||
| 		global::Gtk.Box.BoxChild w47 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); | ||||
| 		w47.Position = 0; | ||||
| 		w47.Expand = false; | ||||
| 		w47.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w49 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8])); | ||||
| 		w49.Position = 0; | ||||
| 		w49.Expand = false; | ||||
| 		w49.Fill = false; | ||||
| 		// Container child vbox9.Gtk.Box+BoxChild | ||||
| 		this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false); | ||||
| 		this.table3.Name = "table3"; | ||||
|  | @ -584,10 +604,10 @@ public partial class MainWindow | |||
| 		this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Battery level:"); | ||||
| 		this.label3.Justify = ((global::Gtk.Justification)(1)); | ||||
| 		this.table3.Add(this.label3); | ||||
| 		global::Gtk.Table.TableChild w48 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); | ||||
| 		w48.YPadding = ((uint)(10)); | ||||
| 		w48.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w48.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table3[this.label3])); | ||||
| 		w50.YPadding = ((uint)(10)); | ||||
| 		w50.XOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		w50.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		// Container child table3.Gtk.Table+TableChild | ||||
| 		this.labelBatteryLevel = new global::Gtk.Label(); | ||||
| 		this.labelBatteryLevel.Name = "labelBatteryLevel"; | ||||
|  | @ -595,48 +615,49 @@ public partial class MainWindow | |||
| 		this.labelBatteryLevel.Xalign = 0F; | ||||
| 		this.labelBatteryLevel.LabelProp = global::Mono.Unix.Catalog.GetString("Unknown"); | ||||
| 		this.table3.Add(this.labelBatteryLevel); | ||||
| 		global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); | ||||
| 		w49.LeftAttach = ((uint)(1)); | ||||
| 		w49.RightAttach = ((uint)(2)); | ||||
| 		w49.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		global::Gtk.Table.TableChild w51 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel])); | ||||
| 		w51.LeftAttach = ((uint)(1)); | ||||
| 		w51.RightAttach = ((uint)(2)); | ||||
| 		w51.YOptions = ((global::Gtk.AttachOptions)(4)); | ||||
| 		this.vbox9.Add(this.table3); | ||||
| 		global::Gtk.Box.BoxChild w50 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); | ||||
| 		w50.Position = 2; | ||||
| 		w50.Expand = false; | ||||
| 		w50.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3])); | ||||
| 		w52.Position = 2; | ||||
| 		w52.Expand = false; | ||||
| 		w52.Fill = false; | ||||
| 		// Container child vbox9.Gtk.Box+BoxChild | ||||
| 		this.checkButtonGetBattery = new global::Gtk.CheckButton(); | ||||
| 		this.checkButtonGetBattery.CanFocus = true; | ||||
| 		this.checkButtonGetBattery.Name = "checkButtonGetBattery"; | ||||
| 		this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level"); | ||||
| 		this.checkButtonGetBattery.Active = true; | ||||
| 		this.checkButtonGetBattery.DrawIndicator = true; | ||||
| 		this.checkButtonGetBattery.UseUnderline = true; | ||||
| 		this.vbox9.Add(this.checkButtonGetBattery); | ||||
| 		global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery])); | ||||
| 		w51.Position = 3; | ||||
| 		w51.Expand = false; | ||||
| 		w51.Fill = false; | ||||
| 		global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery])); | ||||
| 		w53.Position = 3; | ||||
| 		w53.Expand = false; | ||||
| 		w53.Fill = false; | ||||
| 		this.gtkAlignmentRobotControl.Add(this.vbox9); | ||||
| 		this.vbox12.Add(this.gtkAlignmentRobotControl); | ||||
| 		global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); | ||||
| 		w53.Position = 1; | ||||
| 		global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl])); | ||||
| 		w55.Position = 1; | ||||
| 		this.vbox5.Add(this.vbox12); | ||||
| 		global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); | ||||
| 		w54.Position = 4; | ||||
| 		global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12])); | ||||
| 		w56.Position = 4; | ||||
| 		this.alignment3.Add(this.vbox5); | ||||
| 		this.hbox3.Add(this.alignment3); | ||||
| 		global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); | ||||
| 		w56.Position = 1; | ||||
| 		w56.Expand = false; | ||||
| 		w56.Fill = false; | ||||
| 		this.hbox1.Add(this.hbox3); | ||||
| 		global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); | ||||
| 		w57.Position = 1; | ||||
| 		w57.Expand = false; | ||||
| 		w57.Fill = false; | ||||
| 		this.vbox1.Add(this.hbox1); | ||||
| 		global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); | ||||
| 		global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3])); | ||||
| 		w58.Position = 1; | ||||
| 		w58.Expand = false; | ||||
| 		w58.Fill = false; | ||||
| 		this.hbox1.Add(this.hbox3); | ||||
| 		global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3])); | ||||
| 		w59.Position = 1; | ||||
| 		w59.Expand = false; | ||||
| 		w59.Fill = false; | ||||
| 		this.vbox1.Add(this.hbox1); | ||||
| 		global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1])); | ||||
| 		w60.Position = 1; | ||||
| 		this.Add(this.vbox1); | ||||
| 		if ((this.Child != null)) | ||||
| 		{ | ||||
|  | @ -650,6 +671,7 @@ public partial class MainWindow | |||
| 		this.ShowLogWindowAction.Activated += new global::System.EventHandler(this.OnShowLogWindowActionActivated); | ||||
| 		this.checkButtonCameraOn.Clicked += new global::System.EventHandler(this.OnCheckButtonCameraOnClicked); | ||||
| 		this.checkButtonRobotPosition.Clicked += new global::System.EventHandler(this.OnCheckButtonRobotPositionClicked); | ||||
| 		this.checkButtonFPS.Toggled += new global::System.EventHandler(this.OnCheckButtonFPSToggled); | ||||
| 		this.buttonAskArena.Clicked += new global::System.EventHandler(this.OnButtonAskArenaClicked); | ||||
| 		this.drawingAreaCamera.ExposeEvent += new global::Gtk.ExposeEventHandler(this.OnDrawingAreaCameraExposeEvent); | ||||
| 		this.buttonServerConnection.Clicked += new global::System.EventHandler(this.OnButtonServerConnectionClicked); | ||||
|  |  | |||
|  | @ -74,68 +74,95 @@ | |||
|                 <property name="MemberName" /> | ||||
|                 <property name="Spacing">6</property> | ||||
|                 <child> | ||||
|                   <widget class="Gtk.Alignment" id="alignment1"> | ||||
|                   <widget class="Gtk.HBox" id="hbox2"> | ||||
|                     <property name="MemberName" /> | ||||
|                     <property name="Xscale">0</property> | ||||
|                     <property name="Xalign">0</property> | ||||
|                     <property name="BorderWidth">6</property> | ||||
|                     <property name="Spacing">6</property> | ||||
|                     <child> | ||||
|                       <widget class="Gtk.HBox" id="hbox2"> | ||||
|                       <widget class="Gtk.Alignment" id="alignment1"> | ||||
|                         <property name="MemberName" /> | ||||
|                         <property name="Spacing">6</property> | ||||
|                         <property name="Xscale">0</property> | ||||
|                         <property name="Xalign">0</property> | ||||
|                         <property name="BorderWidth">6</property> | ||||
|                         <child> | ||||
|                           <widget class="Gtk.CheckButton" id="checkButtonCameraOn"> | ||||
|                           <widget class="Gtk.HBox" id="hbox5"> | ||||
|                             <property name="MemberName" /> | ||||
|                             <property name="CanFocus">True</property> | ||||
|                             <property name="Label" translatable="yes">Camera On</property> | ||||
|                             <property name="DrawIndicator">True</property> | ||||
|                             <property name="HasLabel">True</property> | ||||
|                             <property name="UseUnderline">True</property> | ||||
|                             <signal name="Clicked" handler="OnCheckButtonCameraOnClicked" /> | ||||
|                             <property name="Spacing">6</property> | ||||
|                             <child> | ||||
|                               <widget class="Gtk.CheckButton" id="checkButtonCameraOn"> | ||||
|                                 <property name="MemberName" /> | ||||
|                                 <property name="CanFocus">True</property> | ||||
|                                 <property name="Label" translatable="yes">Camera On</property> | ||||
|                                 <property name="DrawIndicator">True</property> | ||||
|                                 <property name="HasLabel">True</property> | ||||
|                                 <property name="UseUnderline">True</property> | ||||
|                                 <signal name="Clicked" handler="OnCheckButtonCameraOnClicked" /> | ||||
|                               </widget> | ||||
|                               <packing> | ||||
|                                 <property name="Position">0</property> | ||||
|                                 <property name="AutoSize">True</property> | ||||
|                               </packing> | ||||
|                             </child> | ||||
|                             <child> | ||||
|                               <widget class="Gtk.CheckButton" id="checkButtonRobotPosition"> | ||||
|                                 <property name="MemberName" /> | ||||
|                                 <property name="CanFocus">True</property> | ||||
|                                 <property name="Label" translatable="yes">Show Position</property> | ||||
|                                 <property name="DrawIndicator">True</property> | ||||
|                                 <property name="HasLabel">True</property> | ||||
|                                 <property name="UseUnderline">True</property> | ||||
|                                 <signal name="Clicked" handler="OnCheckButtonRobotPositionClicked" /> | ||||
|                               </widget> | ||||
|                               <packing> | ||||
|                                 <property name="Position">1</property> | ||||
|                                 <property name="AutoSize">True</property> | ||||
|                               </packing> | ||||
|                             </child> | ||||
|                             <child> | ||||
|                               <widget class="Gtk.CheckButton" id="checkButtonFPS"> | ||||
|                                 <property name="MemberName" /> | ||||
|                                 <property name="CanFocus">True</property> | ||||
|                                 <property name="Label" translatable="yes">Show FPS</property> | ||||
|                                 <property name="DrawIndicator">True</property> | ||||
|                                 <property name="HasLabel">True</property> | ||||
|                                 <property name="UseUnderline">True</property> | ||||
|                                 <signal name="Toggled" handler="OnCheckButtonFPSToggled" /> | ||||
|                               </widget> | ||||
|                               <packing> | ||||
|                                 <property name="Position">2</property> | ||||
|                                 <property name="AutoSize">True</property> | ||||
|                               </packing> | ||||
|                             </child> | ||||
|                           </widget> | ||||
|                           <packing> | ||||
|                             <property name="Position">0</property> | ||||
|                             <property name="AutoSize">True</property> | ||||
|                           </packing> | ||||
|                         </child> | ||||
|                         <child> | ||||
|                           <widget class="Gtk.CheckButton" id="checkButtonRobotPosition"> | ||||
|                             <property name="MemberName" /> | ||||
|                             <property name="CanFocus">True</property> | ||||
|                             <property name="Label" translatable="yes">Robot Position</property> | ||||
|                             <property name="DrawIndicator">True</property> | ||||
|                             <property name="HasLabel">True</property> | ||||
|                             <property name="UseUnderline">True</property> | ||||
|                             <signal name="Clicked" handler="OnCheckButtonRobotPositionClicked" /> | ||||
|                           </widget> | ||||
|                           <packing> | ||||
|                             <property name="Position">1</property> | ||||
|                             <property name="AutoSize">True</property> | ||||
|                           </packing> | ||||
|                         </child> | ||||
|                         <child> | ||||
|                           <widget class="Gtk.Button" id="buttonAskArena"> | ||||
|                             <property name="MemberName" /> | ||||
|                             <property name="CanFocus">True</property> | ||||
|                             <property name="Type">TextOnly</property> | ||||
|                             <property name="Label" translatable="yes">Ask Arena...</property> | ||||
|                             <property name="UseUnderline">True</property> | ||||
|                             <signal name="Clicked" handler="OnButtonAskArenaClicked" /> | ||||
|                           </widget> | ||||
|                           <packing> | ||||
|                             <property name="PackType">End</property> | ||||
|                             <property name="Position">2</property> | ||||
|                             <property name="AutoSize">True</property> | ||||
|                             <property name="Expand">False</property> | ||||
|                             <property name="Fill">False</property> | ||||
|                           </packing> | ||||
|                         </child> | ||||
|                       </widget> | ||||
|                       <packing> | ||||
|                         <property name="Position">0</property> | ||||
|                         <property name="AutoSize">True</property> | ||||
|                       </packing> | ||||
|                     </child> | ||||
|                     <child> | ||||
|                       <placeholder /> | ||||
|                     </child> | ||||
|                     <child> | ||||
|                       <widget class="Gtk.Button" id="buttonAskArena"> | ||||
|                         <property name="MemberName" /> | ||||
|                         <property name="CanFocus">True</property> | ||||
|                         <property name="Type">TextOnly</property> | ||||
|                         <property name="Label" translatable="yes">Ask Arena...</property> | ||||
|                         <property name="UseUnderline">True</property> | ||||
|                         <signal name="Clicked" handler="OnButtonAskArenaClicked" /> | ||||
|                       </widget> | ||||
|                       <packing> | ||||
|                         <property name="Position">2</property> | ||||
|                         <property name="AutoSize">True</property> | ||||
|                         <property name="Expand">False</property> | ||||
|                         <property name="Fill">False</property> | ||||
|                       </packing> | ||||
|                     </child> | ||||
|                   </widget> | ||||
|                   <packing> | ||||
|                     <property name="Position">0</property> | ||||
|                     <property name="AutoSize">False</property> | ||||
|                     <property name="AutoSize">True</property> | ||||
|                     <property name="Expand">False</property> | ||||
|                     <property name="Fill">False</property> | ||||
|                   </packing> | ||||
|  | @ -758,6 +785,7 @@ | |||
|                                         <property name="MemberName" /> | ||||
|                                         <property name="CanFocus">True</property> | ||||
|                                         <property name="Label" translatable="yes">Get battery level</property> | ||||
|                                         <property name="Active">True</property> | ||||
|                                         <property name="DrawIndicator">True</property> | ||||
|                                         <property name="HasLabel">True</property> | ||||
|                                         <property name="UseUnderline">True</property> | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								software/raspberry/superviseur-robot/.dep.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								software/raspberry/superviseur-robot/.dep.inc
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| # This code depends on make tool being used
 | ||||
| DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES})) | ||||
| ifneq (${DEPFILES},) | ||||
| include ${DEPFILES} | ||||
| endif | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -17,18 +17,42 @@ | |||
| 
 | ||||
| #include "camera.h" | ||||
| #include "img.h" | ||||
| #include <unistd.h> | ||||
| 
 | ||||
| using namespace cv; | ||||
| 
 | ||||
| Camera::Camera(int size) { | ||||
| Camera::Camera(int size, int fps) { | ||||
|     this->SetSize(size); | ||||
| #ifndef __FOR_PC__ | ||||
|     this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3); | ||||
|     this->cap.set(CV_CAP_PROP_FRAME_WIDTH,width); | ||||
|     this->cap.set(CV_CAP_PROP_FRAME_HEIGHT,height); | ||||
|     this->cap.set(CV_CAP_PROP_FPS, fps); | ||||
| #endif /* __FOR_PC__ */ | ||||
| } | ||||
| 
 | ||||
| bool Camera::Open() { | ||||
|     this->cap.open(0); | ||||
|     bool status = false; | ||||
|      | ||||
| #ifdef __FOR_PC__ | ||||
|     if (this->cap.open(0)) { | ||||
|         //this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
 | ||||
|         this->cap.set(CV_CAP_PROP_FRAME_WIDTH,width); | ||||
|         this->cap.set(CV_CAP_PROP_FRAME_HEIGHT,height); | ||||
|          | ||||
|         status =true; | ||||
|      } | ||||
| #else | ||||
|     if (this->cap.open()) { | ||||
|         cout<<"Camera warmup 2sec"<<endl<<flush; | ||||
|         sleep(2); | ||||
|         cout<<"Start capture"<<endl<<flush; | ||||
|      | ||||
|         status =true; | ||||
|     } | ||||
| #endif /* __FOR_PC__ */ | ||||
|      | ||||
|     return status; | ||||
| } | ||||
| 
 | ||||
| void Camera::Close() { | ||||
|  | @ -58,15 +82,22 @@ void Camera::SetSize(int size) { | |||
|         default: | ||||
|             this->width = 480; | ||||
|             this->height = 360; | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| Img Camera::Grab() { | ||||
|     ImageMat frame; | ||||
|      | ||||
| #ifdef __FOR_PC__ | ||||
|     cap >> frame; | ||||
|     Img capture = Img(frame); | ||||
| #else | ||||
|     cap.grab(); | ||||
|     cap.retrieve (frame); | ||||
|     cvtColor(frame,frame,CV_BGR2RGB); | ||||
|      | ||||
|     Img capture = Img(frame); | ||||
| #endif /* __FOR_PC__ */ | ||||
|      | ||||
|     return capture; | ||||
| } | ||||
|  |  | |||
|  | @ -21,13 +21,16 @@ | |||
| #include <opencv2/highgui/highgui.hpp> | ||||
| #include <opencv2/imgproc/imgproc.hpp> | ||||
| 
 | ||||
| #ifndef __FOR_PC__ | ||||
| #include "raspicam/raspicam_cv.h" | ||||
| #endif /* __FOR_PC__ */ | ||||
| #include "img.h" | ||||
| 
 | ||||
| enum captureSize {xs, sm, md, lg}; | ||||
| 
 | ||||
| class Camera { | ||||
| public: | ||||
|     Camera(int size); | ||||
|     Camera(int size, int fps); | ||||
| 
 | ||||
|     bool Open(); | ||||
|     void Close(); | ||||
|  | @ -41,7 +44,12 @@ public: | |||
|     Img Grab(); | ||||
|      | ||||
| private: | ||||
| #ifdef __FOR_PC__ | ||||
|     cv::VideoCapture cap; | ||||
| #else | ||||
|     raspicam::RaspiCam_Cv cap; | ||||
| #endif /*  __FOR_PC__ */    | ||||
|     | ||||
|     int size = sm; | ||||
|     int width; | ||||
|     int height; | ||||
|  |  | |||
|  | @ -243,7 +243,7 @@ string ComMonitor::MessageToString(Message *msg) { | |||
|             image=((MessageImg*) msg)->GetImage(); | ||||
|             jpeg = image->ToJpg(); | ||||
|              | ||||
|             cout << "Jpeg size: " << to_string(jpeg.size())<<endl<<flush; | ||||
|             //cout << "Jpeg size: " << to_string(jpeg.size())<<endl<<flush;
 | ||||
|              | ||||
|             s = base64_encode(jpeg.data(), jpeg.size()); | ||||
|             str.append(LABEL_MONITOR_CAMERA_IMAGE + LABEL_SEPARATOR_CHAR + s); | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| #include "img.h" | ||||
| 
 | ||||
| bool Arena::IsEmpty() { | ||||
|     if ((this->arena.height==0) || (this->arena.width==0)) return true; | ||||
|     if ((this->arena.height == 0) || (this->arena.width == 0)) return true; | ||||
|     else return false; | ||||
| } | ||||
| 
 | ||||
|  | @ -27,61 +27,64 @@ Img::Img(ImageMat imgMatrice) { | |||
| } | ||||
| 
 | ||||
| string Img::ToString() { | ||||
|     return "Image size: "+to_string(this->img.cols)+"x"+to_string(this->img.rows)+" (dim="+to_string(this->img.dims)+")"; | ||||
|     return "Image size: " + to_string(this->img.cols) + "x" + to_string(this->img.rows) + " (dim=" + to_string(this->img.dims) + ")"; | ||||
| } | ||||
| 
 | ||||
| Img* Img::Copy() { | ||||
|     return new Img(this->img); | ||||
| } | ||||
|      | ||||
| 
 | ||||
| float Img::CalculAngle(Position robot) { | ||||
|     float a = robot.direction.x - robot.center.x; | ||||
|     float b = robot.direction.y - robot.center.y ; | ||||
|     float angle = atan2(b,a); | ||||
|     return angle * 180.f/M_PI; | ||||
|     float b = robot.direction.y - robot.center.y; | ||||
|     float angle = atan2(b, a); | ||||
|     return angle * 180.f / M_PI; | ||||
| } | ||||
| 
 | ||||
| float Img::CalculAngle2(cv::Point2f pt1, cv::Point2f pt2) { | ||||
|     float a = pt1.x - pt2.x; | ||||
|     float b = pt1.y - pt2.y ; | ||||
|     float angle = atan2(b,a); | ||||
|     return angle * 180.f/M_PI; | ||||
|     float b = pt1.y - pt2.y; | ||||
|     float angle = atan2(b, a); | ||||
|     return angle * 180.f / M_PI; | ||||
| } | ||||
| 
 | ||||
| #ifdef __WITH_ARUCO__  | ||||
| cv::Point2f Img::find_aruco_center(std::vector<cv::Point2f> aruco) { | ||||
|     return ((aruco[0] + aruco[2])/2); | ||||
| 
 | ||||
| cv::Point2f Img::FindArucoCenter(std::vector<cv::Point2f> aruco) { | ||||
|     return ((aruco[0] + aruco[2]) / 2); | ||||
| } | ||||
| 
 | ||||
| cv::Point2f Img::find_aruco_direction(std::vector<cv::Point2f> aruco) { | ||||
|     return ((aruco[0]+aruco[1])/2);; | ||||
| cv::Point2f Img::FindArucoDirection(std::vector<cv::Point2f> aruco) { | ||||
|     return ((aruco[0] + aruco[1]) / 2); | ||||
| } | ||||
| 
 | ||||
| std::list<Position> Img::search_aruco(Arena monArene) { | ||||
| std::list<Position> Img::SearchAruco(Arena arena) { | ||||
|     ImageMat imgTraitment; | ||||
|     std::list<Position> positionList; | ||||
|     cv::Point2f areneCoor; | ||||
|     std::vector<int> ids; | ||||
|     std::vector<std::vector<cv::Point2f> > corners; | ||||
|     if(monArene.empty()) | ||||
|         imgTraitment=this->img.clone(); | ||||
|     else{ | ||||
|         imgTraitment = cropArena(monArene); | ||||
|         areneCoor.x = monArene.x; | ||||
|         areneCoor.y = monArene.y; | ||||
|      | ||||
|     if (arena.IsEmpty()) | ||||
|         imgTraitment = this->img.clone(); | ||||
|     else { | ||||
|         imgTraitment = CropArena(arena); | ||||
|         areneCoor.x = arena.arena.x; | ||||
|         areneCoor.y = arena.arena.y; | ||||
|     } | ||||
|     cv::detectMarkers(imgTraitment,dictionary, corners, ids); | ||||
|     if(ids.size()>0){ | ||||
|         for(int i = 0 ; i < ids.size() ; i++){ | ||||
|      | ||||
|     cv::aruco::detectMarkers(imgTraitment, dictionary, corners, ids); | ||||
|     if (ids.size() > 0) { | ||||
|         for (int i = 0; i < ids.size(); i++) { | ||||
|             Position newPos; | ||||
|             newPos.center = find_aruco_center(corners[i]); | ||||
|             newPos.direction = find_aruco_direction(corners[i]); | ||||
|             newPos.center = FindArucoCenter(corners[i]); | ||||
|             newPos.direction = FindArucoDirection(corners[i]); | ||||
|             newPos.robotId = ids[i]; | ||||
|             if(!monArene.empty()){ | ||||
|             if (!arena.IsEmpty()) { | ||||
|                 newPos.direction += areneCoor; | ||||
|                 newPos.center += areneCoor; | ||||
|             } | ||||
|             newPos.angle = calculAngle2(newPos.center, newPos.direction); | ||||
|             newPos.angle = CalculAngle2(newPos.center, newPos.direction); | ||||
|             positionList.push_back(newPos); | ||||
|         } | ||||
|     } | ||||
|  | @ -91,92 +94,79 @@ std::list<Position> Img::search_aruco(Arena monArene) { | |||
| 
 | ||||
| float Img::EuclideanDistance(cv::Point2f p, cv::Point2f q) { | ||||
|     cv::Point diff = p - q; | ||||
|     return cv::sqrt(diff.x*diff.x + diff.y*diff.y); | ||||
|     return cv::sqrt(diff.x * diff.x + diff.y * diff.y); | ||||
| } | ||||
| 
 | ||||
| Jpg Img::ToJpg() { | ||||
|     Jpg imgJpg; | ||||
|     cv::imencode(".jpg",this->img,imgJpg); | ||||
|     cv::imencode(".jpg", this->img, imgJpg); | ||||
|     return imgJpg; | ||||
| } | ||||
| 
 | ||||
| //string Img::ToBase64() {
 | ||||
| //    string imgBase64;
 | ||||
| //    Jpg imgJpg = toJpg();
 | ||||
| //    
 | ||||
| //    /* faire la convertion Jpg vers base 64 */
 | ||||
| //    return imgBase64;
 | ||||
| //}
 | ||||
| 
 | ||||
| std::list<Position> Img::SearchRobot(Arena monArene) { | ||||
| std::list<Position> Img::SearchRobot(Arena arena) { | ||||
| 
 | ||||
|     std::list<Position> robotsFind; | ||||
|     std::vector<std::vector<cv::Point2f> > contours; | ||||
|     std::vector<cv::Point2f> approx; | ||||
|     std::vector<std::vector<cv::Point> > contours; | ||||
|     std::vector<cv::Point> approx; | ||||
|     std::vector<cv::Vec4i> hierarchy; | ||||
| 
 | ||||
|     ImageMat imgTraitment; | ||||
| 
 | ||||
|     if(monArene.IsEmpty()) | ||||
|         imgTraitment=this->img.clone(); | ||||
|     else | ||||
|         imgTraitment = CropArena(monArene); | ||||
|     if (arena.IsEmpty()) { | ||||
|         imgTraitment = this->img.clone(); | ||||
|     } else { | ||||
|         imgTraitment = this->img(arena.arena); | ||||
|     } | ||||
| 
 | ||||
|     cvtColor(imgTraitment,imgTraitment,CV_RGB2GRAY); | ||||
|     threshold(imgTraitment,imgTraitment,128,255,CV_THRESH_BINARY); | ||||
|     findContours(imgTraitment, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point2f(0, 0)); | ||||
|     cvtColor(imgTraitment, imgTraitment, CV_RGB2GRAY); | ||||
|     threshold(imgTraitment, imgTraitment, 128, 255, CV_THRESH_BINARY); | ||||
|     findContours(imgTraitment, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0)); | ||||
| 
 | ||||
|     for(unsigned int i = 0;i < contours.size();i++) | ||||
|     { | ||||
|         cv::approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true)*0.17, true); | ||||
|         if(approx.size() == 3 && fabs(cv::contourArea(contours[i])) > 200 && fabs(cv::contourArea(contours[i])) < 700) | ||||
|         { | ||||
| 
 | ||||
|             cv::Point2f a,b,c; | ||||
|             cv::Point2f center; | ||||
|     for (unsigned int i = 0; i < contours.size(); i++) { | ||||
|         ImageMat m(contours[i]); | ||||
|         cv::approxPolyDP(m, approx, cv::arcLength(ImageMat(contours[i]), true)*0.17, true); | ||||
| 
 | ||||
|         if (approx.size() == 3 && fabs(cv::contourArea(contours[i])) > 200 && fabs(cv::contourArea(contours[i])) < 700) { | ||||
|             cv::Point a, b, c; | ||||
|             cv::Point center; | ||||
| 
 | ||||
|             a = approx[0]; | ||||
|             b = approx[1]; | ||||
|             c = approx[2]; | ||||
| 
 | ||||
| 
 | ||||
|             if(!monArene.IsEmpty()) // ajout de l'offset de l'arène
 | ||||
|             { | ||||
|                 a.x += monArene.arena.x; | ||||
|                 a.y += monArene.arena.y; | ||||
|                 b.x += monArene.arena.x; | ||||
|                 b.y += monArene.arena.y; | ||||
|                 c.x += monArene.arena.x; | ||||
|                 c.y += monArene.arena.y; | ||||
|             if (!arena.IsEmpty()) { // ajout de l'offset de l'arène
 | ||||
|                 a.x += arena.arena.x; | ||||
|                 a.y += arena.arena.y; | ||||
|                 b.x += arena.arena.x; | ||||
|                 b.y += arena.arena.y; | ||||
|                 c.x += arena.arena.x; | ||||
|                 c.y += arena.arena.y; | ||||
|             } | ||||
| 
 | ||||
|             center.x = (a.x + b.x + c.x)/3; | ||||
|             center.y = (a.y + b.y + c.y)/3; | ||||
|             center.x = (a.x + b.x + c.x) / 3; | ||||
|             center.y = (a.y + b.y + c.y) / 3; | ||||
|             Position newPos; | ||||
|             newPos.center=center; | ||||
|             newPos.center = center; | ||||
| 
 | ||||
|             if(EuclideanDistance(center,b) > EuclideanDistance(center,a) && EuclideanDistance(center,b) > EuclideanDistance(center,c) ) | ||||
|             { | ||||
| 
 | ||||
|                 newPos.direction=b; | ||||
|             if (EuclideanDistance(center, b) > EuclideanDistance(center, a) && EuclideanDistance(center, b) > EuclideanDistance(center, c)) { | ||||
|                 newPos.direction = b; | ||||
|                 //line(img,center,b,Scalar(0,125,0),2,8,0);
 | ||||
|             } | ||||
|             else if(EuclideanDistance(center,a) > EuclideanDistance(center,c)) | ||||
|             { | ||||
|                 newPos.direction=a; | ||||
|                 //line(img,center,a,Scalar(0,125,0),2,8,0);
 | ||||
|             } else if (EuclideanDistance(center, a) > EuclideanDistance(center, c)) { | ||||
| 
 | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 newPos.direction=c; | ||||
|                 newPos.direction = a; | ||||
|                 //line(img,center,a,Scalar(0,125,0),2,8,0);
 | ||||
|             } else { | ||||
|                 newPos.direction = c; | ||||
|                 //line(img,center,c,Scalar(0,125,0),2,8,0);
 | ||||
|             } | ||||
|             newPos.angle=CalculAngle(newPos); | ||||
| 
 | ||||
|             newPos.angle = CalculAngle(newPos); | ||||
|             newPos.robotId = -1; // dumb identifier
 | ||||
| 
 | ||||
|             robotsFind.push_back(newPos); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return robotsFind; | ||||
| } | ||||
| 
 | ||||
|  | @ -186,16 +176,14 @@ Arena Img::SearchArena() { | |||
|     std::vector<cv::Vec4i> hierarchy; | ||||
| 
 | ||||
|     ImageMat imageTrt; | ||||
|     cv::cvtColor(this->img,imageTrt,CV_RGB2GRAY); // conversion en niveau de gris
 | ||||
|     cv::threshold(imageTrt,imageTrt,128,255,CV_THRESH_BINARY); // Threshold les éléments les plus clair
 | ||||
|     cv::Canny(imageTrt, imageTrt, 100,200,3); // detection d'angle
 | ||||
|     cv::cvtColor(this->img, imageTrt, CV_RGB2GRAY); // conversion en niveau de gris
 | ||||
|     cv::threshold(imageTrt, imageTrt, 128, 255, CV_THRESH_BINARY); // Threshold les éléments les plus clair
 | ||||
|     cv::Canny(imageTrt, imageTrt, 100, 200, 3); // detection d'angle
 | ||||
| 
 | ||||
|     findContours(imageTrt, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0)); | ||||
|     for(unsigned int i = 0; i < contours.size();i++) | ||||
|     { | ||||
|     for (unsigned int i = 0; i < contours.size(); i++) { | ||||
|         approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true)*0.1, true); | ||||
|         if(approx.size()==4 && fabs(cv::contourArea(contours[i])) > 100000) | ||||
|         { | ||||
|         if (approx.size() == 4 && fabs(cv::contourArea(contours[i])) > 100000) { | ||||
|             Arena rectangle; | ||||
|             rectangle.arena = cv::boundingRect(ImageMat(contours[i])); | ||||
|             return rectangle; | ||||
|  | @ -205,22 +193,22 @@ Arena Img::SearchArena() { | |||
| } | ||||
| 
 | ||||
| int Img::DrawRobot(Position robot) { | ||||
|     cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0,0,255),3,8,0); | ||||
|     cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0, 0, 255), 3, 8, 0); | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| int Img::DrawAllRobots(std::list<Position> robots) { | ||||
|     for(Position robot  : robots){ | ||||
|         cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0,0,255),3,8,0); | ||||
|     for (Position robot : robots) { | ||||
|         cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0, 0, 255), 3, 8, 0); | ||||
|     } | ||||
|     return robots.size(); | ||||
| } | ||||
| 
 | ||||
| int Img::DrawArena(Arena areneToDraw) { | ||||
|     cv::rectangle(this->img,areneToDraw.arena.tl(),areneToDraw.arena.br(),cv::Scalar(0,0,125),2,8,0); | ||||
| int Img::DrawArena(Arena arenaToDraw) { | ||||
|     cv::rectangle(this->img, arenaToDraw.arena.tl(), arenaToDraw.arena.br(), cv::Scalar(0, 0, 125), 2, 8, 0); | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| ImageMat Img::CropArena(Arena arene) { | ||||
|     return this->img(arene.arena); | ||||
| ImageMat Img::CropArena(Arena arena) { | ||||
|     return this->img(arena.arena); | ||||
| } | ||||
|  |  | |||
|  | @ -29,7 +29,9 @@ | |||
| #ifdef __WITH_ARUCO__ | ||||
| #include <opencv2/aruco/dictionary.hpp> | ||||
| #include <opencv2/aruco/charuco.hpp> | ||||
| //#include <opencv2/aruco.hpp>
 | ||||
| #include <opencv2/core/mat.hpp> | ||||
| 
 | ||||
| #endif // __WITH_ARUCO__
 | ||||
| 
 | ||||
| #define ARENA_NOT_DETECTED -1 | ||||
|  | @ -57,6 +59,8 @@ public: | |||
| 
 | ||||
| class Img { | ||||
| public: | ||||
|     ImageMat img; | ||||
|      | ||||
|     Img(ImageMat imgMatrice); | ||||
|      | ||||
|     string ToString(); | ||||
|  | @ -67,26 +71,23 @@ public: | |||
| 
 | ||||
|     int DrawRobot(Position robot); | ||||
|     int DrawAllRobots(std::list<Position> robots); | ||||
|     int DrawArena(Arena areneToDraw); | ||||
|     std::list<Position> SearchRobot(Arena myArena); | ||||
|      | ||||
|      | ||||
|     int DrawArena(Arena arenaToDraw); | ||||
|     std::list<Position> SearchRobot(Arena arena); | ||||
|          | ||||
| #ifdef __WITH_ARUCO__     | ||||
|     list<Position> search_aruco(Arena monArene = NULL); | ||||
|     list<Position> SearchAruco(Arena arena); | ||||
|     cv::Ptr<cv::aruco::Dictionary> dictionary; | ||||
| #endif // __WITH_ARUCO__
 | ||||
| private: | ||||
|     ImageMat img; | ||||
|      | ||||
| #ifdef __WITH_ARUCO__ | ||||
|     Ptr<std::Dictionary> dictionary; | ||||
|     cv::Point2f find_aruco_center(std::vector<cv::Point2f> aruco); | ||||
|     cv::Point2f find_aruco_direction(std::vector<cv::Point2f> aruco); | ||||
|     cv::Point2f FindArucoCenter(std::vector<cv::Point2f> aruco); | ||||
|     cv::Point2f FindArucoDirection(std::vector<cv::Point2f> aruco); | ||||
| #endif // __WITH_ARUCO__
 | ||||
|      | ||||
|     float CalculAngle(Position robots); | ||||
|     float CalculAngle2(cv::Point2f pt1, cv::Point2f pt2); | ||||
|     float EuclideanDistance(cv::Point2f p, cv::Point2f q); | ||||
|     ImageMat CropArena(Arena arene); | ||||
|     ImageMat CropArena(Arena arena); | ||||
| }; | ||||
| 
 | ||||
| #endif //__IMG_H__
 | ||||
|  |  | |||
|  | @ -35,6 +35,11 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} | |||
| 
 | ||||
| # Object Files
 | ||||
| OBJECTFILES= \
 | ||||
| 	${OBJECTDIR}/lib/base64/base64.o \
 | ||||
| 	${OBJECTDIR}/lib/camera.o \
 | ||||
| 	${OBJECTDIR}/lib/commonitor.o \
 | ||||
| 	${OBJECTDIR}/lib/comrobot.o \
 | ||||
| 	${OBJECTDIR}/lib/img.o \
 | ||||
| 	${OBJECTDIR}/lib/message.o \
 | ||||
| 	${OBJECTDIR}/lib/messages.o \
 | ||||
| 	${OBJECTDIR}/lib/monitor.o \
 | ||||
|  | @ -42,11 +47,6 @@ OBJECTFILES= \ | |||
| 	${OBJECTDIR}/lib/server.o \
 | ||||
| 	${OBJECTDIR}/main.o \
 | ||||
| 	${OBJECTDIR}/tasks.o \
 | ||||
| 	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
 | ||||
| 	${OBJECTDIR}/tasks_pthread.o | ||||
| 
 | ||||
| 
 | ||||
|  | @ -74,6 +74,31 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES} | |||
| 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -Wl,--no-as-needed -lalchemy -lcopperplate /usr/xenomai/lib/xenomai/bootstrap.o -Wl,--wrap=main -Wl,--dynamic-list=/usr/xenomai/lib/dynlist.ld -L/usr/xenomai/lib -lmercury -lpthread -lrt | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib/base64 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/camera.o: lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/img.o: lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/message.o: lib/message.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
|  | @ -109,31 +134,6 @@ ${OBJECTDIR}/tasks.o: tasks.cpp | |||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/a7f31ab4/base64.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/camera.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/img.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
|  |  | |||
|  | @ -35,13 +35,13 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} | |||
| 
 | ||||
| # Object Files
 | ||||
| OBJECTFILES= \
 | ||||
| 	${OBJECTDIR}/lib/base64/base64.o \
 | ||||
| 	${OBJECTDIR}/lib/camera.o \
 | ||||
| 	${OBJECTDIR}/lib/commonitor.o \
 | ||||
| 	${OBJECTDIR}/lib/comrobot.o \
 | ||||
| 	${OBJECTDIR}/lib/img.o \
 | ||||
| 	${OBJECTDIR}/lib/messages.o \
 | ||||
| 	${OBJECTDIR}/main.o \
 | ||||
| 	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
 | ||||
| 	${OBJECTDIR}/tasks_pthread.o | ||||
| 
 | ||||
| 
 | ||||
|  | @ -69,45 +69,45 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES} | |||
| 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -lpthread -lrt | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib/base64 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/camera.o: lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/img.o: lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/messages.o: lib/messages.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/main.o: main.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/a7f31ab4/base64.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/camera.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/img.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_PTHREAD__ -D__WITH_ARUCO__ -I./ -I./lib `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp | ||||
| 
 | ||||
| # Subprojects
 | ||||
| .build-subprojects: | ||||
|  |  | |||
|  | @ -0,0 +1,131 @@ | |||
| #
 | ||||
| # Generated Makefile - do not edit!
 | ||||
| #
 | ||||
| # Edit the Makefile in the project folder instead (../Makefile). Each target
 | ||||
| # has a -pre and a -post target defined where you can add customized code.
 | ||||
| #
 | ||||
| # This makefile implements configuration specific macros and targets.
 | ||||
| 
 | ||||
| 
 | ||||
| # Environment
 | ||||
| MKDIR=mkdir | ||||
| CP=cp | ||||
| GREP=grep | ||||
| NM=nm | ||||
| CCADMIN=CCadmin | ||||
| RANLIB=ranlib | ||||
| CC=gcc | ||||
| CCC=g++ | ||||
| CXX=g++ | ||||
| FC=gfortran | ||||
| AS=as | ||||
| 
 | ||||
| # Macros
 | ||||
| CND_PLATFORM=GNU-Linux | ||||
| CND_DLIB_EXT=so | ||||
| CND_CONF=Debug__Pthread__RPI | ||||
| CND_DISTDIR=dist | ||||
| CND_BUILDDIR=build | ||||
| 
 | ||||
| # Include project Makefile
 | ||||
| include ./Makefile | ||||
| 
 | ||||
| # Object Directory
 | ||||
| OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 
 | ||||
| # Object Files
 | ||||
| OBJECTFILES= \
 | ||||
| 	${OBJECTDIR}/lib/base64/base64.o \
 | ||||
| 	${OBJECTDIR}/lib/camera.o \
 | ||||
| 	${OBJECTDIR}/lib/commonitor.o \
 | ||||
| 	${OBJECTDIR}/lib/comrobot.o \
 | ||||
| 	${OBJECTDIR}/lib/img.o \
 | ||||
| 	${OBJECTDIR}/lib/messages.o \
 | ||||
| 	${OBJECTDIR}/main.o \
 | ||||
| 	${OBJECTDIR}/tasks_pthread.o | ||||
| 
 | ||||
| 
 | ||||
| # C Compiler Flags
 | ||||
| CFLAGS=-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy | ||||
| 
 | ||||
| # CC Compiler Flags
 | ||||
| CCFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 | ||||
| CXXFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 | ||||
| 
 | ||||
| # Fortran Compiler Flags
 | ||||
| FFLAGS= | ||||
| 
 | ||||
| # Assembler Flags
 | ||||
| ASFLAGS= | ||||
| 
 | ||||
| # Link Libraries and Options
 | ||||
| LDLIBSOPTIONS=`pkg-config --libs opencv` /usr/local/lib/libraspicam_cv.so /usr/local/lib/libraspicam.so   | ||||
| 
 | ||||
| # Build Targets
 | ||||
| .build-conf: ${BUILD_SUBPROJECTS} | ||||
| 	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot | ||||
| 
 | ||||
| ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: /usr/local/lib/libraspicam_cv.so | ||||
| 
 | ||||
| ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: /usr/local/lib/libraspicam.so | ||||
| 
 | ||||
| ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES} | ||||
| 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -lpthread -lrt | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib/base64 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv` -std=c++11  -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/camera.o: lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv` -std=c++11  -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv` -std=c++11  -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv` -std=c++11  -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/img.o: lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv` -std=c++11  -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/messages.o: lib/messages.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/main.o: main.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_PTHREAD__ -I./ -I./lib -I./lib/base64 `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp | ||||
| 
 | ||||
| # Subprojects
 | ||||
| .build-subprojects: | ||||
| 
 | ||||
| # Clean Targets
 | ||||
| .clean-conf: ${CLEAN_SUBPROJECTS} | ||||
| 	${RM} -r ${CND_BUILDDIR}/${CND_CONF} | ||||
| 	${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libraspicam_cv.so ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libraspicam.so | ||||
| 	${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot | ||||
| 
 | ||||
| # Subprojects
 | ||||
| .clean-subprojects: | ||||
| 
 | ||||
| # Enable dependency checking
 | ||||
| .dep.inc: .depcheck-impl | ||||
| 
 | ||||
| include .dep.inc | ||||
|  | @ -35,7 +35,12 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} | |||
| 
 | ||||
| # Object Files
 | ||||
| OBJECTFILES= \
 | ||||
| 	${OBJECTDIR}/lib/base64/base64.o \
 | ||||
| 	${OBJECTDIR}/lib/camera.o \
 | ||||
| 	${OBJECTDIR}/lib/commonitor.o \
 | ||||
| 	${OBJECTDIR}/lib/comrobot.o \
 | ||||
| 	${OBJECTDIR}/lib/image.o \
 | ||||
| 	${OBJECTDIR}/lib/img.o \
 | ||||
| 	${OBJECTDIR}/lib/message.o \
 | ||||
| 	${OBJECTDIR}/lib/messages.o \
 | ||||
| 	${OBJECTDIR}/lib/monitor.o \
 | ||||
|  | @ -43,11 +48,6 @@ OBJECTFILES= \ | |||
| 	${OBJECTDIR}/lib/server.o \
 | ||||
| 	${OBJECTDIR}/main.o \
 | ||||
| 	${OBJECTDIR}/tasks.o \
 | ||||
| 	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
 | ||||
| 	${OBJECTDIR}/tasks_pthread.o | ||||
| 
 | ||||
| 
 | ||||
|  | @ -75,11 +75,36 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES} | |||
| 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -Wl,--no-as-needed -lalchemy -lcopperplate /usr/xenomai/lib/xenomai/bootstrap.o -Wl,--wrap=main -Wl,--dynamic-list=/usr/xenomai/lib/dynlist.ld -L/usr/xenomai/lib -lmercury -lpthread -lrt | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib/base64 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/camera.o: lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/image.o: lib/image.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/image.o lib/image.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/img.o: lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/message.o: lib/message.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
|  | @ -115,31 +140,6 @@ ${OBJECTDIR}/tasks.o: tasks.cpp | |||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/a7f31ab4/base64.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/camera.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -g -D_WITH_TRACE_ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv`   -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/img.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
|  |  | |||
|  | @ -35,7 +35,12 @@ OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM} | |||
| 
 | ||||
| # Object Files
 | ||||
| OBJECTFILES= \
 | ||||
| 	${OBJECTDIR}/lib/base64/base64.o \
 | ||||
| 	${OBJECTDIR}/lib/camera.o \
 | ||||
| 	${OBJECTDIR}/lib/commonitor.o \
 | ||||
| 	${OBJECTDIR}/lib/comrobot.o \
 | ||||
| 	${OBJECTDIR}/lib/image.o \
 | ||||
| 	${OBJECTDIR}/lib/img.o \
 | ||||
| 	${OBJECTDIR}/lib/message.o \
 | ||||
| 	${OBJECTDIR}/lib/messages.o \
 | ||||
| 	${OBJECTDIR}/lib/monitor.o \
 | ||||
|  | @ -43,11 +48,6 @@ OBJECTFILES= \ | |||
| 	${OBJECTDIR}/lib/server.o \
 | ||||
| 	${OBJECTDIR}/main.o \
 | ||||
| 	${OBJECTDIR}/tasks.o \
 | ||||
| 	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
 | ||||
| 	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
 | ||||
| 	${OBJECTDIR}/tasks_pthread.o | ||||
| 
 | ||||
| 
 | ||||
|  | @ -75,11 +75,36 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES} | |||
| 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM} | ||||
| 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib/base64 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/camera.o: lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/image.o: lib/image.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/image.o lib/image.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/img.o: lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/lib/message.o: lib/message.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/lib | ||||
| 	${RM} "$@.d" | ||||
|  | @ -115,31 +140,6 @@ ${OBJECTDIR}/tasks.o: tasks.cpp | |||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4 | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/a7f31ab4/base64.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/camera.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a | ||||
| 	${RM} "$@.d" | ||||
| 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/6cc0dc4a/img.o /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp | ||||
| 
 | ||||
| ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp | ||||
| 	${MKDIR} -p ${OBJECTDIR} | ||||
| 	${RM} "$@.d" | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ DEFAULTCONF=Debug | |||
| CONF=${DEFAULTCONF} | ||||
| 
 | ||||
| # All Configurations
 | ||||
| ALLCONFS=Debug Release Debug__RPI_ Debug__Pthread_  | ||||
| ALLCONFS=Debug Release Debug__RPI_ Debug__Pthread_ Debug__Pthread__RPI  | ||||
| 
 | ||||
| 
 | ||||
| # build
 | ||||
|  |  | |||
|  | @ -38,6 +38,14 @@ CND_ARTIFACT_PATH_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/superviseur-rob | |||
| CND_PACKAGE_DIR_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package | ||||
| CND_PACKAGE_NAME_Debug__Pthread_=superviseur-robot.tar | ||||
| CND_PACKAGE_PATH_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package/superviseur-robot.tar | ||||
| # Debug__Pthread__RPI configuration
 | ||||
| CND_PLATFORM_Debug__Pthread__RPI=GNU-Linux | ||||
| CND_ARTIFACT_DIR_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux | ||||
| CND_ARTIFACT_NAME_Debug__Pthread__RPI=superviseur-robot | ||||
| CND_ARTIFACT_PATH_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot | ||||
| CND_PACKAGE_DIR_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/package | ||||
| CND_PACKAGE_NAME_Debug__Pthread__RPI=superviseur-robot.tar | ||||
| CND_PACKAGE_PATH_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/package/superviseur-robot.tar | ||||
| #
 | ||||
| # include compiler specific variables
 | ||||
| #
 | ||||
|  |  | |||
|  | @ -0,0 +1,76 @@ | |||
| #!/bin/bash -x | ||||
| 
 | ||||
| # | ||||
| # Generated - do not edit! | ||||
| # | ||||
| 
 | ||||
| # Macros | ||||
| TOP=`pwd` | ||||
| CND_PLATFORM=GNU-Linux | ||||
| CND_CONF=Debug__Pthread__RPI | ||||
| CND_DISTDIR=dist | ||||
| CND_BUILDDIR=build | ||||
| CND_DLIB_EXT=so | ||||
| NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging | ||||
| TMPDIRNAME=tmp-packaging | ||||
| OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot | ||||
| OUTPUT_BASENAME=superviseur-robot | ||||
| PACKAGE_TOP_DIR=superviseur-robot/ | ||||
| 
 | ||||
| # Functions | ||||
| function checkReturnCode | ||||
| { | ||||
|     rc=$? | ||||
|     if [ $rc != 0 ] | ||||
|     then | ||||
|         exit $rc | ||||
|     fi | ||||
| } | ||||
| function makeDirectory | ||||
| # $1 directory path | ||||
| # $2 permission (optional) | ||||
| { | ||||
|     mkdir -p "$1" | ||||
|     checkReturnCode | ||||
|     if [ "$2" != "" ] | ||||
|     then | ||||
|       chmod $2 "$1" | ||||
|       checkReturnCode | ||||
|     fi | ||||
| } | ||||
| function copyFileToTmpDir | ||||
| # $1 from-file path | ||||
| # $2 to-file path | ||||
| # $3 permission | ||||
| { | ||||
|     cp "$1" "$2" | ||||
|     checkReturnCode | ||||
|     if [ "$3" != "" ] | ||||
|     then | ||||
|         chmod $3 "$2" | ||||
|         checkReturnCode | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| # Setup | ||||
| cd "${TOP}" | ||||
| mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package | ||||
| rm -rf ${NBTMPDIR} | ||||
| mkdir -p ${NBTMPDIR} | ||||
| 
 | ||||
| # Copy files and create directories and links | ||||
| cd "${TOP}" | ||||
| makeDirectory "${NBTMPDIR}/superviseur-robot/bin" | ||||
| copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 | ||||
| 
 | ||||
| 
 | ||||
| # Generate tar file | ||||
| cd "${TOP}" | ||||
| rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar | ||||
| cd ${NBTMPDIR} | ||||
| tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar * | ||||
| checkReturnCode | ||||
| 
 | ||||
| # Cleanup | ||||
| cd "${TOP}" | ||||
| rm -rf ${NBTMPDIR} | ||||
|  | @ -4,10 +4,10 @@ | |||
|     <logicalFolder name="HeaderFiles" | ||||
|                    displayName="Header Files" | ||||
|                    projectFiles="true"> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h</itemPath> | ||||
|       <itemPath>./lib/base64/base64.h</itemPath> | ||||
|       <itemPath>./lib/camera.h</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h</itemPath> | ||||
|       <itemPath>./lib/commonitor.h</itemPath> | ||||
|       <itemPath>./lib/comrobot.h</itemPath> | ||||
|       <itemPath>./lib/definitions.h</itemPath> | ||||
|       <itemPath>./lib/image.h</itemPath> | ||||
|       <itemPath>./lib/img.h</itemPath> | ||||
|  | @ -27,12 +27,12 @@ | |||
|     <logicalFolder name="SourceFiles" | ||||
|                    displayName="Source Files" | ||||
|                    projectFiles="true"> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp</itemPath> | ||||
|       <itemPath>./lib/base64/base64.cpp</itemPath> | ||||
|       <itemPath>./lib/camera.cpp</itemPath> | ||||
|       <itemPath>./lib/commonitor.cpp</itemPath> | ||||
|       <itemPath>./lib/comrobot.cpp</itemPath> | ||||
|       <itemPath>./lib/image.cpp</itemPath> | ||||
|       <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</itemPath> | ||||
|       <itemPath>./lib/img.cpp</itemPath> | ||||
|       <itemPath>./main.cpp</itemPath> | ||||
|       <itemPath>./lib/message.cpp</itemPath> | ||||
|       <itemPath>./lib/messages.cpp</itemPath> | ||||
|  | @ -55,7 +55,7 @@ | |||
|     </logicalFolder> | ||||
|   </logicalFolder> | ||||
|   <sourceRootList> | ||||
|     <Elem>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib</Elem> | ||||
|     <Elem>lib</Elem> | ||||
|   </sourceRootList> | ||||
|   <projectmakefile>./Makefile</projectmakefile> | ||||
|   <confs> | ||||
|  | @ -95,12 +95,28 @@ | |||
|       </compileType> | ||||
|       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0"> | ||||
|  | @ -129,46 +145,6 @@ | |||
|       </item> | ||||
|       <item path="./tasks.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0"> | ||||
|  | @ -196,14 +172,30 @@ | |||
|       </compileType> | ||||
|       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0"> | ||||
|  | @ -232,46 +224,6 @@ | |||
|       </item> | ||||
|       <item path="./tasks.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0"> | ||||
|  | @ -316,14 +268,30 @@ | |||
|       </compileType> | ||||
|       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0"> | ||||
|  | @ -352,46 +320,6 @@ | |||
|       </item> | ||||
|       <item path="./tasks.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0"> | ||||
|  | @ -420,6 +348,7 @@ | |||
|           <preprocessorList> | ||||
|             <Elem>_WITH_TRACE_</Elem> | ||||
|             <Elem>__FOR_PC__</Elem> | ||||
|             <Elem>__WITH_ARUCO__</Elem> | ||||
|             <Elem>__WITH_PTHREAD__</Elem> | ||||
|           </preprocessorList> | ||||
|         </ccTool> | ||||
|  | @ -432,14 +361,30 @@ | |||
|       </compileType> | ||||
|       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/image.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/message.cpp" ex="true" tool="1" flavor2="9"> | ||||
|  | @ -466,45 +411,99 @@ | |||
|       </item> | ||||
|       <item path="./tasks.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|     </conf> | ||||
|     <conf name="Debug__Pthread__RPI" type="1"> | ||||
|       <toolsSet> | ||||
|         <compilerSet>GNU|GNU</compilerSet> | ||||
|         <dependencyChecking>true</dependencyChecking> | ||||
|         <rebuildPropChanged>false</rebuildPropChanged> | ||||
|       </toolsSet> | ||||
|       <compileType> | ||||
|         <cTool> | ||||
|           <incDir> | ||||
|             <pElem>./</pElem> | ||||
|             <pElem>./lib</pElem> | ||||
|             <pElem>./lib/base64</pElem> | ||||
|           </incDir> | ||||
|           <commandLine>-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy</commandLine> | ||||
|         </cTool> | ||||
|         <ccTool> | ||||
|           <standard>8</standard> | ||||
|           <incDir> | ||||
|             <pElem>./</pElem> | ||||
|             <pElem>./lib</pElem> | ||||
|             <pElem>./lib/base64</pElem> | ||||
|           </incDir> | ||||
|           <commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11</commandLine> | ||||
|           <preprocessorList> | ||||
|             <Elem>_WITH_TRACE_</Elem> | ||||
|             <Elem>__WITH_PTHREAD__</Elem> | ||||
|           </preprocessorList> | ||||
|         </ccTool> | ||||
|         <linkerTool> | ||||
|           <linkerLibItems> | ||||
|             <linkerOptionItem>`pkg-config --libs opencv`</linkerOptionItem> | ||||
|             <linkerLibFileItem>/usr/local/lib/libraspicam_cv.so</linkerLibFileItem> | ||||
|             <linkerLibFileItem>/usr/local/lib/libraspicam.so</linkerLibFileItem> | ||||
|           </linkerLibItems> | ||||
|           <commandLine>-lpthread -lrt</commandLine> | ||||
|         </linkerTool> | ||||
|       </compileType> | ||||
|       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="8"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="8"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h" | ||||
|             ex="false" | ||||
|             tool="3" | ||||
|             flavor2="0"> | ||||
|       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp" | ||||
|             ex="false" | ||||
|             tool="1" | ||||
|             flavor2="0"> | ||||
|       <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="8"> | ||||
|       </item> | ||||
|       <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="8"> | ||||
|       </item> | ||||
|       <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/image.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/image.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/img.cpp" ex="false" tool="1" flavor2="8"> | ||||
|       </item> | ||||
|       <item path="./lib/img.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/message.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/message.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/messages.cpp" ex="false" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/messages.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/monitor.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/monitor.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/robot.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/robot.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./lib/server.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./lib/server.h" ex="false" tool="3" flavor2="0"> | ||||
|       </item> | ||||
|       <item path="./main.cpp" ex="false" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="./tasks.cpp" ex="true" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="9"> | ||||
|       </item> | ||||
|  |  | |||
|  | @ -7,3 +7,4 @@ | |||
| # Release configuration
 | ||||
| # Debug__RPI_ configuration
 | ||||
| # Debug__Pthread_ configuration
 | ||||
| # Debug__Pthread__RPI configuration
 | ||||
|  |  | |||
|  | @ -116,8 +116,43 @@ | |||
|         <gdb_interceptlist> | ||||
|           <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/> | ||||
|         </gdb_interceptlist> | ||||
|         <gdb_signals> | ||||
|         </gdb_signals> | ||||
|         <gdb_options> | ||||
|           <DebugOptions> | ||||
|           </DebugOptions> | ||||
|         </gdb_options> | ||||
|         <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/> | ||||
|       </dbx_gdbdebugger> | ||||
|       <nativedebugger version="1"> | ||||
|         <engine>gdb</engine> | ||||
|       </nativedebugger> | ||||
|       <runprofile version="9"> | ||||
|         <runcommandpicklist> | ||||
|           <runcommandpicklistitem>sudo "${OUTPUT_PATH}"</runcommandpicklistitem> | ||||
|           <runcommandpicklistitem>sudo -E "${OUTPUT_PATH}"</runcommandpicklistitem> | ||||
|           <runcommandpicklistitem>pkexec "${OUTPUT_PATH}"</runcommandpicklistitem> | ||||
|           <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem> | ||||
|         </runcommandpicklist> | ||||
|         <runcommand>"${OUTPUT_PATH}"</runcommand> | ||||
|         <rundir></rundir> | ||||
|         <buildfirst>true</buildfirst> | ||||
|         <console-type>1</console-type> | ||||
|         <terminal-type>0</terminal-type> | ||||
|         <remove-instrumentation>0</remove-instrumentation> | ||||
|         <environment> | ||||
|         </environment> | ||||
|       </runprofile> | ||||
|     </conf> | ||||
|     <conf name="Debug__Pthread__RPI" type="1"> | ||||
|       <toolsSet> | ||||
|         <developmentServer>pi@10.105.1.13:22</developmentServer> | ||||
|         <platform>2</platform> | ||||
|       </toolsSet> | ||||
|       <dbx_gdbdebugger version="1"> | ||||
|         <gdb_pathmaps> | ||||
|         </gdb_pathmaps> | ||||
|         <gdb_interceptlist> | ||||
|           <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/> | ||||
|         </gdb_interceptlist> | ||||
|         <gdb_options> | ||||
|           <DebugOptions> | ||||
|           </DebugOptions> | ||||
|  |  | |||
|  | @ -0,0 +1,3 @@ | |||
| #Tue Jan 08 15:35:51 CET 2019 | ||||
| ____VERSION=2.0 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot=1v | ||||
|  | @ -10,6 +10,7 @@ | |||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h</file> | ||||
|             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</file> | ||||
|  |  | |||
|  | @ -1,32 +1,93 @@ | |||
| #Tue Nov 13 15:41:05 CET 2018 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1542116851000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/CMakeLists.txt=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug.bash=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=c1542105020000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1542117446000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1542120059000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-variables.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.xml=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.h=c1542117282000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000 | ||||
| #Wed Jan 09 09:35:50 CET 2019 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/uiExample.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1546526768000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1546527039000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Release.mk=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1542120024000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.cpp=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Release.bash=c1544780526000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1545405815000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1545320764000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1542120059000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/ProjDestijl.cbp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/TPRT.Doxyfile=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1546855871000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug.bash=c1544780526000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1546855871000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/.gitignore=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk=c1546856794000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.cpp=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.cpp=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1546875478000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1544797217000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/definitions.h=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/gdbsudo.sh=c1541685829000 | ||||
| VERSION=1.3 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1542119920000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/definitions.h=c1542116893000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1545386748000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1546940198000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/videoExample.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk=c1546856794000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1544780526000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1546866048000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1545406561000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash=c1546855871000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp=c1542116921000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.xml=c1542104029000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1546855871000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialTest.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/CMakeLists.txt=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.cpp=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1546940179000 | ||||
| VERSION=1.3 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/CMakeLists.txt=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread__RPI.mk=c1546862281000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-variables.mk=c1542029322000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=c1542105020000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serverTest.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread_.bash=c1545062469000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1518398687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1546526752000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk=c1546856794000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/rtvideoExample.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialExample.cpp=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/compile_commands.json=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.h=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1546856794000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.cpp=c1544778298000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1546961625000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1546961074000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp=c1546512226000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1546959546000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1546856299000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/CMakeLists.txt=c1542120848000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug.bash=c1541685829000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1546959623000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1542100687000 | ||||
| /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/CMakeLists.txt=c1542120848000 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
|             <sourceEncoding>UTF-8</sourceEncoding> | ||||
|             <make-dep-projects/> | ||||
|             <sourceRootList> | ||||
|                 <sourceRootElem>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib</sourceRootElem> | ||||
|                 <sourceRootElem>lib</sourceRootElem> | ||||
|             </sourceRootList> | ||||
|             <confList> | ||||
|                 <confElem> | ||||
|  | @ -29,6 +29,10 @@ | |||
|                     <name>Debug__Pthread_</name> | ||||
|                     <type>1</type> | ||||
|                 </confElem> | ||||
|                 <confElem> | ||||
|                     <name>Debug__Pthread__RPI</name> | ||||
|                     <type>1</type> | ||||
|                 </confElem> | ||||
|             </confList> | ||||
|             <formatting> | ||||
|                 <project-formatting-style>false</project-formatting-style> | ||||
|  |  | |||
|  | @ -48,11 +48,11 @@ | |||
|  */ | ||||
| 
 | ||||
| void Tasks::Init() { | ||||
|     int status;  | ||||
|      | ||||
|     int status; | ||||
| 
 | ||||
|     /* Open com port with STM32 */ | ||||
|     cout << "Open serial com ("; | ||||
|     status = robot.Open("/dev/ttyUSB0"); | ||||
|     status = robot.Open(); | ||||
|     cout << status; | ||||
|     cout << ")" << endl; | ||||
| 
 | ||||
|  | @ -60,7 +60,7 @@ void Tasks::Init() { | |||
|         // Open server
 | ||||
| 
 | ||||
|         status = monitor.Open(SERVER_PORT); | ||||
|         cout << "Open server on port " << SERVER_PORT << " (" << status << ")" << endl; | ||||
|         cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl; | ||||
| 
 | ||||
|         if (status < 0) throw std::runtime_error { | ||||
|             "Unable to start server on port " + std::to_string(SERVER_PORT) | ||||
|  | @ -72,40 +72,60 @@ void Tasks::Init() { | |||
| } | ||||
| 
 | ||||
| void Tasks::Run() { | ||||
|      | ||||
|     threadTimer=new thread((void (*)(void*)) &Tasks::TimerTask,this); | ||||
|     threadServer=new thread((void (*)(void*)) &Tasks::ServerTask,this); | ||||
|     //    threadSendToMon=new thread((void (*)(void*)) &Tasks::SendToMonTask,this);
 | ||||
|      | ||||
|     threadTimer = new thread((void (*)(void*)) & Tasks::TimerTask, this); | ||||
|     threadServer = new thread((void (*)(void*)) & Tasks::ServerTask, this); | ||||
| 
 | ||||
| //    msgSend = ComRobot::Ping();
 | ||||
| //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
| //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
| //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
| //
 | ||||
| //    delete(msgRcv);
 | ||||
| //
 | ||||
| //    msgSend = ComRobot::StartWithoutWD();
 | ||||
| //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
| //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
| //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
| //
 | ||||
| //    delete(msgRcv);
 | ||||
| //
 | ||||
| //    msgSend = ComRobot::Move(1000);
 | ||||
| //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
| //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
| //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
| //
 | ||||
| //    delete(msgRcv);
 | ||||
| //
 | ||||
| //    msgSend = ComRobot::GetBattery();
 | ||||
| //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
| //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ROBOT_BATTERY_LEVEL, 3);
 | ||||
| //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
| //
 | ||||
| //    delete(msgRcv);
 | ||||
|     cout<<"Tasks launched"<<endl<<flush;  | ||||
|     //    threadSendToMon=new thread((void (*)(void*)) &Tasks::SendToMonTask,this);
 | ||||
| 
 | ||||
|     //
 | ||||
|     //    Camera camera=Camera(sm);
 | ||||
|     //    cout << "Try opening camera"<<endl<<flush;
 | ||||
|     //    if (camera.Open()) cout<<"Camera opened successfully"<<endl<<flush;
 | ||||
|     //    else cout<<"Failed to open camera"<<endl<<flush;
 | ||||
|     //    
 | ||||
|     //    counter = 0;
 | ||||
|     //    while (1) {
 | ||||
|     //        Img image=camera.Grab();
 | ||||
|     //        
 | ||||
|     //        counter++;
 | ||||
|     //        
 | ||||
|     //        if (flag == true) {
 | ||||
|     //            cout<< "Image info: "<<image.ToString()<<endl<<flush;
 | ||||
|     //            cout << "FPS = "<<to_string(counter)<<endl<<flush;
 | ||||
|     //            flag=false;
 | ||||
|     //            counter=0;
 | ||||
|     //        }
 | ||||
|     //    }
 | ||||
| 
 | ||||
| 
 | ||||
|     //    msgSend = ComRobot::Ping();
 | ||||
|     //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
|     //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
|     //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
|     //
 | ||||
|     //    delete(msgRcv);
 | ||||
|     //
 | ||||
|     //    msgSend = ComRobot::StartWithoutWD();
 | ||||
|     //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
|     //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
|     //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
|     //
 | ||||
|     //    delete(msgRcv);
 | ||||
|     //
 | ||||
|     //    msgSend = ComRobot::Move(1000);
 | ||||
|     //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
|     //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
 | ||||
|     //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
|     //
 | ||||
|     //    delete(msgRcv);
 | ||||
|     //
 | ||||
|     //    msgSend = ComRobot::GetBattery();
 | ||||
|     //    cout << "Send => " << msgSend->ToString() << endl << flush;
 | ||||
|     //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ROBOT_BATTERY_LEVEL, 3);
 | ||||
|     //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
 | ||||
|     //
 | ||||
|     //    delete(msgRcv);
 | ||||
|     cout << "Tasks launched" << endl << flush; | ||||
| } | ||||
| 
 | ||||
| void Tasks::Stop() { | ||||
|  | @ -116,14 +136,14 @@ void Tasks::Stop() { | |||
| void Tasks::ServerTask(void *arg) { | ||||
|     Message *msgRcv; | ||||
|     Message *msgSend; | ||||
|     bool isActive=true; | ||||
|      | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush; | ||||
|      | ||||
|     bool isActive = true; | ||||
| 
 | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; | ||||
| 
 | ||||
|     while (isActive) { | ||||
|         msgRcv=NULL; | ||||
|         msgSend=NULL; | ||||
|          | ||||
|         msgRcv = NULL; | ||||
|         msgSend = NULL; | ||||
| 
 | ||||
|         msgRcv = monitor.Read(); | ||||
|         cout << "Rcv <= " << msgRcv->ToString() << endl << flush; | ||||
| 
 | ||||
|  | @ -132,31 +152,35 @@ void Tasks::ServerTask(void *arg) { | |||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|          | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) isActive = false; | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) { | ||||
|             sendImage=true; | ||||
|             sendImage = true; | ||||
|             msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) { | ||||
|             sendImage=false; | ||||
|             sendImage = false; | ||||
|             msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) { | ||||
|             sendPosition=true; | ||||
|             sendPosition = true; | ||||
|             msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) { | ||||
|             sendPosition=false; | ||||
|             sendPosition = false; | ||||
|             msgSend = new Message(MESSAGE_ANSWER_ACK); | ||||
|         } | ||||
|          | ||||
|         if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL,BATTERY_FULL); | ||||
|          | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL, BATTERY_FULL); | ||||
| 
 | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA)) showArena = true; | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM)) showArena = false; | ||||
|         if (msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM)) showArena = false; | ||||
| 
 | ||||
|         if (msgSend != NULL) monitor.Write(msgSend); | ||||
|         delete(msgRcv); | ||||
|     } | ||||
|  | @ -166,61 +190,107 @@ void Tasks::TimerTask(void* arg) { | |||
|     struct timespec tim, tim2; | ||||
|     Message *msgSend; | ||||
|     int counter; | ||||
|     int cntFrame = 0; | ||||
|     Position pos; | ||||
|     Arena arena; | ||||
|      | ||||
|     tim.tv_sec = 0; | ||||
|     tim.tv_nsec = 50000000; // 50ms (20fps)
 | ||||
|      | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush; | ||||
|      | ||||
|     Camera camera=Camera(sm); | ||||
|     cout << "Try opening camera"<<endl<<flush; | ||||
|     if (camera.Open()) cout<<"Camera opened successfully"<<endl<<flush; | ||||
|     else cout<<"Failed to open camera"<<endl<<flush; | ||||
| 
 | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; | ||||
| 
 | ||||
|     Camera camera = Camera(sm, 10); | ||||
|     cout << "Try opening camera" << endl << flush; | ||||
|     if (camera.Open()) cout << "Camera opened successfully" << endl << flush; | ||||
|     else { | ||||
|         cout << "Failed to open camera" << endl << flush; | ||||
|          | ||||
|         exit(0); | ||||
|     } | ||||
| 
 | ||||
|     pos.angle = 0.0; | ||||
|     pos.robotId = -1; | ||||
|     pos.center = cv::Point2f(0, 0); | ||||
|     pos.direction = cv::Point2f(0, 0); | ||||
|      | ||||
|     while (1) { | ||||
|         //std::this_thread::sleep_for(std::chrono::seconds )
 | ||||
|         //sleep(1);
 | ||||
|         if (nanosleep(&tim, &tim2) < 0) { | ||||
|             printf("Nano sleep system call failed \n"); | ||||
|             return; | ||||
|         } | ||||
|          | ||||
|         //        if (nanosleep(&tim, &tim2) < 0) {
 | ||||
|         //            printf("Nano sleep system call failed \n");
 | ||||
|         //            return;
 | ||||
|         //        }
 | ||||
| 
 | ||||
|         //        counter++;
 | ||||
|         //        if (counter>=10) {
 | ||||
|         //            flag=true;
 | ||||
|         //            counter=0;
 | ||||
|         //        }
 | ||||
|         //mutexTimer.unlock();
 | ||||
|         if (sendImage==true) { | ||||
|         Img image = camera.Grab(); // 15fps
 | ||||
| 
 | ||||
|         if (sendPosition == true) { | ||||
|             counter++; | ||||
|              | ||||
|             if (counter>=1) { | ||||
|                 counter=0; | ||||
|                 Img image=camera.Grab(); | ||||
| 
 | ||||
|             if (counter >= 1) { // div =15
 | ||||
|                 counter = 0; | ||||
|                  | ||||
|                 cout << image.ToString()<<endl<<flush; | ||||
|                 MessageImg *msg=new MessageImg(MESSAGE_CAM_IMAGE, &image); | ||||
|                  | ||||
|                 monitor.Write(msg); | ||||
|                 cout << "Image sent"<<endl<<flush; | ||||
|                 //if (!arena.IsEmpty()) {
 | ||||
|                 image.dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(3)); | ||||
|                 list<Position> poses = image.SearchAruco(arena); | ||||
|           | ||||
|                 //std::list<Position> poses = image.SearchRobot(arena);
 | ||||
|                 cout << "Nbr of pos detected: " << to_string(poses.size()) << endl << flush; | ||||
| 
 | ||||
|                 if (poses.size() > 0) { | ||||
|                     Position firstPos = poses.front(); | ||||
| 
 | ||||
|                     pos.angle = firstPos.angle; | ||||
|                     pos.robotId = firstPos.robotId; | ||||
|                     pos.center = firstPos.center; | ||||
|                     pos.direction = firstPos.direction; | ||||
|                 } else { | ||||
|                     // Nothing found
 | ||||
|                     pos.angle = 0.0; | ||||
|                     pos.robotId = -1; | ||||
|                     pos.center = cv::Point2f(0,0); | ||||
|                     pos.direction = cv::Point2f(0,0); | ||||
|                 } | ||||
| 
 | ||||
|                 MessagePosition *msgp = new MessagePosition(MESSAGE_CAM_POSITION, pos); | ||||
|                 monitor.Write(msgp); | ||||
|                 cout << "Position sent" << endl << flush; | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         if (sendPosition==true) { | ||||
|             Position pos; | ||||
|             pos.angle=0.0; | ||||
|             pos.robotId=1; | ||||
|             pos.center=cv::Point2f(0.5,0.5); | ||||
|             pos.direction=cv::Point2f(1.0,2.5); | ||||
|         if (sendImage == true) { | ||||
|             if (showArena) { | ||||
|                 arena = image.SearchArena(); | ||||
| 
 | ||||
|                 if (!arena.IsEmpty()) image.DrawArena(arena); | ||||
|                 else cout << "Arena not found" << endl << flush; | ||||
|             } | ||||
| 
 | ||||
|             if (sendPosition == true) { | ||||
|                 image.DrawRobot(pos); | ||||
|             } | ||||
|               | ||||
|             if (!arena.IsEmpty()) image.DrawArena(arena); | ||||
|              | ||||
|             MessagePosition *msgp=new MessagePosition(MESSAGE_CAM_POSITION, pos); | ||||
|             monitor.Write(msgp); | ||||
|             cout << "Position sent"<<endl<<flush; | ||||
|             MessageImg *msg = new MessageImg(MESSAGE_CAM_IMAGE, &image); | ||||
| 
 | ||||
|             monitor.Write(msg); | ||||
|             cntFrame++; | ||||
|             cout << "cnt: " << to_string(cntFrame) << endl << flush; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void Tasks::SendToMonTask(void* arg) { | ||||
|      | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush; | ||||
|      | ||||
|     cout << "Start " << __PRETTY_FUNCTION__ << endl << flush; | ||||
| 
 | ||||
|     while (1) { | ||||
|          | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -93,6 +93,11 @@ private: | |||
|     bool sendImage=false; | ||||
|     bool sendPosition=false; | ||||
|      | ||||
|     int counter; | ||||
|     bool flag; | ||||
|      | ||||
|     bool showArena=false; | ||||
|      | ||||
|     thread *threadServer; | ||||
|     thread *threadSendToMon; | ||||
|     thread *threadTimer; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue