Browse Source

aruco rajouté + script pour compiler et installer opencv avec le support aruco

Sébastien DI MERCURIO 5 years ago
parent
commit
2ef33f2e59
31 changed files with 1465 additions and 933 deletions
  1. 88
    0
      software/install-opencv.sh
  2. 71
    136
      software/monitor/monitor/Client.cs
  3. 80
    48
      software/monitor/monitor/MonitorUI.cs
  4. 207
    185
      software/monitor/monitor/gtk-gui/MainWindow.cs
  5. 78
    50
      software/monitor/monitor/gtk-gui/gui.stetic
  6. BIN
      software/monitor/monitor/monitor
  7. 5
    0
      software/raspberry/superviseur-robot/.dep.inc
  8. BIN
      software/raspberry/superviseur-robot/dist/Debug__Pthread_/GNU-Linux/superviseur-robot
  9. BIN
      software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot
  10. 34
    3
      software/raspberry/superviseur-robot/lib/camera.cpp
  11. 9
    1
      software/raspberry/superviseur-robot/lib/camera.h
  12. 1
    1
      software/raspberry/superviseur-robot/lib/commonitor.cpp
  13. 83
    95
      software/raspberry/superviseur-robot/lib/img.cpp
  14. 12
    11
      software/raspberry/superviseur-robot/lib/img.h
  15. 30
    30
      software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk
  16. 27
    27
      software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk
  17. 131
    0
      software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread__RPI.mk
  18. 30
    30
      software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk
  19. 30
    30
      software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk
  20. 1
    1
      software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk
  21. 8
    0
      software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk
  22. 76
    0
      software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash
  23. 167
    168
      software/raspberry/superviseur-robot/nbproject/configurations.xml
  24. 1
    0
      software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk
  25. 37
    2
      software/raspberry/superviseur-robot/nbproject/private/configurations.xml
  26. 3
    0
      software/raspberry/superviseur-robot/nbproject/private/downloads-10.105.1.13-pi-22
  27. 1
    0
      software/raspberry/superviseur-robot/nbproject/private/private.xml
  28. 86
    25
      software/raspberry/superviseur-robot/nbproject/private/timestamps-10.105.1.13-pi-22
  29. 5
    1
      software/raspberry/superviseur-robot/nbproject/project.xml
  30. 159
    89
      software/raspberry/superviseur-robot/tasks_pthread.cpp
  31. 5
    0
      software/raspberry/superviseur-robot/tasks_pthread.h

+ 88
- 0
software/install-opencv.sh View File

1
+#!/bin/bash
2
+
3
+######################################
4
+# INSTALL OPENCV ON UBUNTU OR DEBIAN #
5
+######################################
6
+
7
+# |          THIS SCRIPT IS TESTED CORRECTLY ON          |
8
+# |------------------------------------------------------|
9
+# | OS               | OpenCV       | Test | Last test   |
10
+# |------------------|--------------|------|-------------|
11
+# | Ubuntu 18.04 LTS | OpenCV 3.4.2 | OK   | 18 Jul 2018 |
12
+# | Debian 9.5       | OpenCV 3.4.2 | OK   | 18 Jul 2018 |
13
+# |----------------------------------------------------- |
14
+# | Debian 9.0       | OpenCV 3.2.0 | OK   | 25 Jun 2017 |
15
+# | Debian 8.8       | OpenCV 3.2.0 | OK   | 20 May 2017 |
16
+# | Ubuntu 16.04 LTS | OpenCV 3.2.0 | OK   | 20 May 2017 |
17
+
18
+
19
+# VERSION TO BE INSTALLED
20
+
21
+OPENCV_VERSION='3.4.2'
22
+
23
+
24
+# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
25
+
26
+sudo apt-get -y update
27
+# sudo apt-get -y upgrade       # Uncomment this line to install the newest versions of all packages currently installed
28
+# sudo apt-get -y dist-upgrade  # Uncomment this line to, in addition to 'upgrade', handles changing dependencies with new versions of packages
29
+# sudo apt-get -y autoremove    # Uncomment this line to remove packages that are now no longer needed
30
+
31
+
32
+# 2. INSTALL THE DEPENDENCIES
33
+
34
+# Build tools:
35
+sudo apt-get install -y build-essential cmake
36
+
37
+# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
38
+#sudo apt-get install -y qt5-default libvtk6-dev
39
+sudo apt-get install -y libgtkglext1-dev
40
+
41
+# Media I/O:
42
+sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
43
+
44
+# Video I/O:
45
+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
46
+
47
+# Parallelism and linear algebra libraries:
48
+sudo apt-get install -y libtbb-dev libeigen3-dev
49
+
50
+# Python:
51
+sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
52
+
53
+# Java:
54
+sudo apt-get install -y ant default-jdk
55
+
56
+# Documentation:
57
+sudo apt-get install -y doxygen
58
+
59
+
60
+# 3. INSTALL THE LIBRARY
61
+
62
+sudo apt-get install -y unzip wget
63
+wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip
64
+
65
+unzip ${OPENCV_VERSION}.zip
66
+rm ${OPENCV_VERSION}.zip
67
+mv opencv-${OPENCV_VERSION} OpenCV
68
+
69
+# 3.5 Add Aruco
70
+# Get opencv_contrib from github
71
+# Copy aruco directory from <opencv_contrib>/modules to <opencv>/modules
72
+wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip
73
+mv ${OPENCV_VERSION}.zip opencv_contrib-${OPENCV_VERSION}.zip
74
+unzip opencv_contrib-${OPENCV_VERSION}.zip
75
+
76
+cd OpenCV
77
+mkdir build
78
+cd build
79
+# 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 ..
80
+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 ..
81
+make -j5
82
+sudo make install
83
+sudo ldconfig
84
+
85
+
86
+# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
87
+
88
+# To complete this step, please visit 'http://milq.github.io/install-opencv-ubuntu-debian'.

+ 71
- 136
software/monitor/monitor/Client.cs View File

35
         /// <summary>
35
         /// <summary>
36
         /// Default server name
36
         /// Default server name
37
         /// </summary>
37
         /// </summary>
38
-        public const string defaultIP = "localhost";
38
+        public const string defaultIP = "10.105.1.13";
39
 
39
 
40
         /// <summary>
40
         /// <summary>
41
         /// Default server port number
41
         /// Default server port number
55
         /// <summary>
55
         /// <summary>
56
         /// Size of internal buffer used when reading data from server
56
         /// Size of internal buffer used when reading data from server
57
         /// </summary>
57
         /// </summary>
58
-        private const int BufferMaxSize = 512;
58
+        private const int BufferMaxSize = 8*1024;
59
 
59
 
60
         /// <summary>
60
         /// <summary>
61
         /// Internal buffer used when reading data from server
61
         /// Internal buffer used when reading data from server
66
         /// buffer containing received message from TCP server
66
         /// buffer containing received message from TCP server
67
         /// Used to concatenate internal buffers into one
67
         /// Used to concatenate internal buffers into one
68
         /// </summary>
68
         /// </summary>
69
-        private static byte[] receiveBuffer;
69
+        //private static byte[] receiveBuffer;
70
 
70
 
71
         //private static int initialReceiveBufferIndex = 0;
71
         //private static int initialReceiveBufferIndex = 0;
72
 
72
 
84
         public static ReadEvent readEvent = null;
84
         public static ReadEvent readEvent = null;
85
 
85
 
86
         /// <summary>
86
         /// <summary>
87
-        /// Thread used in reception
88
-        /// </summary>
89
-        private static Thread readThread;
90
-
91
-        /// <summary>
92
         /// Open connection to server "host", on default port number.
87
         /// Open connection to server "host", on default port number.
93
         /// </summary>
88
         /// </summary>
94
         /// <returns>true if connection succeded, false otherwise</returns>
89
         /// <returns>true if connection succeded, false otherwise</returns>
159
         /// <summary>
154
         /// <summary>
160
         /// Callback call by stream.BeginRead after reception of newLength data
155
         /// Callback call by stream.BeginRead after reception of newLength data
161
         /// </summary>
156
         /// </summary>
162
-        //private static void ReadCallback()
163
-        //{
164
-        //    char character;
165
-        //    int data;
166
-        //    byte[] buffer=new byte[4096];
167
-        //    int lengthRead;
168
-
169
-        //    while (client.Connected)
170
-        //    {
171
-        //        try
172
-        //        {
173
-        //            //data = stream.ReadByte();
174
-        //            lengthRead = stream.Read(buffer, 0, buffer.Length);
175
-        //        }
176
-        //        catch (ObjectDisposedException)
177
-        //        {
178
-        //            Console.WriteLine("Connection to server dropped (object disposed)!");
179
-        //            return;
180
-        //        }
181
-        //        catch (System.IO.IOException)
182
-        //        {
183
-        //            Console.WriteLine("Connection to server dropped (other error)");
184
-        //            return;
185
-        //        }
186
-
187
-        //        if (lengthRead > 0) // a data was read
188
-        //        {
189
-        //            //character = (char)data;
190
-        //            var str = System.Text.Encoding.Default.GetString(buffer);
191
-        //            int indexOf = str.IndexOf('\n');
192
-
193
-        //            //if (character != '\n')
194
-        //            if (indexOf == -1) // \n doesn't exists
195
-        //            {
196
-        //                message.Append(str);
197
-
198
-        //                //if (receiveBuffer == null) receiveBuffer = new byte[1];
199
-        //                //else Array.Resize<byte>(ref receiveBuffer, receiveBuffer.Length + 1); // resize currrent buffer
200
-
201
-        //                //receiveBuffer[receiveBuffer.Length - 1] = (byte)data;
202
-        //            }
203
-        //            else // end of string found
204
-        //            {
205
-        //                message.Append((str.Substring(0,indexOf)));
206
-        //                readEvent?.Invoke(message.ToString(), receiveBuffer);
207
-
208
-        //                message.Clear();
209
-        //                receiveBuffer = null;
210
-        //            }
211
-        //        }
212
-        //    }
213
-        //}
214
-
215
-        /// <summary>
216
-        /// Callback call by stream.BeginRead after reception of newLength data
217
-        /// </summary>
218
         /// <param name="ar">Not sure of what is it, but needed for terminate reading</param>
157
         /// <param name="ar">Not sure of what is it, but needed for terminate reading</param>
219
-        //private static void ReadCallback(IAsyncResult ar)
220
-        //{
221
-        //    if (client.Connected)
222
-        //    {
223
-        //        int bytesRead;
224
-
225
-        //        try
226
-        //        {
227
-        //            // Termintae read operation, and get number of byte stored in buffer
228
-        //            bytesRead = stream.EndRead(ar);
229
-        //        }
230
-        //        catch (ObjectDisposedException e)
231
-        //        {
232
-        //            Console.WriteLine("Connection to server dropped: " + e.ToString());
233
-        //            return;
234
-        //        }
235
-
236
-        //        newLength = 1;
237
-
238
-        //        // if number of byte read is not 0, concatenate string and buffer
239
-        //        if (bytesRead > 0)
240
-        //        {
241
-        //            packetCounter++;
242
-
243
-        //            if (packetCounter >= 3)
244
-        //            {
245
-        //                //Console.WriteLine("Supplementary packet " + packetCounter);
246
-        //            }
247
-
248
-        //            // Append new data to current string (expecting data are ascii)
249
-        //            message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
250
-
251
-        //            // Similarly, append received bytes to current buffer 
252
-        //            if (receiveBuffer == null) receiveBuffer = new byte[bytesRead];
253
-        //            else Array.Resize<byte>(ref receiveBuffer, initialReceiveBufferIndex + bytesRead); // resize currrent buffer
254
-
255
-        //            System.Buffer.BlockCopy(buffer, 0, receiveBuffer, initialReceiveBufferIndex, bytesRead); // and add received data
256
-        //            initialReceiveBufferIndex = receiveBuffer.Length; // move last index of current buffer
257
-        //        }
258
-
259
-        //        // if it remains received data, prepare for a new reading (get another buffer to append to current one)
260
-        //        if (client.Available > 0)
261
-        //        {
262
-        //            newLength = client.Available;
263
-        //            if (newLength > BufferMaxSize) newLength = BufferMaxSize;
264
-        //            else newLength = client.Available;
265
-        //        }
266
-        //        else
267
-        //        {
268
-        //            // no more data to read, buffer and string can be send to upper level
269
-        //            readEvent?.Invoke(message.ToString(), receiveBuffer);
270
-
271
-        //            message.Clear();
272
-        //            receiveBuffer = null;
273
-        //            initialReceiveBufferIndex = 0;
274
-        //            packetCounter = 0;
275
-        //        }
276
-
277
-        //        // Prepare for reading new data
278
-        //        if (newLength> BufferMaxSize) newLength = BufferMaxSize;
279
-        //        if (newLength <= 0) newLength = 1;
280
-        //        stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message);
281
-        //    }
282
-        //}
283
-
284
         private static void ReadCallback(IAsyncResult ar)
158
         private static void ReadCallback(IAsyncResult ar)
285
         {
159
         {
286
             int newLength = 1;
160
             int newLength = 1;
161
+            int index = -1;
287
 
162
 
288
             if (client.Connected)
163
             if (client.Connected)
289
             {
164
             {
299
                     Console.WriteLine("Connection to server dropped: " + e.ToString());
174
                     Console.WriteLine("Connection to server dropped: " + e.ToString());
300
                     return;
175
                     return;
301
                 }
176
                 }
177
+                catch (System.IO.IOException e)
178
+                {
179
+                    Console.WriteLine("Connection to server dropped: " + e.ToString());
180
+                    return;
181
+                }
302
 
182
 
303
-                //newLength = 1;
183
+                newLength = 1;
184
+                index = -1;
304
 
185
 
305
                 // if number of byte read is not 0, concatenate string and buffer
186
                 // if number of byte read is not 0, concatenate string and buffer
306
                 if (bytesRead > 0)
187
                 if (bytesRead > 0)
307
                 {
188
                 {
189
+                    //Console.WriteLine("Receive " + bytesRead + " data");
190
+
308
                     // Append new data to current string (expecting data are ascii)
191
                     // Append new data to current string (expecting data are ascii)
309
                     message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
192
                     message.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
193
+                    index = SearchCarriageReturn(buffer, bytesRead);
310
                 }
194
                 }
311
 
195
 
312
                 // if it remains received data, prepare for a new reading (get another buffer to append to current one)
196
                 // if it remains received data, prepare for a new reading (get another buffer to append to current one)
313
-                if (client.Available > 0)
197
+                if (index == -1)
314
                 {
198
                 {
315
-                    newLength = client.Available;
316
-                    if (newLength > BufferMaxSize) newLength = BufferMaxSize;
317
-                    else newLength = client.Available;
199
+                    if (client.Available > 0)
200
+                    {
201
+                        newLength = client.Available;
202
+                        if (newLength > BufferMaxSize) newLength = BufferMaxSize;
203
+                        else newLength = client.Available;
204
+                    }
318
                 }
205
                 }
319
                 else
206
                 else
320
                 {
207
                 {
208
+                    string s = message.ToString();
209
+
210
+                    //Console.WriteLine("Message received (" + s.Length + ")");
321
                     // no more data to read, buffer and string can be send to upper level
211
                     // no more data to read, buffer and string can be send to upper level
322
-                    readEvent?.Invoke(message.ToString());
212
+                    readEvent?.Invoke(s);
323
 
213
 
324
                     message.Clear();
214
                     message.Clear();
215
+
216
+                    if (index != bytesRead - 1)
217
+                    {
218
+                        //Console.WriteLine("Index not at end (" + index + "/" + bytesRead + ")");
219
+                        //Console.WriteLine("1=" + (char)buffer[index + 1] + " 2=" + (char)buffer[index + 2]);
220
+
221
+                        byte[] trailing=new byte[BufferMaxSize];
222
+
223
+                        Array.Copy(buffer, index + 1, trailing, 0, bytesRead - index - 1);
224
+                        message.Append(Encoding.ASCII.GetString(trailing, 0, bytesRead - index - 1));
225
+                    }
325
                 }
226
                 }
326
 
227
 
327
                 // Prepare for reading new data
228
                 // Prepare for reading new data
328
                 if (newLength> BufferMaxSize) newLength = BufferMaxSize;
229
                 if (newLength> BufferMaxSize) newLength = BufferMaxSize;
329
                 if (newLength <= 0) newLength = 1;
230
                 if (newLength <= 0) newLength = 1;
330
-                stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message);
231
+
232
+                try
233
+                {
234
+                    stream.BeginRead(buffer, 0, newLength, new AsyncCallback(ReadCallback), message);
235
+                }
236
+                catch (ObjectDisposedException e)
237
+                {
238
+                    Console.WriteLine("Connection to server dropped: " + e.ToString());
239
+                    return;
240
+                }
241
+                catch (System.IO.IOException e)
242
+                {
243
+                    Console.WriteLine("Connection to server dropped: " + e.ToString());
244
+                    return;
245
+                }
331
             }
246
             }
332
         }
247
         }
333
 
248
 
334
         /// <summary>
249
         /// <summary>
250
+        /// Searchs the carriage return.
251
+        /// </summary>
252
+        /// <returns>Index of carriage return, if present, -1 otherwise.</returns>
253
+        /// <param name="buf">Buffer of byte</param>
254
+        /// <param name="length">Length of buffer</param>
255
+        private static int SearchCarriageReturn(byte[] buf, int length)
256
+        {
257
+            int index = -1;
258
+            int i = 0;
259
+
260
+            for (i = 0; i < length; i++)
261
+            {
262
+                if (buf[i] == (byte)'\n') break;
263
+            }
264
+
265
+            if (i!= length) index = i;
266
+            return index;
267
+        }
268
+
269
+        /// <summary>
335
         /// Write a string to server
270
         /// Write a string to server
336
         /// </summary>
271
         /// </summary>
337
         /// <returns>Nothing</returns>
272
         /// <returns>Nothing</returns>

+ 80
- 48
software/monitor/monitor/MonitorUI.cs View File

26
 using Cairo;
26
 using Cairo;
27
 
27
 
28
 using monitor;
28
 using monitor;
29
+using System.Timers;
29
 
30
 
30
 /// <summary>
31
 /// <summary>
31
 /// Main part of the program, behavior of main window
32
 /// Main part of the program, behavior of main window
69
 
70
 
70
     private int imageReceivedCounter = 0;
71
     private int imageReceivedCounter = 0;
71
     private int badImageReceivedCounter = 0;
72
     private int badImageReceivedCounter = 0;
73
+    private int imageFPS = 0;
74
+    private int imageFPScounter = 0;
75
+
76
+    /// <summary>
77
+    /// Timer for FPS request
78
+    /// </summary>
79
+    private System.Timers.Timer fpsTimer;
72
 
80
 
73
     /// <summary>
81
     /// <summary>
74
     /// Initializes a new instance of the <see cref="MainWindow"/> class.
82
     /// Initializes a new instance of the <see cref="MainWindow"/> class.
83
         batteryTimer = new System.Timers.Timer(10000.0);
91
         batteryTimer = new System.Timers.Timer(10000.0);
84
         batteryTimer.Elapsed += OnBatteryTimerElapsed;
92
         batteryTimer.Elapsed += OnBatteryTimerElapsed;
85
 
93
 
94
+        // create new timer for FPS , every 1s
95
+        fpsTimer = new System.Timers.Timer(1000.0);
96
+        fpsTimer.Elapsed += OnFpsTimerElapsed;
97
+
86
         // Customize controls
98
         // Customize controls
87
         AdjustControls();
99
         AdjustControls();
88
     }
100
     }
126
 
138
 
127
                 checkButtonCameraOn.Active = false;
139
                 checkButtonCameraOn.Active = false;
128
                 checkButtonRobotPosition.Active = false;
140
                 checkButtonRobotPosition.Active = false;
141
+                checkButtonFPS.Active = false;
142
+
129
                 if (cmdManager != null) cmdManager.Close();
143
                 if (cmdManager != null) cmdManager.Close();
130
 
144
 
131
                 batteryTimer.Stop();
145
                 batteryTimer.Stop();
165
 
179
 
166
                 checkButtonCameraOn.Active = false;
180
                 checkButtonCameraOn.Active = false;
167
                 checkButtonRobotPosition.Active = false;
181
                 checkButtonRobotPosition.Active = false;
182
+                checkButtonFPS.Active = false;
168
 
183
 
169
                 systemState = SystemState.NotConnected;
184
                 systemState = SystemState.NotConnected;
170
 
185
 
183
     /// <param name="message">Message</param>
198
     /// <param name="message">Message</param>
184
     private void MessagePopup(MessageType type, ButtonsType buttons, string title, string message)
199
     private void MessagePopup(MessageType type, ButtonsType buttons, string title, string message)
185
     {
200
     {
186
-        MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, type, buttons, message)
187
-        {
188
-            Title = title
189
-        };
201
+        MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, type, buttons, message);
190
 
202
 
203
+        md.Title = title;
191
         md.Run();
204
         md.Run();
192
         md.Destroy();
205
         md.Destroy();
193
     }
206
     }
206
         a.RetVal = true;
219
         a.RetVal = true;
207
     }
220
     }
208
 
221
 
209
-    //private byte[] imageComplete;
210
-    //private byte[] imageInProgress;
211
-
212
     /// <summary>
222
     /// <summary>
213
     /// Callback called when new message is received from server
223
     /// Callback called when new message is received from server
214
     /// </summary>
224
     /// </summary>
215
     /// <param name="header">Header of message</param>
225
     /// <param name="header">Header of message</param>
216
     /// <param name="data">Data of message</param>
226
     /// <param name="data">Data of message</param>
217
-    /// <param name="buffer">Raw buffer corresponding of received message</param>
218
     public void OnCommandReceivedEvent(string header, string data)
227
     public void OnCommandReceivedEvent(string header, string data)
219
     {
228
     {
220
         if (header == null)
229
         if (header == null)
237
 #if DEBUG
246
 #if DEBUG
238
             // print message content
247
             // print message content
239
             if (header.Length > 4)
248
             if (header.Length > 4)
249
+            {
240
                 Console.WriteLine("Bad header(" + header.Length + ")");
250
                 Console.WriteLine("Bad header(" + header.Length + ")");
241
-            //else
242
-            //    Console.WriteLine("Received header (" + header.Length + "): " + header);
243
-            //if (header.ToUpper() != DestijlCommandList.HeaderStmImage)
244
-            //{
245
-            //    if (data != null) Console.WriteLine("Received data (" + data.Length + "): " + data);
246
-            //}
251
+            }
247
 #endif
252
 #endif
248
-            // Image management
249
-            //if (header == DestijlCommandList.CAMERA_IMAGE)
250
-            //{
251
-            //    imageComplete = imageInProgress;
252
-            //    //TODO: Decoder le base64 pour recuperer le JPG
253
-            //    imageInProgress = buffer;
254
-            //}
255
-            //else
256
-            //{
257
-            //    if (imageInProgress == null) imageInProgress = buffer;
258
-            //    else
259
-            //    {
260
-            //        Array.Resize<byte>(ref imageInProgress, imageInProgress.Length + buffer.Length);
261
-            //        System.Buffer.BlockCopy(buffer, 0, imageInProgress, imageInProgress.Length - buffer.Length, buffer.Length);
262
-            //    }
263
-            //}
264
-
265
-            // depending on message received (based on header)
266
-            // launch correponding action
253
+            // Depending on message received (based on header), launch correponding action
267
             header = header.ToUpper();
254
             header = header.ToUpper();
268
 
255
 
269
             if (header == DestijlCommandList.ROBOT_BATTERY_LEVEL)
256
             if (header == DestijlCommandList.ROBOT_BATTERY_LEVEL)
293
             }
280
             }
294
             else if (header == DestijlCommandList.CAMERA_IMAGE)
281
             else if (header == DestijlCommandList.CAMERA_IMAGE)
295
             {
282
             {
296
-                // if message is an image, convert it to a pixbuf
297
-                // that can be displayed
298
-                //if (imageComplete != null)
299
-                //{
300
-                //TODO: Decoder le base64 et convertir en JPG
301
-                byte[] image = Convert.FromBase64String(data);
302
-                //byte[] image = new byte[imageComplete.Length - 4];
303
-                //System.Buffer.BlockCopy(imageComplete, 4, image, 0, image.Length);
304
-
305
                 imageReceivedCounter++;
283
                 imageReceivedCounter++;
306
 
284
 
285
+                byte[] image = new byte[2];
286
+                try
287
+                {
288
+                    image = Convert.FromBase64String(data);
289
+                }
290
+                catch (FormatException)
291
+                {
292
+                    badImageReceivedCounter++;
293
+                    Console.WriteLine("Unable to convert from base64 ");
294
+                }
295
+
307
                 try
296
                 try
308
                 {
297
                 {
309
                     drawingareaCameraPixbuf = new Pixbuf(image);
298
                     drawingareaCameraPixbuf = new Pixbuf(image);
299
+                    imageFPScounter++;
310
 
300
 
311
                     Gtk.Application.Invoke(delegate
301
                     Gtk.Application.Invoke(delegate
312
                     {
302
                     {
326
             }
316
             }
327
             else if (header == DestijlCommandList.CAMERA_POSITION)
317
             else if (header == DestijlCommandList.CAMERA_POSITION)
328
             {
318
             {
329
-                //Console.WriteLine("Pos data: " + data);
330
-
331
                 position = DestijlCommandManager.DecodePosition(data);
319
                 position = DestijlCommandManager.DecodePosition(data);
332
-                //Console.WriteLine("decoded position: " + position.ToString());
333
 
320
 
334
                 Gtk.Application.Invoke(delegate
321
                 Gtk.Application.Invoke(delegate
335
                 {
322
                 {
728
             ((IDisposable)cr.GetTarget()).Dispose();
715
             ((IDisposable)cr.GetTarget()).Dispose();
729
             ((IDisposable)cr).Dispose();
716
             ((IDisposable)cr).Dispose();
730
         }
717
         }
718
+
719
+        if (checkButtonFPS.Active) {
720
+            Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow);
721
+            Cairo.Color textFontColor = new Cairo.Color(0.8, 0, 0);
722
+
723
+            cr.SelectFontFace("Cantarell", FontSlant.Normal, FontWeight.Bold);
724
+            cr.SetSourceColor(textFontColor);
725
+            cr.SetFontSize(16);
726
+
727
+            string text = "FPS= " + imageFPS.ToString() ;
728
+            TextExtents te = cr.TextExtents(text);
729
+            cr.MoveTo( 10,10 + te.Height);
730
+            cr.ShowText(text);
731
+
732
+            ((IDisposable)cr.GetTarget()).Dispose();
733
+            ((IDisposable)cr).Dispose();
734
+        }
731
     }
735
     }
732
 
736
 
733
     /// <summary>
737
     /// <summary>
738
         DestijlCommandManager.CommandStatus status;
742
         DestijlCommandManager.CommandStatus status;
739
         MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent,
743
         MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent,
740
                                              MessageType.Question, ButtonsType.YesNo, "Arena is correct ?");
744
                                              MessageType.Question, ButtonsType.YesNo, "Arena is correct ?");
741
-        {
742
-            Title = "Check arena";
743
-        };
745
+
746
+        md.Title = "Check arena";
744
 
747
 
745
         ResponseType result = (ResponseType)md.Run();
748
         ResponseType result = (ResponseType)md.Run();
746
         md.Destroy();
749
         md.Destroy();
781
         // show popup and wait for user to say if arena is ok or not 
784
         // show popup and wait for user to say if arena is ok or not 
782
         DetectArena();
785
         DetectArena();
783
     }
786
     }
787
+
788
+    protected void OnCheckButtonFPSToggled(object sender, EventArgs e)
789
+    {
790
+        if (checkButtonFPS.Active) { // User ask for FPS
791
+            imageFPS = 0;
792
+            imageFPScounter = 0;
793
+
794
+            fpsTimer.Start();
795
+        }
796
+        else { // stop computing FPS
797
+            fpsTimer.Stop();
798
+
799
+            Gtk.Application.Invoke(delegate
800
+            {
801
+                drawingAreaCamera.QueueDraw();
802
+            });
803
+        }
804
+    }
805
+
806
+    private void OnFpsTimerElapsed(object sender, ElapsedEventArgs e)
807
+    {
808
+        imageFPS = imageFPScounter;
809
+        imageFPScounter = 0;
810
+
811
+        Gtk.Application.Invoke(delegate
812
+        {
813
+            drawingAreaCamera.QueueDraw();
814
+        });
815
+    }
784
 }
816
 }

+ 207
- 185
software/monitor/monitor/gtk-gui/MainWindow.cs View File

21
 
21
 
22
 	private global::Gtk.VBox boxCamera;
22
 	private global::Gtk.VBox boxCamera;
23
 
23
 
24
+	private global::Gtk.HBox hbox2;
25
+
24
 	private global::Gtk.Alignment alignment1;
26
 	private global::Gtk.Alignment alignment1;
25
 
27
 
26
-	private global::Gtk.HBox hbox2;
28
+	private global::Gtk.HBox hbox5;
27
 
29
 
28
 	private global::Gtk.CheckButton checkButtonCameraOn;
30
 	private global::Gtk.CheckButton checkButtonCameraOn;
29
 
31
 
30
 	private global::Gtk.CheckButton checkButtonRobotPosition;
32
 	private global::Gtk.CheckButton checkButtonRobotPosition;
31
 
33
 
34
+	private global::Gtk.CheckButton checkButtonFPS;
35
+
32
 	private global::Gtk.Button buttonAskArena;
36
 	private global::Gtk.Button buttonAskArena;
33
 
37
 
34
 	private global::Gtk.DrawingArea drawingAreaCamera;
38
 	private global::Gtk.DrawingArea drawingAreaCamera;
170
 		this.boxCamera.Name = "boxCamera";
174
 		this.boxCamera.Name = "boxCamera";
171
 		this.boxCamera.Spacing = 6;
175
 		this.boxCamera.Spacing = 6;
172
 		// Container child boxCamera.Gtk.Box+BoxChild
176
 		// Container child boxCamera.Gtk.Box+BoxChild
173
-		this.alignment1 = new global::Gtk.Alignment(0F, 0.5F, 0F, 1F);
174
-		this.alignment1.Name = "alignment1";
175
-		this.alignment1.BorderWidth = ((uint)(6));
176
-		// Container child alignment1.Gtk.Container+ContainerChild
177
 		this.hbox2 = new global::Gtk.HBox();
177
 		this.hbox2 = new global::Gtk.HBox();
178
 		this.hbox2.Name = "hbox2";
178
 		this.hbox2.Name = "hbox2";
179
 		this.hbox2.Spacing = 6;
179
 		this.hbox2.Spacing = 6;
180
 		// Container child hbox2.Gtk.Box+BoxChild
180
 		// Container child hbox2.Gtk.Box+BoxChild
181
+		this.alignment1 = new global::Gtk.Alignment(0F, 0.5F, 0F, 1F);
182
+		this.alignment1.Name = "alignment1";
183
+		this.alignment1.BorderWidth = ((uint)(6));
184
+		// Container child alignment1.Gtk.Container+ContainerChild
185
+		this.hbox5 = new global::Gtk.HBox();
186
+		this.hbox5.Name = "hbox5";
187
+		this.hbox5.Spacing = 6;
188
+		// Container child hbox5.Gtk.Box+BoxChild
181
 		this.checkButtonCameraOn = new global::Gtk.CheckButton();
189
 		this.checkButtonCameraOn = new global::Gtk.CheckButton();
182
 		this.checkButtonCameraOn.CanFocus = true;
190
 		this.checkButtonCameraOn.CanFocus = true;
183
 		this.checkButtonCameraOn.Name = "checkButtonCameraOn";
191
 		this.checkButtonCameraOn.Name = "checkButtonCameraOn";
184
 		this.checkButtonCameraOn.Label = global::Mono.Unix.Catalog.GetString("Camera On");
192
 		this.checkButtonCameraOn.Label = global::Mono.Unix.Catalog.GetString("Camera On");
185
 		this.checkButtonCameraOn.DrawIndicator = true;
193
 		this.checkButtonCameraOn.DrawIndicator = true;
186
 		this.checkButtonCameraOn.UseUnderline = true;
194
 		this.checkButtonCameraOn.UseUnderline = true;
187
-		this.hbox2.Add(this.checkButtonCameraOn);
188
-		global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.checkButtonCameraOn]));
195
+		this.hbox5.Add(this.checkButtonCameraOn);
196
+		global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonCameraOn]));
189
 		w3.Position = 0;
197
 		w3.Position = 0;
190
-		// Container child hbox2.Gtk.Box+BoxChild
198
+		// Container child hbox5.Gtk.Box+BoxChild
191
 		this.checkButtonRobotPosition = new global::Gtk.CheckButton();
199
 		this.checkButtonRobotPosition = new global::Gtk.CheckButton();
192
 		this.checkButtonRobotPosition.CanFocus = true;
200
 		this.checkButtonRobotPosition.CanFocus = true;
193
 		this.checkButtonRobotPosition.Name = "checkButtonRobotPosition";
201
 		this.checkButtonRobotPosition.Name = "checkButtonRobotPosition";
194
-		this.checkButtonRobotPosition.Label = global::Mono.Unix.Catalog.GetString("Robot Position");
202
+		this.checkButtonRobotPosition.Label = global::Mono.Unix.Catalog.GetString("Show Position");
195
 		this.checkButtonRobotPosition.DrawIndicator = true;
203
 		this.checkButtonRobotPosition.DrawIndicator = true;
196
 		this.checkButtonRobotPosition.UseUnderline = true;
204
 		this.checkButtonRobotPosition.UseUnderline = true;
197
-		this.hbox2.Add(this.checkButtonRobotPosition);
198
-		global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.checkButtonRobotPosition]));
205
+		this.hbox5.Add(this.checkButtonRobotPosition);
206
+		global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonRobotPosition]));
199
 		w4.Position = 1;
207
 		w4.Position = 1;
208
+		// Container child hbox5.Gtk.Box+BoxChild
209
+		this.checkButtonFPS = new global::Gtk.CheckButton();
210
+		this.checkButtonFPS.CanFocus = true;
211
+		this.checkButtonFPS.Name = "checkButtonFPS";
212
+		this.checkButtonFPS.Label = global::Mono.Unix.Catalog.GetString("Show FPS");
213
+		this.checkButtonFPS.DrawIndicator = true;
214
+		this.checkButtonFPS.UseUnderline = true;
215
+		this.hbox5.Add(this.checkButtonFPS);
216
+		global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox5[this.checkButtonFPS]));
217
+		w5.Position = 2;
218
+		this.alignment1.Add(this.hbox5);
219
+		this.hbox2.Add(this.alignment1);
220
+		global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.alignment1]));
221
+		w7.Position = 0;
200
 		// Container child hbox2.Gtk.Box+BoxChild
222
 		// Container child hbox2.Gtk.Box+BoxChild
201
 		this.buttonAskArena = new global::Gtk.Button();
223
 		this.buttonAskArena = new global::Gtk.Button();
202
 		this.buttonAskArena.CanFocus = true;
224
 		this.buttonAskArena.CanFocus = true;
204
 		this.buttonAskArena.UseUnderline = true;
226
 		this.buttonAskArena.UseUnderline = true;
205
 		this.buttonAskArena.Label = global::Mono.Unix.Catalog.GetString("Ask Arena...");
227
 		this.buttonAskArena.Label = global::Mono.Unix.Catalog.GetString("Ask Arena...");
206
 		this.hbox2.Add(this.buttonAskArena);
228
 		this.hbox2.Add(this.buttonAskArena);
207
-		global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.buttonAskArena]));
208
-		w5.PackType = ((global::Gtk.PackType)(1));
209
-		w5.Position = 2;
210
-		w5.Expand = false;
211
-		w5.Fill = false;
212
-		this.alignment1.Add(this.hbox2);
213
-		this.boxCamera.Add(this.alignment1);
214
-		global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.alignment1]));
215
-		w7.Position = 0;
216
-		w7.Expand = false;
217
-		w7.Fill = false;
229
+		global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2[this.buttonAskArena]));
230
+		w8.Position = 2;
231
+		w8.Expand = false;
232
+		w8.Fill = false;
233
+		this.boxCamera.Add(this.hbox2);
234
+		global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.hbox2]));
235
+		w9.Position = 0;
236
+		w9.Expand = false;
237
+		w9.Fill = false;
218
 		// Container child boxCamera.Gtk.Box+BoxChild
238
 		// Container child boxCamera.Gtk.Box+BoxChild
219
 		this.drawingAreaCamera = new global::Gtk.DrawingArea();
239
 		this.drawingAreaCamera = new global::Gtk.DrawingArea();
220
 		this.drawingAreaCamera.Name = "drawingAreaCamera";
240
 		this.drawingAreaCamera.Name = "drawingAreaCamera";
221
 		this.boxCamera.Add(this.drawingAreaCamera);
241
 		this.boxCamera.Add(this.drawingAreaCamera);
222
-		global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.drawingAreaCamera]));
223
-		w8.Position = 1;
242
+		global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.boxCamera[this.drawingAreaCamera]));
243
+		w10.Position = 1;
224
 		this.hbox1.Add(this.boxCamera);
244
 		this.hbox1.Add(this.boxCamera);
225
-		global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.boxCamera]));
226
-		w9.Position = 0;
245
+		global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.boxCamera]));
246
+		w11.Position = 0;
227
 		// Container child hbox1.Gtk.Box+BoxChild
247
 		// Container child hbox1.Gtk.Box+BoxChild
228
 		this.hbox3 = new global::Gtk.HBox();
248
 		this.hbox3 = new global::Gtk.HBox();
229
 		this.hbox3.Name = "hbox3";
249
 		this.hbox3.Name = "hbox3";
232
 		this.vseparator1 = new global::Gtk.VSeparator();
252
 		this.vseparator1 = new global::Gtk.VSeparator();
233
 		this.vseparator1.Name = "vseparator1";
253
 		this.vseparator1.Name = "vseparator1";
234
 		this.hbox3.Add(this.vseparator1);
254
 		this.hbox3.Add(this.vseparator1);
235
-		global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vseparator1]));
236
-		w10.Position = 0;
237
-		w10.Expand = false;
238
-		w10.Fill = false;
255
+		global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.vseparator1]));
256
+		w12.Position = 0;
257
+		w12.Expand = false;
258
+		w12.Fill = false;
239
 		// Container child hbox3.Gtk.Box+BoxChild
259
 		// Container child hbox3.Gtk.Box+BoxChild
240
 		this.alignment3 = new global::Gtk.Alignment(1F, 0F, 0F, 0F);
260
 		this.alignment3 = new global::Gtk.Alignment(1F, 0F, 0F, 0F);
241
 		this.alignment3.Name = "alignment3";
261
 		this.alignment3.Name = "alignment3";
255
 		this.labelServer.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Server connection</u></b>");
275
 		this.labelServer.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Server connection</u></b>");
256
 		this.labelServer.UseMarkup = true;
276
 		this.labelServer.UseMarkup = true;
257
 		this.vbox10.Add(this.labelServer);
277
 		this.vbox10.Add(this.labelServer);
258
-		global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.labelServer]));
259
-		w11.Position = 0;
260
-		w11.Expand = false;
261
-		w11.Fill = false;
278
+		global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.labelServer]));
279
+		w13.Position = 0;
280
+		w13.Expand = false;
281
+		w13.Fill = false;
262
 		// Container child vbox10.Gtk.Box+BoxChild
282
 		// Container child vbox10.Gtk.Box+BoxChild
263
 		this.gtkAlignmentServer = new global::Gtk.Alignment(0F, 0F, 1F, 1F);
283
 		this.gtkAlignmentServer = new global::Gtk.Alignment(0F, 0F, 1F, 1F);
264
 		this.gtkAlignmentServer.Name = "gtkAlignmentServer";
284
 		this.gtkAlignmentServer.Name = "gtkAlignmentServer";
279
 		this.entryServerName.IsEditable = true;
299
 		this.entryServerName.IsEditable = true;
280
 		this.entryServerName.InvisibleChar = '●';
300
 		this.entryServerName.InvisibleChar = '●';
281
 		this.table1.Add(this.entryServerName);
301
 		this.table1.Add(this.entryServerName);
282
-		global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerName]));
283
-		w12.LeftAttach = ((uint)(1));
284
-		w12.RightAttach = ((uint)(2));
285
-		w12.YOptions = ((global::Gtk.AttachOptions)(4));
302
+		global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerName]));
303
+		w14.LeftAttach = ((uint)(1));
304
+		w14.RightAttach = ((uint)(2));
305
+		w14.YOptions = ((global::Gtk.AttachOptions)(4));
286
 		// Container child table1.Gtk.Table+TableChild
306
 		// Container child table1.Gtk.Table+TableChild
287
 		this.entryServerPort = new global::Gtk.Entry();
307
 		this.entryServerPort = new global::Gtk.Entry();
288
 		this.entryServerPort.CanFocus = true;
308
 		this.entryServerPort.CanFocus = true;
290
 		this.entryServerPort.IsEditable = true;
310
 		this.entryServerPort.IsEditable = true;
291
 		this.entryServerPort.InvisibleChar = '●';
311
 		this.entryServerPort.InvisibleChar = '●';
292
 		this.table1.Add(this.entryServerPort);
312
 		this.table1.Add(this.entryServerPort);
293
-		global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerPort]));
294
-		w13.TopAttach = ((uint)(1));
295
-		w13.BottomAttach = ((uint)(2));
296
-		w13.LeftAttach = ((uint)(1));
297
-		w13.RightAttach = ((uint)(2));
298
-		w13.YOptions = ((global::Gtk.AttachOptions)(4));
313
+		global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.entryServerPort]));
314
+		w15.TopAttach = ((uint)(1));
315
+		w15.BottomAttach = ((uint)(2));
316
+		w15.LeftAttach = ((uint)(1));
317
+		w15.RightAttach = ((uint)(2));
318
+		w15.YOptions = ((global::Gtk.AttachOptions)(4));
299
 		// Container child table1.Gtk.Table+TableChild
319
 		// Container child table1.Gtk.Table+TableChild
300
 		this.entryTimeout = new global::Gtk.Entry();
320
 		this.entryTimeout = new global::Gtk.Entry();
301
 		this.entryTimeout.CanFocus = true;
321
 		this.entryTimeout.CanFocus = true;
303
 		this.entryTimeout.IsEditable = true;
323
 		this.entryTimeout.IsEditable = true;
304
 		this.entryTimeout.InvisibleChar = '●';
324
 		this.entryTimeout.InvisibleChar = '●';
305
 		this.table1.Add(this.entryTimeout);
325
 		this.table1.Add(this.entryTimeout);
306
-		global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1[this.entryTimeout]));
307
-		w14.TopAttach = ((uint)(2));
308
-		w14.BottomAttach = ((uint)(3));
309
-		w14.LeftAttach = ((uint)(1));
310
-		w14.RightAttach = ((uint)(2));
311
-		w14.YOptions = ((global::Gtk.AttachOptions)(4));
326
+		global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.entryTimeout]));
327
+		w16.TopAttach = ((uint)(2));
328
+		w16.BottomAttach = ((uint)(3));
329
+		w16.LeftAttach = ((uint)(1));
330
+		w16.RightAttach = ((uint)(2));
331
+		w16.YOptions = ((global::Gtk.AttachOptions)(4));
312
 		// Container child table1.Gtk.Table+TableChild
332
 		// Container child table1.Gtk.Table+TableChild
313
 		this.label1 = new global::Gtk.Label();
333
 		this.label1 = new global::Gtk.Label();
314
 		this.label1.Name = "label1";
334
 		this.label1.Name = "label1";
316
 		this.label1.LabelProp = global::Mono.Unix.Catalog.GetString("Server name:");
336
 		this.label1.LabelProp = global::Mono.Unix.Catalog.GetString("Server name:");
317
 		this.label1.Justify = ((global::Gtk.Justification)(1));
337
 		this.label1.Justify = ((global::Gtk.Justification)(1));
318
 		this.table1.Add(this.label1);
338
 		this.table1.Add(this.label1);
319
-		global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1[this.label1]));
320
-		w15.XOptions = ((global::Gtk.AttachOptions)(4));
321
-		w15.YOptions = ((global::Gtk.AttachOptions)(4));
339
+		global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.label1]));
340
+		w17.XOptions = ((global::Gtk.AttachOptions)(4));
341
+		w17.YOptions = ((global::Gtk.AttachOptions)(4));
322
 		// Container child table1.Gtk.Table+TableChild
342
 		// Container child table1.Gtk.Table+TableChild
323
 		this.label2 = new global::Gtk.Label();
343
 		this.label2 = new global::Gtk.Label();
324
 		this.label2.Name = "label2";
344
 		this.label2.Name = "label2";
326
 		this.label2.LabelProp = global::Mono.Unix.Catalog.GetString("Server port:");
346
 		this.label2.LabelProp = global::Mono.Unix.Catalog.GetString("Server port:");
327
 		this.label2.Justify = ((global::Gtk.Justification)(1));
347
 		this.label2.Justify = ((global::Gtk.Justification)(1));
328
 		this.table1.Add(this.label2);
348
 		this.table1.Add(this.label2);
329
-		global::Gtk.Table.TableChild w16 = ((global::Gtk.Table.TableChild)(this.table1[this.label2]));
330
-		w16.TopAttach = ((uint)(1));
331
-		w16.BottomAttach = ((uint)(2));
332
-		w16.XOptions = ((global::Gtk.AttachOptions)(4));
333
-		w16.YOptions = ((global::Gtk.AttachOptions)(4));
349
+		global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table1[this.label2]));
350
+		w18.TopAttach = ((uint)(1));
351
+		w18.BottomAttach = ((uint)(2));
352
+		w18.XOptions = ((global::Gtk.AttachOptions)(4));
353
+		w18.YOptions = ((global::Gtk.AttachOptions)(4));
334
 		// Container child table1.Gtk.Table+TableChild
354
 		// Container child table1.Gtk.Table+TableChild
335
 		this.label5 = new global::Gtk.Label();
355
 		this.label5 = new global::Gtk.Label();
336
 		this.label5.Name = "label5";
356
 		this.label5.Name = "label5";
337
 		this.label5.LabelProp = global::Mono.Unix.Catalog.GetString("Timeout (ms):");
357
 		this.label5.LabelProp = global::Mono.Unix.Catalog.GetString("Timeout (ms):");
338
 		this.table1.Add(this.label5);
358
 		this.table1.Add(this.label5);
339
-		global::Gtk.Table.TableChild w17 = ((global::Gtk.Table.TableChild)(this.table1[this.label5]));
340
-		w17.TopAttach = ((uint)(2));
341
-		w17.BottomAttach = ((uint)(3));
342
-		w17.XOptions = ((global::Gtk.AttachOptions)(4));
343
-		w17.YOptions = ((global::Gtk.AttachOptions)(4));
359
+		global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table1[this.label5]));
360
+		w19.TopAttach = ((uint)(2));
361
+		w19.BottomAttach = ((uint)(3));
362
+		w19.XOptions = ((global::Gtk.AttachOptions)(4));
363
+		w19.YOptions = ((global::Gtk.AttachOptions)(4));
344
 		this.vbox6.Add(this.table1);
364
 		this.vbox6.Add(this.table1);
345
-		global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.table1]));
346
-		w18.Position = 0;
347
-		w18.Expand = false;
348
-		w18.Fill = false;
365
+		global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.table1]));
366
+		w20.Position = 0;
367
+		w20.Expand = false;
368
+		w20.Fill = false;
349
 		// Container child vbox6.Gtk.Box+BoxChild
369
 		// Container child vbox6.Gtk.Box+BoxChild
350
 		this.buttonServerConnection = new global::Gtk.Button();
370
 		this.buttonServerConnection = new global::Gtk.Button();
351
 		this.buttonServerConnection.CanFocus = true;
371
 		this.buttonServerConnection.CanFocus = true;
353
 		this.buttonServerConnection.UseUnderline = true;
373
 		this.buttonServerConnection.UseUnderline = true;
354
 		this.buttonServerConnection.Label = global::Mono.Unix.Catalog.GetString("Connect");
374
 		this.buttonServerConnection.Label = global::Mono.Unix.Catalog.GetString("Connect");
355
 		this.vbox6.Add(this.buttonServerConnection);
375
 		this.vbox6.Add(this.buttonServerConnection);
356
-		global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.buttonServerConnection]));
357
-		w19.PackType = ((global::Gtk.PackType)(1));
358
-		w19.Position = 1;
359
-		w19.Expand = false;
360
-		w19.Fill = false;
361
-		this.gtkAlignmentServer.Add(this.vbox6);
362
-		this.vbox10.Add(this.gtkAlignmentServer);
363
-		global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.gtkAlignmentServer]));
376
+		global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox6[this.buttonServerConnection]));
377
+		w21.PackType = ((global::Gtk.PackType)(1));
364
 		w21.Position = 1;
378
 		w21.Position = 1;
365
 		w21.Expand = false;
379
 		w21.Expand = false;
366
 		w21.Fill = false;
380
 		w21.Fill = false;
381
+		this.gtkAlignmentServer.Add(this.vbox6);
382
+		this.vbox10.Add(this.gtkAlignmentServer);
383
+		global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox10[this.gtkAlignmentServer]));
384
+		w23.Position = 1;
385
+		w23.Expand = false;
386
+		w23.Fill = false;
367
 		this.vbox5.Add(this.vbox10);
387
 		this.vbox5.Add(this.vbox10);
368
-		global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox10]));
369
-		w22.Position = 0;
370
-		w22.Expand = false;
371
-		w22.Fill = false;
388
+		global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox10]));
389
+		w24.Position = 0;
390
+		w24.Expand = false;
391
+		w24.Fill = false;
372
 		// Container child vbox5.Gtk.Box+BoxChild
392
 		// Container child vbox5.Gtk.Box+BoxChild
373
 		this.hseparator1 = new global::Gtk.HSeparator();
393
 		this.hseparator1 = new global::Gtk.HSeparator();
374
 		this.hseparator1.Name = "hseparator1";
394
 		this.hseparator1.Name = "hseparator1";
375
 		this.vbox5.Add(this.hseparator1);
395
 		this.vbox5.Add(this.hseparator1);
376
-		global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator1]));
377
-		w23.Position = 1;
378
-		w23.Expand = false;
379
-		w23.Fill = false;
396
+		global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator1]));
397
+		w25.Position = 1;
398
+		w25.Expand = false;
399
+		w25.Fill = false;
380
 		// Container child vbox5.Gtk.Box+BoxChild
400
 		// Container child vbox5.Gtk.Box+BoxChild
381
 		this.vbox11 = new global::Gtk.VBox();
401
 		this.vbox11 = new global::Gtk.VBox();
382
 		this.vbox11.Name = "vbox11";
402
 		this.vbox11.Name = "vbox11";
388
 		this.labelRobot.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Activation</u></b>");
408
 		this.labelRobot.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Activation</u></b>");
389
 		this.labelRobot.UseMarkup = true;
409
 		this.labelRobot.UseMarkup = true;
390
 		this.vbox11.Add(this.labelRobot);
410
 		this.vbox11.Add(this.labelRobot);
391
-		global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.labelRobot]));
392
-		w24.Position = 0;
393
-		w24.Expand = false;
394
-		w24.Fill = false;
411
+		global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.labelRobot]));
412
+		w26.Position = 0;
413
+		w26.Expand = false;
414
+		w26.Fill = false;
395
 		// Container child vbox11.Gtk.Box+BoxChild
415
 		// Container child vbox11.Gtk.Box+BoxChild
396
 		this.alignment9 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F);
416
 		this.alignment9 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F);
397
 		this.alignment9.Name = "alignment9";
417
 		this.alignment9.Name = "alignment9";
418
 		this.radioButtonWithWatchdog.UseUnderline = true;
438
 		this.radioButtonWithWatchdog.UseUnderline = true;
419
 		this.radioButtonWithWatchdog.Group = new global::GLib.SList(global::System.IntPtr.Zero);
439
 		this.radioButtonWithWatchdog.Group = new global::GLib.SList(global::System.IntPtr.Zero);
420
 		this.hbox4.Add(this.radioButtonWithWatchdog);
440
 		this.hbox4.Add(this.radioButtonWithWatchdog);
421
-		global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithWatchdog]));
422
-		w25.Position = 0;
441
+		global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithWatchdog]));
442
+		w27.Position = 0;
423
 		// Container child hbox4.Gtk.Box+BoxChild
443
 		// Container child hbox4.Gtk.Box+BoxChild
424
 		this.radioButtonWithoutWatchdog = new global::Gtk.RadioButton(global::Mono.Unix.Catalog.GetString("without watchdog"));
444
 		this.radioButtonWithoutWatchdog = new global::Gtk.RadioButton(global::Mono.Unix.Catalog.GetString("without watchdog"));
425
 		this.radioButtonWithoutWatchdog.CanFocus = true;
445
 		this.radioButtonWithoutWatchdog.CanFocus = true;
428
 		this.radioButtonWithoutWatchdog.UseUnderline = true;
448
 		this.radioButtonWithoutWatchdog.UseUnderline = true;
429
 		this.radioButtonWithoutWatchdog.Group = this.radioButtonWithWatchdog.Group;
449
 		this.radioButtonWithoutWatchdog.Group = this.radioButtonWithWatchdog.Group;
430
 		this.hbox4.Add(this.radioButtonWithoutWatchdog);
450
 		this.hbox4.Add(this.radioButtonWithoutWatchdog);
431
-		global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithoutWatchdog]));
432
-		w26.Position = 1;
451
+		global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.hbox4[this.radioButtonWithoutWatchdog]));
452
+		w28.Position = 1;
433
 		this.alignment6.Add(this.hbox4);
453
 		this.alignment6.Add(this.hbox4);
434
 		this.vbox8.Add(this.alignment6);
454
 		this.vbox8.Add(this.alignment6);
435
-		global::Gtk.Box.BoxChild w28 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment6]));
436
-		w28.Position = 0;
437
-		w28.Expand = false;
438
-		w28.Fill = false;
455
+		global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment6]));
456
+		w30.Position = 0;
457
+		w30.Expand = false;
458
+		w30.Fill = false;
439
 		// Container child vbox8.Gtk.Box+BoxChild
459
 		// Container child vbox8.Gtk.Box+BoxChild
440
 		this.alignment5 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F);
460
 		this.alignment5 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F);
441
 		this.alignment5.Name = "alignment5";
461
 		this.alignment5.Name = "alignment5";
451
 		this.alignment7.Add(this.buttonRobotActivation);
471
 		this.alignment7.Add(this.buttonRobotActivation);
452
 		this.alignment5.Add(this.alignment7);
472
 		this.alignment5.Add(this.alignment7);
453
 		this.vbox8.Add(this.alignment5);
473
 		this.vbox8.Add(this.alignment5);
454
-		global::Gtk.Box.BoxChild w31 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment5]));
455
-		w31.Position = 1;
456
-		w31.Expand = false;
457
-		w31.Fill = false;
474
+		global::Gtk.Box.BoxChild w33 = ((global::Gtk.Box.BoxChild)(this.vbox8[this.alignment5]));
475
+		w33.Position = 1;
476
+		w33.Expand = false;
477
+		w33.Fill = false;
458
 		this.gtkAlignmentRobot.Add(this.vbox8);
478
 		this.gtkAlignmentRobot.Add(this.vbox8);
459
 		this.alignment9.Add(this.gtkAlignmentRobot);
479
 		this.alignment9.Add(this.gtkAlignmentRobot);
460
 		this.vbox11.Add(this.alignment9);
480
 		this.vbox11.Add(this.alignment9);
461
-		global::Gtk.Box.BoxChild w34 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.alignment9]));
462
-		w34.Position = 1;
463
-		w34.Expand = false;
464
-		w34.Fill = false;
481
+		global::Gtk.Box.BoxChild w36 = ((global::Gtk.Box.BoxChild)(this.vbox11[this.alignment9]));
482
+		w36.Position = 1;
483
+		w36.Expand = false;
484
+		w36.Fill = false;
465
 		this.vbox5.Add(this.vbox11);
485
 		this.vbox5.Add(this.vbox11);
466
-		global::Gtk.Box.BoxChild w35 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox11]));
467
-		w35.Position = 2;
468
-		w35.Expand = false;
469
-		w35.Fill = false;
486
+		global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox11]));
487
+		w37.Position = 2;
488
+		w37.Expand = false;
489
+		w37.Fill = false;
470
 		// Container child vbox5.Gtk.Box+BoxChild
490
 		// Container child vbox5.Gtk.Box+BoxChild
471
 		this.hseparator2 = new global::Gtk.HSeparator();
491
 		this.hseparator2 = new global::Gtk.HSeparator();
472
 		this.hseparator2.Name = "hseparator2";
492
 		this.hseparator2.Name = "hseparator2";
473
 		this.vbox5.Add(this.hseparator2);
493
 		this.vbox5.Add(this.hseparator2);
474
-		global::Gtk.Box.BoxChild w36 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator2]));
475
-		w36.Position = 3;
476
-		w36.Expand = false;
477
-		w36.Fill = false;
494
+		global::Gtk.Box.BoxChild w38 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.hseparator2]));
495
+		w38.Position = 3;
496
+		w38.Expand = false;
497
+		w38.Fill = false;
478
 		// Container child vbox5.Gtk.Box+BoxChild
498
 		// Container child vbox5.Gtk.Box+BoxChild
479
 		this.vbox12 = new global::Gtk.VBox();
499
 		this.vbox12 = new global::Gtk.VBox();
480
 		this.vbox12.Name = "vbox12";
500
 		this.vbox12.Name = "vbox12";
486
 		this.labelRobotControl.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Controls and Status</u></b>");
506
 		this.labelRobotControl.LabelProp = global::Mono.Unix.Catalog.GetString("<b><u>Robot Controls and Status</u></b>");
487
 		this.labelRobotControl.UseMarkup = true;
507
 		this.labelRobotControl.UseMarkup = true;
488
 		this.vbox12.Add(this.labelRobotControl);
508
 		this.vbox12.Add(this.labelRobotControl);
489
-		global::Gtk.Box.BoxChild w37 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.labelRobotControl]));
490
-		w37.Position = 0;
491
-		w37.Expand = false;
492
-		w37.Fill = false;
509
+		global::Gtk.Box.BoxChild w39 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.labelRobotControl]));
510
+		w39.Position = 0;
511
+		w39.Expand = false;
512
+		w39.Fill = false;
493
 		// Container child vbox12.Gtk.Box+BoxChild
513
 		// Container child vbox12.Gtk.Box+BoxChild
494
 		this.gtkAlignmentRobotControl = new global::Gtk.Alignment(0F, 0F, 1F, 1F);
514
 		this.gtkAlignmentRobotControl = new global::Gtk.Alignment(0F, 0F, 1F, 1F);
495
 		this.gtkAlignmentRobotControl.Name = "gtkAlignmentRobotControl";
515
 		this.gtkAlignmentRobotControl.Name = "gtkAlignmentRobotControl";
511
 		this.buttonDown.CanFocus = true;
531
 		this.buttonDown.CanFocus = true;
512
 		this.buttonDown.Name = "buttonDown";
532
 		this.buttonDown.Name = "buttonDown";
513
 		this.buttonDown.UseUnderline = true;
533
 		this.buttonDown.UseUnderline = true;
514
-		global::Gtk.Image w38 = new global::Gtk.Image();
515
-		w38.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png");
516
-		this.buttonDown.Image = w38;
534
+		global::Gtk.Image w40 = new global::Gtk.Image();
535
+		w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png");
536
+		this.buttonDown.Image = w40;
517
 		this.table4.Add(this.buttonDown);
537
 		this.table4.Add(this.buttonDown);
518
-		global::Gtk.Table.TableChild w39 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown]));
519
-		w39.TopAttach = ((uint)(2));
520
-		w39.BottomAttach = ((uint)(3));
521
-		w39.LeftAttach = ((uint)(1));
522
-		w39.RightAttach = ((uint)(2));
523
-		w39.XOptions = ((global::Gtk.AttachOptions)(4));
524
-		w39.YOptions = ((global::Gtk.AttachOptions)(4));
538
+		global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown]));
539
+		w41.TopAttach = ((uint)(2));
540
+		w41.BottomAttach = ((uint)(3));
541
+		w41.LeftAttach = ((uint)(1));
542
+		w41.RightAttach = ((uint)(2));
543
+		w41.XOptions = ((global::Gtk.AttachOptions)(4));
544
+		w41.YOptions = ((global::Gtk.AttachOptions)(4));
525
 		// Container child table4.Gtk.Table+TableChild
545
 		// Container child table4.Gtk.Table+TableChild
526
 		this.buttonForward = new global::Gtk.Button();
546
 		this.buttonForward = new global::Gtk.Button();
527
 		this.buttonForward.CanFocus = true;
547
 		this.buttonForward.CanFocus = true;
528
 		this.buttonForward.Name = "buttonForward";
548
 		this.buttonForward.Name = "buttonForward";
529
 		this.buttonForward.UseUnderline = true;
549
 		this.buttonForward.UseUnderline = true;
530
-		global::Gtk.Image w40 = new global::Gtk.Image();
531
-		w40.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png");
532
-		this.buttonForward.Image = w40;
550
+		global::Gtk.Image w42 = new global::Gtk.Image();
551
+		w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png");
552
+		this.buttonForward.Image = w42;
533
 		this.table4.Add(this.buttonForward);
553
 		this.table4.Add(this.buttonForward);
534
-		global::Gtk.Table.TableChild w41 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward]));
535
-		w41.LeftAttach = ((uint)(1));
536
-		w41.RightAttach = ((uint)(2));
537
-		w41.XOptions = ((global::Gtk.AttachOptions)(4));
538
-		w41.YOptions = ((global::Gtk.AttachOptions)(4));
554
+		global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward]));
555
+		w43.LeftAttach = ((uint)(1));
556
+		w43.RightAttach = ((uint)(2));
557
+		w43.XOptions = ((global::Gtk.AttachOptions)(4));
558
+		w43.YOptions = ((global::Gtk.AttachOptions)(4));
539
 		// Container child table4.Gtk.Table+TableChild
559
 		// Container child table4.Gtk.Table+TableChild
540
 		this.buttonLeft = new global::Gtk.Button();
560
 		this.buttonLeft = new global::Gtk.Button();
541
 		this.buttonLeft.CanFocus = true;
561
 		this.buttonLeft.CanFocus = true;
542
 		this.buttonLeft.Name = "buttonLeft";
562
 		this.buttonLeft.Name = "buttonLeft";
543
 		this.buttonLeft.UseUnderline = true;
563
 		this.buttonLeft.UseUnderline = true;
544
-		global::Gtk.Image w42 = new global::Gtk.Image();
545
-		w42.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png");
546
-		this.buttonLeft.Image = w42;
564
+		global::Gtk.Image w44 = new global::Gtk.Image();
565
+		w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png");
566
+		this.buttonLeft.Image = w44;
547
 		this.table4.Add(this.buttonLeft);
567
 		this.table4.Add(this.buttonLeft);
548
-		global::Gtk.Table.TableChild w43 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft]));
549
-		w43.TopAttach = ((uint)(1));
550
-		w43.BottomAttach = ((uint)(2));
551
-		w43.XOptions = ((global::Gtk.AttachOptions)(4));
552
-		w43.YOptions = ((global::Gtk.AttachOptions)(4));
568
+		global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft]));
569
+		w45.TopAttach = ((uint)(1));
570
+		w45.BottomAttach = ((uint)(2));
571
+		w45.XOptions = ((global::Gtk.AttachOptions)(4));
572
+		w45.YOptions = ((global::Gtk.AttachOptions)(4));
553
 		// Container child table4.Gtk.Table+TableChild
573
 		// Container child table4.Gtk.Table+TableChild
554
 		this.buttonRight = new global::Gtk.Button();
574
 		this.buttonRight = new global::Gtk.Button();
555
 		this.buttonRight.CanFocus = true;
575
 		this.buttonRight.CanFocus = true;
556
 		this.buttonRight.Name = "buttonRight";
576
 		this.buttonRight.Name = "buttonRight";
557
 		this.buttonRight.UseUnderline = true;
577
 		this.buttonRight.UseUnderline = true;
558
-		global::Gtk.Image w44 = new global::Gtk.Image();
559
-		w44.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png");
560
-		this.buttonRight.Image = w44;
578
+		global::Gtk.Image w46 = new global::Gtk.Image();
579
+		w46.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png");
580
+		this.buttonRight.Image = w46;
561
 		this.table4.Add(this.buttonRight);
581
 		this.table4.Add(this.buttonRight);
562
-		global::Gtk.Table.TableChild w45 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight]));
563
-		w45.TopAttach = ((uint)(1));
564
-		w45.BottomAttach = ((uint)(2));
565
-		w45.LeftAttach = ((uint)(2));
566
-		w45.RightAttach = ((uint)(3));
567
-		w45.XOptions = ((global::Gtk.AttachOptions)(4));
568
-		w45.YOptions = ((global::Gtk.AttachOptions)(4));
582
+		global::Gtk.Table.TableChild w47 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight]));
583
+		w47.TopAttach = ((uint)(1));
584
+		w47.BottomAttach = ((uint)(2));
585
+		w47.LeftAttach = ((uint)(2));
586
+		w47.RightAttach = ((uint)(3));
587
+		w47.XOptions = ((global::Gtk.AttachOptions)(4));
588
+		w47.YOptions = ((global::Gtk.AttachOptions)(4));
569
 		this.alignment8.Add(this.table4);
589
 		this.alignment8.Add(this.table4);
570
 		this.vbox9.Add(this.alignment8);
590
 		this.vbox9.Add(this.alignment8);
571
-		global::Gtk.Box.BoxChild w47 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8]));
572
-		w47.Position = 0;
573
-		w47.Expand = false;
574
-		w47.Fill = false;
591
+		global::Gtk.Box.BoxChild w49 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8]));
592
+		w49.Position = 0;
593
+		w49.Expand = false;
594
+		w49.Fill = false;
575
 		// Container child vbox9.Gtk.Box+BoxChild
595
 		// Container child vbox9.Gtk.Box+BoxChild
576
 		this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false);
596
 		this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false);
577
 		this.table3.Name = "table3";
597
 		this.table3.Name = "table3";
584
 		this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Battery level:");
604
 		this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("Battery level:");
585
 		this.label3.Justify = ((global::Gtk.Justification)(1));
605
 		this.label3.Justify = ((global::Gtk.Justification)(1));
586
 		this.table3.Add(this.label3);
606
 		this.table3.Add(this.label3);
587
-		global::Gtk.Table.TableChild w48 = ((global::Gtk.Table.TableChild)(this.table3[this.label3]));
588
-		w48.YPadding = ((uint)(10));
589
-		w48.XOptions = ((global::Gtk.AttachOptions)(4));
590
-		w48.YOptions = ((global::Gtk.AttachOptions)(4));
607
+		global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table3[this.label3]));
608
+		w50.YPadding = ((uint)(10));
609
+		w50.XOptions = ((global::Gtk.AttachOptions)(4));
610
+		w50.YOptions = ((global::Gtk.AttachOptions)(4));
591
 		// Container child table3.Gtk.Table+TableChild
611
 		// Container child table3.Gtk.Table+TableChild
592
 		this.labelBatteryLevel = new global::Gtk.Label();
612
 		this.labelBatteryLevel = new global::Gtk.Label();
593
 		this.labelBatteryLevel.Name = "labelBatteryLevel";
613
 		this.labelBatteryLevel.Name = "labelBatteryLevel";
595
 		this.labelBatteryLevel.Xalign = 0F;
615
 		this.labelBatteryLevel.Xalign = 0F;
596
 		this.labelBatteryLevel.LabelProp = global::Mono.Unix.Catalog.GetString("Unknown");
616
 		this.labelBatteryLevel.LabelProp = global::Mono.Unix.Catalog.GetString("Unknown");
597
 		this.table3.Add(this.labelBatteryLevel);
617
 		this.table3.Add(this.labelBatteryLevel);
598
-		global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel]));
599
-		w49.LeftAttach = ((uint)(1));
600
-		w49.RightAttach = ((uint)(2));
601
-		w49.YOptions = ((global::Gtk.AttachOptions)(4));
618
+		global::Gtk.Table.TableChild w51 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel]));
619
+		w51.LeftAttach = ((uint)(1));
620
+		w51.RightAttach = ((uint)(2));
621
+		w51.YOptions = ((global::Gtk.AttachOptions)(4));
602
 		this.vbox9.Add(this.table3);
622
 		this.vbox9.Add(this.table3);
603
-		global::Gtk.Box.BoxChild w50 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3]));
604
-		w50.Position = 2;
605
-		w50.Expand = false;
606
-		w50.Fill = false;
623
+		global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3]));
624
+		w52.Position = 2;
625
+		w52.Expand = false;
626
+		w52.Fill = false;
607
 		// Container child vbox9.Gtk.Box+BoxChild
627
 		// Container child vbox9.Gtk.Box+BoxChild
608
 		this.checkButtonGetBattery = new global::Gtk.CheckButton();
628
 		this.checkButtonGetBattery = new global::Gtk.CheckButton();
609
 		this.checkButtonGetBattery.CanFocus = true;
629
 		this.checkButtonGetBattery.CanFocus = true;
610
 		this.checkButtonGetBattery.Name = "checkButtonGetBattery";
630
 		this.checkButtonGetBattery.Name = "checkButtonGetBattery";
611
 		this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level");
631
 		this.checkButtonGetBattery.Label = global::Mono.Unix.Catalog.GetString("Get battery level");
632
+		this.checkButtonGetBattery.Active = true;
612
 		this.checkButtonGetBattery.DrawIndicator = true;
633
 		this.checkButtonGetBattery.DrawIndicator = true;
613
 		this.checkButtonGetBattery.UseUnderline = true;
634
 		this.checkButtonGetBattery.UseUnderline = true;
614
 		this.vbox9.Add(this.checkButtonGetBattery);
635
 		this.vbox9.Add(this.checkButtonGetBattery);
615
-		global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery]));
616
-		w51.Position = 3;
617
-		w51.Expand = false;
618
-		w51.Fill = false;
636
+		global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery]));
637
+		w53.Position = 3;
638
+		w53.Expand = false;
639
+		w53.Fill = false;
619
 		this.gtkAlignmentRobotControl.Add(this.vbox9);
640
 		this.gtkAlignmentRobotControl.Add(this.vbox9);
620
 		this.vbox12.Add(this.gtkAlignmentRobotControl);
641
 		this.vbox12.Add(this.gtkAlignmentRobotControl);
621
-		global::Gtk.Box.BoxChild w53 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
622
-		w53.Position = 1;
642
+		global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
643
+		w55.Position = 1;
623
 		this.vbox5.Add(this.vbox12);
644
 		this.vbox5.Add(this.vbox12);
624
-		global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
625
-		w54.Position = 4;
645
+		global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
646
+		w56.Position = 4;
626
 		this.alignment3.Add(this.vbox5);
647
 		this.alignment3.Add(this.vbox5);
627
 		this.hbox3.Add(this.alignment3);
648
 		this.hbox3.Add(this.alignment3);
628
-		global::Gtk.Box.BoxChild w56 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
629
-		w56.Position = 1;
630
-		w56.Expand = false;
631
-		w56.Fill = false;
649
+		global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
650
+		w58.Position = 1;
651
+		w58.Expand = false;
652
+		w58.Fill = false;
632
 		this.hbox1.Add(this.hbox3);
653
 		this.hbox1.Add(this.hbox3);
633
-		global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
634
-		w57.Position = 1;
635
-		w57.Expand = false;
636
-		w57.Fill = false;
654
+		global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
655
+		w59.Position = 1;
656
+		w59.Expand = false;
657
+		w59.Fill = false;
637
 		this.vbox1.Add(this.hbox1);
658
 		this.vbox1.Add(this.hbox1);
638
-		global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
639
-		w58.Position = 1;
659
+		global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
660
+		w60.Position = 1;
640
 		this.Add(this.vbox1);
661
 		this.Add(this.vbox1);
641
 		if ((this.Child != null))
662
 		if ((this.Child != null))
642
 		{
663
 		{
650
 		this.ShowLogWindowAction.Activated += new global::System.EventHandler(this.OnShowLogWindowActionActivated);
671
 		this.ShowLogWindowAction.Activated += new global::System.EventHandler(this.OnShowLogWindowActionActivated);
651
 		this.checkButtonCameraOn.Clicked += new global::System.EventHandler(this.OnCheckButtonCameraOnClicked);
672
 		this.checkButtonCameraOn.Clicked += new global::System.EventHandler(this.OnCheckButtonCameraOnClicked);
652
 		this.checkButtonRobotPosition.Clicked += new global::System.EventHandler(this.OnCheckButtonRobotPositionClicked);
673
 		this.checkButtonRobotPosition.Clicked += new global::System.EventHandler(this.OnCheckButtonRobotPositionClicked);
674
+		this.checkButtonFPS.Toggled += new global::System.EventHandler(this.OnCheckButtonFPSToggled);
653
 		this.buttonAskArena.Clicked += new global::System.EventHandler(this.OnButtonAskArenaClicked);
675
 		this.buttonAskArena.Clicked += new global::System.EventHandler(this.OnButtonAskArenaClicked);
654
 		this.drawingAreaCamera.ExposeEvent += new global::Gtk.ExposeEventHandler(this.OnDrawingAreaCameraExposeEvent);
676
 		this.drawingAreaCamera.ExposeEvent += new global::Gtk.ExposeEventHandler(this.OnDrawingAreaCameraExposeEvent);
655
 		this.buttonServerConnection.Clicked += new global::System.EventHandler(this.OnButtonServerConnectionClicked);
677
 		this.buttonServerConnection.Clicked += new global::System.EventHandler(this.OnButtonServerConnectionClicked);

+ 78
- 50
software/monitor/monitor/gtk-gui/gui.stetic View File

74
                 <property name="MemberName" />
74
                 <property name="MemberName" />
75
                 <property name="Spacing">6</property>
75
                 <property name="Spacing">6</property>
76
                 <child>
76
                 <child>
77
-                  <widget class="Gtk.Alignment" id="alignment1">
77
+                  <widget class="Gtk.HBox" id="hbox2">
78
                     <property name="MemberName" />
78
                     <property name="MemberName" />
79
-                    <property name="Xscale">0</property>
80
-                    <property name="Xalign">0</property>
81
-                    <property name="BorderWidth">6</property>
79
+                    <property name="Spacing">6</property>
82
                     <child>
80
                     <child>
83
-                      <widget class="Gtk.HBox" id="hbox2">
81
+                      <widget class="Gtk.Alignment" id="alignment1">
84
                         <property name="MemberName" />
82
                         <property name="MemberName" />
85
-                        <property name="Spacing">6</property>
86
-                        <child>
87
-                          <widget class="Gtk.CheckButton" id="checkButtonCameraOn">
88
-                            <property name="MemberName" />
89
-                            <property name="CanFocus">True</property>
90
-                            <property name="Label" translatable="yes">Camera On</property>
91
-                            <property name="DrawIndicator">True</property>
92
-                            <property name="HasLabel">True</property>
93
-                            <property name="UseUnderline">True</property>
94
-                            <signal name="Clicked" handler="OnCheckButtonCameraOnClicked" />
95
-                          </widget>
96
-                          <packing>
97
-                            <property name="Position">0</property>
98
-                            <property name="AutoSize">True</property>
99
-                          </packing>
100
-                        </child>
101
-                        <child>
102
-                          <widget class="Gtk.CheckButton" id="checkButtonRobotPosition">
103
-                            <property name="MemberName" />
104
-                            <property name="CanFocus">True</property>
105
-                            <property name="Label" translatable="yes">Robot Position</property>
106
-                            <property name="DrawIndicator">True</property>
107
-                            <property name="HasLabel">True</property>
108
-                            <property name="UseUnderline">True</property>
109
-                            <signal name="Clicked" handler="OnCheckButtonRobotPositionClicked" />
110
-                          </widget>
111
-                          <packing>
112
-                            <property name="Position">1</property>
113
-                            <property name="AutoSize">True</property>
114
-                          </packing>
115
-                        </child>
83
+                        <property name="Xscale">0</property>
84
+                        <property name="Xalign">0</property>
85
+                        <property name="BorderWidth">6</property>
116
                         <child>
86
                         <child>
117
-                          <widget class="Gtk.Button" id="buttonAskArena">
87
+                          <widget class="Gtk.HBox" id="hbox5">
118
                             <property name="MemberName" />
88
                             <property name="MemberName" />
119
-                            <property name="CanFocus">True</property>
120
-                            <property name="Type">TextOnly</property>
121
-                            <property name="Label" translatable="yes">Ask Arena...</property>
122
-                            <property name="UseUnderline">True</property>
123
-                            <signal name="Clicked" handler="OnButtonAskArenaClicked" />
89
+                            <property name="Spacing">6</property>
90
+                            <child>
91
+                              <widget class="Gtk.CheckButton" id="checkButtonCameraOn">
92
+                                <property name="MemberName" />
93
+                                <property name="CanFocus">True</property>
94
+                                <property name="Label" translatable="yes">Camera On</property>
95
+                                <property name="DrawIndicator">True</property>
96
+                                <property name="HasLabel">True</property>
97
+                                <property name="UseUnderline">True</property>
98
+                                <signal name="Clicked" handler="OnCheckButtonCameraOnClicked" />
99
+                              </widget>
100
+                              <packing>
101
+                                <property name="Position">0</property>
102
+                                <property name="AutoSize">True</property>
103
+                              </packing>
104
+                            </child>
105
+                            <child>
106
+                              <widget class="Gtk.CheckButton" id="checkButtonRobotPosition">
107
+                                <property name="MemberName" />
108
+                                <property name="CanFocus">True</property>
109
+                                <property name="Label" translatable="yes">Show Position</property>
110
+                                <property name="DrawIndicator">True</property>
111
+                                <property name="HasLabel">True</property>
112
+                                <property name="UseUnderline">True</property>
113
+                                <signal name="Clicked" handler="OnCheckButtonRobotPositionClicked" />
114
+                              </widget>
115
+                              <packing>
116
+                                <property name="Position">1</property>
117
+                                <property name="AutoSize">True</property>
118
+                              </packing>
119
+                            </child>
120
+                            <child>
121
+                              <widget class="Gtk.CheckButton" id="checkButtonFPS">
122
+                                <property name="MemberName" />
123
+                                <property name="CanFocus">True</property>
124
+                                <property name="Label" translatable="yes">Show FPS</property>
125
+                                <property name="DrawIndicator">True</property>
126
+                                <property name="HasLabel">True</property>
127
+                                <property name="UseUnderline">True</property>
128
+                                <signal name="Toggled" handler="OnCheckButtonFPSToggled" />
129
+                              </widget>
130
+                              <packing>
131
+                                <property name="Position">2</property>
132
+                                <property name="AutoSize">True</property>
133
+                              </packing>
134
+                            </child>
124
                           </widget>
135
                           </widget>
125
-                          <packing>
126
-                            <property name="PackType">End</property>
127
-                            <property name="Position">2</property>
128
-                            <property name="AutoSize">True</property>
129
-                            <property name="Expand">False</property>
130
-                            <property name="Fill">False</property>
131
-                          </packing>
132
                         </child>
136
                         </child>
133
                       </widget>
137
                       </widget>
138
+                      <packing>
139
+                        <property name="Position">0</property>
140
+                        <property name="AutoSize">True</property>
141
+                      </packing>
142
+                    </child>
143
+                    <child>
144
+                      <placeholder />
145
+                    </child>
146
+                    <child>
147
+                      <widget class="Gtk.Button" id="buttonAskArena">
148
+                        <property name="MemberName" />
149
+                        <property name="CanFocus">True</property>
150
+                        <property name="Type">TextOnly</property>
151
+                        <property name="Label" translatable="yes">Ask Arena...</property>
152
+                        <property name="UseUnderline">True</property>
153
+                        <signal name="Clicked" handler="OnButtonAskArenaClicked" />
154
+                      </widget>
155
+                      <packing>
156
+                        <property name="Position">2</property>
157
+                        <property name="AutoSize">True</property>
158
+                        <property name="Expand">False</property>
159
+                        <property name="Fill">False</property>
160
+                      </packing>
134
                     </child>
161
                     </child>
135
                   </widget>
162
                   </widget>
136
                   <packing>
163
                   <packing>
137
                     <property name="Position">0</property>
164
                     <property name="Position">0</property>
138
-                    <property name="AutoSize">False</property>
165
+                    <property name="AutoSize">True</property>
139
                     <property name="Expand">False</property>
166
                     <property name="Expand">False</property>
140
                     <property name="Fill">False</property>
167
                     <property name="Fill">False</property>
141
                   </packing>
168
                   </packing>
758
                                         <property name="MemberName" />
785
                                         <property name="MemberName" />
759
                                         <property name="CanFocus">True</property>
786
                                         <property name="CanFocus">True</property>
760
                                         <property name="Label" translatable="yes">Get battery level</property>
787
                                         <property name="Label" translatable="yes">Get battery level</property>
788
+                                        <property name="Active">True</property>
761
                                         <property name="DrawIndicator">True</property>
789
                                         <property name="DrawIndicator">True</property>
762
                                         <property name="HasLabel">True</property>
790
                                         <property name="HasLabel">True</property>
763
                                         <property name="UseUnderline">True</property>
791
                                         <property name="UseUnderline">True</property>

BIN
software/monitor/monitor/monitor View File


+ 5
- 0
software/raspberry/superviseur-robot/.dep.inc View File

1
+# This code depends on make tool being used
2
+DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES}))
3
+ifneq (${DEPFILES},)
4
+include ${DEPFILES}
5
+endif

BIN
software/raspberry/superviseur-robot/dist/Debug__Pthread_/GNU-Linux/superviseur-robot View File


BIN
software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot View File


+ 34
- 3
software/raspberry/superviseur-robot/lib/camera.cpp View File

17
 
17
 
18
 #include "camera.h"
18
 #include "camera.h"
19
 #include "img.h"
19
 #include "img.h"
20
+#include <unistd.h>
20
 
21
 
21
 using namespace cv;
22
 using namespace cv;
22
 
23
 
23
-Camera::Camera(int size) {
24
+Camera::Camera(int size, int fps) {
24
     this->SetSize(size);
25
     this->SetSize(size);
26
+#ifndef __FOR_PC__
25
     this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
27
     this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
26
     this->cap.set(CV_CAP_PROP_FRAME_WIDTH,width);
28
     this->cap.set(CV_CAP_PROP_FRAME_WIDTH,width);
27
     this->cap.set(CV_CAP_PROP_FRAME_HEIGHT,height);
29
     this->cap.set(CV_CAP_PROP_FRAME_HEIGHT,height);
30
+    this->cap.set(CV_CAP_PROP_FPS, fps);
31
+#endif /* __FOR_PC__ */
28
 }
32
 }
29
 
33
 
30
 bool Camera::Open() {
34
 bool Camera::Open() {
31
-    this->cap.open(0);
35
+    bool status = false;
36
+    
37
+#ifdef __FOR_PC__
38
+    if (this->cap.open(0)) {
39
+        //this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
40
+        this->cap.set(CV_CAP_PROP_FRAME_WIDTH,width);
41
+        this->cap.set(CV_CAP_PROP_FRAME_HEIGHT,height);
42
+        
43
+        status =true;
44
+     }
45
+#else
46
+    if (this->cap.open()) {
47
+        cout<<"Camera warmup 2sec"<<endl<<flush;
48
+        sleep(2);
49
+        cout<<"Start capture"<<endl<<flush;
50
+    
51
+        status =true;
52
+    }
53
+#endif /* __FOR_PC__ */
54
+    
55
+    return status;
32
 }
56
 }
33
 
57
 
34
 void Camera::Close() {
58
 void Camera::Close() {
58
         default:
82
         default:
59
             this->width = 480;
83
             this->width = 480;
60
             this->height = 360;
84
             this->height = 360;
61
-
62
     }
85
     }
63
 }
86
 }
64
 
87
 
65
 Img Camera::Grab() {
88
 Img Camera::Grab() {
66
     ImageMat frame;
89
     ImageMat frame;
67
     
90
     
91
+#ifdef __FOR_PC__
68
     cap >> frame;
92
     cap >> frame;
69
     Img capture = Img(frame);
93
     Img capture = Img(frame);
94
+#else
95
+    cap.grab();
96
+    cap.retrieve (frame);
97
+    cvtColor(frame,frame,CV_BGR2RGB);
98
+    
99
+    Img capture = Img(frame);
100
+#endif /* __FOR_PC__ */
70
     
101
     
71
     return capture;
102
     return capture;
72
 }
103
 }

+ 9
- 1
software/raspberry/superviseur-robot/lib/camera.h View File

21
 #include <opencv2/highgui/highgui.hpp>
21
 #include <opencv2/highgui/highgui.hpp>
22
 #include <opencv2/imgproc/imgproc.hpp>
22
 #include <opencv2/imgproc/imgproc.hpp>
23
 
23
 
24
+#ifndef __FOR_PC__
25
+#include "raspicam/raspicam_cv.h"
26
+#endif /* __FOR_PC__ */
24
 #include "img.h"
27
 #include "img.h"
25
 
28
 
26
 enum captureSize {xs, sm, md, lg};
29
 enum captureSize {xs, sm, md, lg};
27
 
30
 
28
 class Camera {
31
 class Camera {
29
 public:
32
 public:
30
-    Camera(int size);
33
+    Camera(int size, int fps);
31
 
34
 
32
     bool Open();
35
     bool Open();
33
     void Close();
36
     void Close();
41
     Img Grab();
44
     Img Grab();
42
     
45
     
43
 private:
46
 private:
47
+#ifdef __FOR_PC__
44
     cv::VideoCapture cap;
48
     cv::VideoCapture cap;
49
+#else
50
+    raspicam::RaspiCam_Cv cap;
51
+#endif /*  __FOR_PC__ */   
52
+   
45
     int size = sm;
53
     int size = sm;
46
     int width;
54
     int width;
47
     int height;
55
     int height;

+ 1
- 1
software/raspberry/superviseur-robot/lib/commonitor.cpp View File

243
             image=((MessageImg*) msg)->GetImage();
243
             image=((MessageImg*) msg)->GetImage();
244
             jpeg = image->ToJpg();
244
             jpeg = image->ToJpg();
245
             
245
             
246
-            cout << "Jpeg size: " << to_string(jpeg.size())<<endl<<flush;
246
+            //cout << "Jpeg size: " << to_string(jpeg.size())<<endl<<flush;
247
             
247
             
248
             s = base64_encode(jpeg.data(), jpeg.size());
248
             s = base64_encode(jpeg.data(), jpeg.size());
249
             str.append(LABEL_MONITOR_CAMERA_IMAGE + LABEL_SEPARATOR_CHAR + s);
249
             str.append(LABEL_MONITOR_CAMERA_IMAGE + LABEL_SEPARATOR_CHAR + s);

+ 83
- 95
software/raspberry/superviseur-robot/lib/img.cpp View File

18
 #include "img.h"
18
 #include "img.h"
19
 
19
 
20
 bool Arena::IsEmpty() {
20
 bool Arena::IsEmpty() {
21
-    if ((this->arena.height==0) || (this->arena.width==0)) return true;
21
+    if ((this->arena.height == 0) || (this->arena.width == 0)) return true;
22
     else return false;
22
     else return false;
23
 }
23
 }
24
 
24
 
27
 }
27
 }
28
 
28
 
29
 string Img::ToString() {
29
 string Img::ToString() {
30
-    return "Image size: "+to_string(this->img.cols)+"x"+to_string(this->img.rows)+" (dim="+to_string(this->img.dims)+")";
30
+    return "Image size: " + to_string(this->img.cols) + "x" + to_string(this->img.rows) + " (dim=" + to_string(this->img.dims) + ")";
31
 }
31
 }
32
 
32
 
33
 Img* Img::Copy() {
33
 Img* Img::Copy() {
34
     return new Img(this->img);
34
     return new Img(this->img);
35
 }
35
 }
36
-    
36
+
37
 float Img::CalculAngle(Position robot) {
37
 float Img::CalculAngle(Position robot) {
38
     float a = robot.direction.x - robot.center.x;
38
     float a = robot.direction.x - robot.center.x;
39
-    float b = robot.direction.y - robot.center.y ;
40
-    float angle = atan2(b,a);
41
-    return angle * 180.f/M_PI;
39
+    float b = robot.direction.y - robot.center.y;
40
+    float angle = atan2(b, a);
41
+    return angle * 180.f / M_PI;
42
 }
42
 }
43
 
43
 
44
 float Img::CalculAngle2(cv::Point2f pt1, cv::Point2f pt2) {
44
 float Img::CalculAngle2(cv::Point2f pt1, cv::Point2f pt2) {
45
     float a = pt1.x - pt2.x;
45
     float a = pt1.x - pt2.x;
46
-    float b = pt1.y - pt2.y ;
47
-    float angle = atan2(b,a);
48
-    return angle * 180.f/M_PI;
46
+    float b = pt1.y - pt2.y;
47
+    float angle = atan2(b, a);
48
+    return angle * 180.f / M_PI;
49
 }
49
 }
50
 
50
 
51
 #ifdef __WITH_ARUCO__ 
51
 #ifdef __WITH_ARUCO__ 
52
-cv::Point2f Img::find_aruco_center(std::vector<cv::Point2f> aruco) {
53
-    return ((aruco[0] + aruco[2])/2);
52
+
53
+cv::Point2f Img::FindArucoCenter(std::vector<cv::Point2f> aruco) {
54
+    return ((aruco[0] + aruco[2]) / 2);
54
 }
55
 }
55
 
56
 
56
-cv::Point2f Img::find_aruco_direction(std::vector<cv::Point2f> aruco) {
57
-    return ((aruco[0]+aruco[1])/2);;
57
+cv::Point2f Img::FindArucoDirection(std::vector<cv::Point2f> aruco) {
58
+    return ((aruco[0] + aruco[1]) / 2);
58
 }
59
 }
59
 
60
 
60
-std::list<Position> Img::search_aruco(Arena monArene) {
61
+std::list<Position> Img::SearchAruco(Arena arena) {
61
     ImageMat imgTraitment;
62
     ImageMat imgTraitment;
62
     std::list<Position> positionList;
63
     std::list<Position> positionList;
63
     cv::Point2f areneCoor;
64
     cv::Point2f areneCoor;
64
     std::vector<int> ids;
65
     std::vector<int> ids;
65
     std::vector<std::vector<cv::Point2f> > corners;
66
     std::vector<std::vector<cv::Point2f> > corners;
66
-    if(monArene.empty())
67
-        imgTraitment=this->img.clone();
68
-    else{
69
-        imgTraitment = cropArena(monArene);
70
-        areneCoor.x = monArene.x;
71
-        areneCoor.y = monArene.y;
67
+    
68
+    if (arena.IsEmpty())
69
+        imgTraitment = this->img.clone();
70
+    else {
71
+        imgTraitment = CropArena(arena);
72
+        areneCoor.x = arena.arena.x;
73
+        areneCoor.y = arena.arena.y;
72
     }
74
     }
73
-    cv::detectMarkers(imgTraitment,dictionary, corners, ids);
74
-    if(ids.size()>0){
75
-        for(int i = 0 ; i < ids.size() ; i++){
75
+    
76
+    cv::aruco::detectMarkers(imgTraitment, dictionary, corners, ids);
77
+    if (ids.size() > 0) {
78
+        for (int i = 0; i < ids.size(); i++) {
76
             Position newPos;
79
             Position newPos;
77
-            newPos.center = find_aruco_center(corners[i]);
78
-            newPos.direction = find_aruco_direction(corners[i]);
80
+            newPos.center = FindArucoCenter(corners[i]);
81
+            newPos.direction = FindArucoDirection(corners[i]);
79
             newPos.robotId = ids[i];
82
             newPos.robotId = ids[i];
80
-            if(!monArene.empty()){
83
+            if (!arena.IsEmpty()) {
81
                 newPos.direction += areneCoor;
84
                 newPos.direction += areneCoor;
82
                 newPos.center += areneCoor;
85
                 newPos.center += areneCoor;
83
             }
86
             }
84
-            newPos.angle = calculAngle2(newPos.center, newPos.direction);
87
+            newPos.angle = CalculAngle2(newPos.center, newPos.direction);
85
             positionList.push_back(newPos);
88
             positionList.push_back(newPos);
86
         }
89
         }
87
     }
90
     }
91
 
94
 
92
 float Img::EuclideanDistance(cv::Point2f p, cv::Point2f q) {
95
 float Img::EuclideanDistance(cv::Point2f p, cv::Point2f q) {
93
     cv::Point diff = p - q;
96
     cv::Point diff = p - q;
94
-    return cv::sqrt(diff.x*diff.x + diff.y*diff.y);
97
+    return cv::sqrt(diff.x * diff.x + diff.y * diff.y);
95
 }
98
 }
96
 
99
 
97
 Jpg Img::ToJpg() {
100
 Jpg Img::ToJpg() {
98
     Jpg imgJpg;
101
     Jpg imgJpg;
99
-    cv::imencode(".jpg",this->img,imgJpg);
102
+    cv::imencode(".jpg", this->img, imgJpg);
100
     return imgJpg;
103
     return imgJpg;
101
 }
104
 }
102
 
105
 
103
-//string Img::ToBase64() {
104
-//    string imgBase64;
105
-//    Jpg imgJpg = toJpg();
106
-//    
107
-//    /* faire la convertion Jpg vers base 64 */
108
-//    return imgBase64;
109
-//}
110
-
111
-std::list<Position> Img::SearchRobot(Arena monArene) {
106
+std::list<Position> Img::SearchRobot(Arena arena) {
112
 
107
 
113
     std::list<Position> robotsFind;
108
     std::list<Position> robotsFind;
114
-    std::vector<std::vector<cv::Point2f> > contours;
115
-    std::vector<cv::Point2f> approx;
109
+    std::vector<std::vector<cv::Point> > contours;
110
+    std::vector<cv::Point> approx;
116
     std::vector<cv::Vec4i> hierarchy;
111
     std::vector<cv::Vec4i> hierarchy;
117
 
112
 
118
     ImageMat imgTraitment;
113
     ImageMat imgTraitment;
119
 
114
 
120
-    if(monArene.IsEmpty())
121
-        imgTraitment=this->img.clone();
122
-    else
123
-        imgTraitment = CropArena(monArene);
124
-
125
-    cvtColor(imgTraitment,imgTraitment,CV_RGB2GRAY);
126
-    threshold(imgTraitment,imgTraitment,128,255,CV_THRESH_BINARY);
127
-    findContours(imgTraitment, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point2f(0, 0));
115
+    if (arena.IsEmpty()) {
116
+        imgTraitment = this->img.clone();
117
+    } else {
118
+        imgTraitment = this->img(arena.arena);
119
+    }
128
 
120
 
129
-    for(unsigned int i = 0;i < contours.size();i++)
130
-    {
131
-        cv::approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true)*0.17, true);
132
-        if(approx.size() == 3 && fabs(cv::contourArea(contours[i])) > 200 && fabs(cv::contourArea(contours[i])) < 700)
133
-        {
121
+    cvtColor(imgTraitment, imgTraitment, CV_RGB2GRAY);
122
+    threshold(imgTraitment, imgTraitment, 128, 255, CV_THRESH_BINARY);
123
+    findContours(imgTraitment, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
134
 
124
 
135
-            cv::Point2f a,b,c;
136
-            cv::Point2f center;
125
+    for (unsigned int i = 0; i < contours.size(); i++) {
126
+        ImageMat m(contours[i]);
127
+        cv::approxPolyDP(m, approx, cv::arcLength(ImageMat(contours[i]), true)*0.17, true);
137
 
128
 
129
+        if (approx.size() == 3 && fabs(cv::contourArea(contours[i])) > 200 && fabs(cv::contourArea(contours[i])) < 700) {
130
+            cv::Point a, b, c;
131
+            cv::Point center;
138
 
132
 
139
             a = approx[0];
133
             a = approx[0];
140
             b = approx[1];
134
             b = approx[1];
141
             c = approx[2];
135
             c = approx[2];
142
 
136
 
143
-
144
-            if(!monArene.IsEmpty()) // ajout de l'offset de l'arène
145
-            {
146
-                a.x += monArene.arena.x;
147
-                a.y += monArene.arena.y;
148
-                b.x += monArene.arena.x;
149
-                b.y += monArene.arena.y;
150
-                c.x += monArene.arena.x;
151
-                c.y += monArene.arena.y;
137
+            if (!arena.IsEmpty()) { // ajout de l'offset de l'arène
138
+                a.x += arena.arena.x;
139
+                a.y += arena.arena.y;
140
+                b.x += arena.arena.x;
141
+                b.y += arena.arena.y;
142
+                c.x += arena.arena.x;
143
+                c.y += arena.arena.y;
152
             }
144
             }
153
 
145
 
154
-            center.x = (a.x + b.x + c.x)/3;
155
-            center.y = (a.y + b.y + c.y)/3;
146
+            center.x = (a.x + b.x + c.x) / 3;
147
+            center.y = (a.y + b.y + c.y) / 3;
156
             Position newPos;
148
             Position newPos;
157
-            newPos.center=center;
158
-
159
-            if(EuclideanDistance(center,b) > EuclideanDistance(center,a) && EuclideanDistance(center,b) > EuclideanDistance(center,c) )
160
-            {
149
+            newPos.center = center;
161
 
150
 
162
-                newPos.direction=b;
151
+            if (EuclideanDistance(center, b) > EuclideanDistance(center, a) && EuclideanDistance(center, b) > EuclideanDistance(center, c)) {
152
+                newPos.direction = b;
163
                 //line(img,center,b,Scalar(0,125,0),2,8,0);
153
                 //line(img,center,b,Scalar(0,125,0),2,8,0);
164
-            }
165
-            else if(EuclideanDistance(center,a) > EuclideanDistance(center,c))
166
-            {
167
-                newPos.direction=a;
168
-                //line(img,center,a,Scalar(0,125,0),2,8,0);
154
+            } else if (EuclideanDistance(center, a) > EuclideanDistance(center, c)) {
169
 
155
 
170
-            }
171
-            else
172
-            {
173
-                newPos.direction=c;
156
+                newPos.direction = a;
157
+                //line(img,center,a,Scalar(0,125,0),2,8,0);
158
+            } else {
159
+                newPos.direction = c;
174
                 //line(img,center,c,Scalar(0,125,0),2,8,0);
160
                 //line(img,center,c,Scalar(0,125,0),2,8,0);
175
             }
161
             }
176
-            newPos.angle=CalculAngle(newPos);
162
+
163
+            newPos.angle = CalculAngle(newPos);
164
+            newPos.robotId = -1; // dumb identifier
165
+
177
             robotsFind.push_back(newPos);
166
             robotsFind.push_back(newPos);
178
         }
167
         }
179
     }
168
     }
169
+
180
     return robotsFind;
170
     return robotsFind;
181
 }
171
 }
182
 
172
 
186
     std::vector<cv::Vec4i> hierarchy;
176
     std::vector<cv::Vec4i> hierarchy;
187
 
177
 
188
     ImageMat imageTrt;
178
     ImageMat imageTrt;
189
-    cv::cvtColor(this->img,imageTrt,CV_RGB2GRAY); // conversion en niveau de gris
190
-    cv::threshold(imageTrt,imageTrt,128,255,CV_THRESH_BINARY); // Threshold les éléments les plus clair
191
-    cv::Canny(imageTrt, imageTrt, 100,200,3); // detection d'angle
179
+    cv::cvtColor(this->img, imageTrt, CV_RGB2GRAY); // conversion en niveau de gris
180
+    cv::threshold(imageTrt, imageTrt, 128, 255, CV_THRESH_BINARY); // Threshold les éléments les plus clair
181
+    cv::Canny(imageTrt, imageTrt, 100, 200, 3); // detection d'angle
192
 
182
 
193
     findContours(imageTrt, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
183
     findContours(imageTrt, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cv::Point(0, 0));
194
-    for(unsigned int i = 0; i < contours.size();i++)
195
-    {
184
+    for (unsigned int i = 0; i < contours.size(); i++) {
196
         approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true)*0.1, true);
185
         approxPolyDP(ImageMat(contours[i]), approx, cv::arcLength(ImageMat(contours[i]), true)*0.1, true);
197
-        if(approx.size()==4 && fabs(cv::contourArea(contours[i])) > 100000)
198
-        {
186
+        if (approx.size() == 4 && fabs(cv::contourArea(contours[i])) > 100000) {
199
             Arena rectangle;
187
             Arena rectangle;
200
             rectangle.arena = cv::boundingRect(ImageMat(contours[i]));
188
             rectangle.arena = cv::boundingRect(ImageMat(contours[i]));
201
             return rectangle;
189
             return rectangle;
205
 }
193
 }
206
 
194
 
207
 int Img::DrawRobot(Position robot) {
195
 int Img::DrawRobot(Position robot) {
208
-    cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0,0,255),3,8,0);
196
+    cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0, 0, 255), 3, 8, 0);
209
     return 0;
197
     return 0;
210
 }
198
 }
211
 
199
 
212
 int Img::DrawAllRobots(std::list<Position> robots) {
200
 int Img::DrawAllRobots(std::list<Position> robots) {
213
-    for(Position robot  : robots){
214
-        cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0,0,255),3,8,0);
201
+    for (Position robot : robots) {
202
+        cv::arrowedLine(this->img, (cv::Point2f)robot.center, (cv::Point2f)robot.direction, cv::Scalar(0, 0, 255), 3, 8, 0);
215
     }
203
     }
216
     return robots.size();
204
     return robots.size();
217
 }
205
 }
218
 
206
 
219
-int Img::DrawArena(Arena areneToDraw) {
220
-    cv::rectangle(this->img,areneToDraw.arena.tl(),areneToDraw.arena.br(),cv::Scalar(0,0,125),2,8,0);
207
+int Img::DrawArena(Arena arenaToDraw) {
208
+    cv::rectangle(this->img, arenaToDraw.arena.tl(), arenaToDraw.arena.br(), cv::Scalar(0, 0, 125), 2, 8, 0);
221
     return 0;
209
     return 0;
222
 }
210
 }
223
 
211
 
224
-ImageMat Img::CropArena(Arena arene) {
225
-    return this->img(arene.arena);
212
+ImageMat Img::CropArena(Arena arena) {
213
+    return this->img(arena.arena);
226
 }
214
 }

+ 12
- 11
software/raspberry/superviseur-robot/lib/img.h View File

29
 #ifdef __WITH_ARUCO__
29
 #ifdef __WITH_ARUCO__
30
 #include <opencv2/aruco/dictionary.hpp>
30
 #include <opencv2/aruco/dictionary.hpp>
31
 #include <opencv2/aruco/charuco.hpp>
31
 #include <opencv2/aruco/charuco.hpp>
32
+//#include <opencv2/aruco.hpp>
32
 #include <opencv2/core/mat.hpp>
33
 #include <opencv2/core/mat.hpp>
34
+
33
 #endif // __WITH_ARUCO__
35
 #endif // __WITH_ARUCO__
34
 
36
 
35
 #define ARENA_NOT_DETECTED -1
37
 #define ARENA_NOT_DETECTED -1
57
 
59
 
58
 class Img {
60
 class Img {
59
 public:
61
 public:
62
+    ImageMat img;
63
+    
60
     Img(ImageMat imgMatrice);
64
     Img(ImageMat imgMatrice);
61
     
65
     
62
     string ToString();
66
     string ToString();
67
 
71
 
68
     int DrawRobot(Position robot);
72
     int DrawRobot(Position robot);
69
     int DrawAllRobots(std::list<Position> robots);
73
     int DrawAllRobots(std::list<Position> robots);
70
-    int DrawArena(Arena areneToDraw);
71
-    std::list<Position> SearchRobot(Arena myArena);
72
-    
73
-    
74
+    int DrawArena(Arena arenaToDraw);
75
+    std::list<Position> SearchRobot(Arena arena);
76
+        
74
 #ifdef __WITH_ARUCO__    
77
 #ifdef __WITH_ARUCO__    
75
-    list<Position> search_aruco(Arena monArene = NULL);
78
+    list<Position> SearchAruco(Arena arena);
79
+    cv::Ptr<cv::aruco::Dictionary> dictionary;
76
 #endif // __WITH_ARUCO__
80
 #endif // __WITH_ARUCO__
77
 private:
81
 private:
78
-    ImageMat img;
79
-    
80
 #ifdef __WITH_ARUCO__
82
 #ifdef __WITH_ARUCO__
81
-    Ptr<std::Dictionary> dictionary;
82
-    cv::Point2f find_aruco_center(std::vector<cv::Point2f> aruco);
83
-    cv::Point2f find_aruco_direction(std::vector<cv::Point2f> aruco);
83
+    cv::Point2f FindArucoCenter(std::vector<cv::Point2f> aruco);
84
+    cv::Point2f FindArucoDirection(std::vector<cv::Point2f> aruco);
84
 #endif // __WITH_ARUCO__
85
 #endif // __WITH_ARUCO__
85
     
86
     
86
     float CalculAngle(Position robots);
87
     float CalculAngle(Position robots);
87
     float CalculAngle2(cv::Point2f pt1, cv::Point2f pt2);
88
     float CalculAngle2(cv::Point2f pt1, cv::Point2f pt2);
88
     float EuclideanDistance(cv::Point2f p, cv::Point2f q);
89
     float EuclideanDistance(cv::Point2f p, cv::Point2f q);
89
-    ImageMat CropArena(Arena arene);
90
+    ImageMat CropArena(Arena arena);
90
 };
91
 };
91
 
92
 
92
 #endif //__IMG_H__
93
 #endif //__IMG_H__

+ 30
- 30
software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk View File

35
 
35
 
36
 # Object Files
36
 # Object Files
37
 OBJECTFILES= \
37
 OBJECTFILES= \
38
+	${OBJECTDIR}/lib/base64/base64.o \
39
+	${OBJECTDIR}/lib/camera.o \
40
+	${OBJECTDIR}/lib/commonitor.o \
41
+	${OBJECTDIR}/lib/comrobot.o \
42
+	${OBJECTDIR}/lib/img.o \
38
 	${OBJECTDIR}/lib/message.o \
43
 	${OBJECTDIR}/lib/message.o \
39
 	${OBJECTDIR}/lib/messages.o \
44
 	${OBJECTDIR}/lib/messages.o \
40
 	${OBJECTDIR}/lib/monitor.o \
45
 	${OBJECTDIR}/lib/monitor.o \
42
 	${OBJECTDIR}/lib/server.o \
47
 	${OBJECTDIR}/lib/server.o \
43
 	${OBJECTDIR}/main.o \
48
 	${OBJECTDIR}/main.o \
44
 	${OBJECTDIR}/tasks.o \
49
 	${OBJECTDIR}/tasks.o \
45
-	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
46
-	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
47
-	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
48
-	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
49
-	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
50
 	${OBJECTDIR}/tasks_pthread.o
50
 	${OBJECTDIR}/tasks_pthread.o
51
 
51
 
52
 
52
 
74
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
74
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
75
 	${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
75
 	${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
76
 
76
 
77
+${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
78
+	${MKDIR} -p ${OBJECTDIR}/lib/base64
79
+	${RM} "$@.d"
80
+	$(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
81
+
82
+${OBJECTDIR}/lib/camera.o: lib/camera.cpp
83
+	${MKDIR} -p ${OBJECTDIR}/lib
84
+	${RM} "$@.d"
85
+	$(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
86
+
87
+${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
88
+	${MKDIR} -p ${OBJECTDIR}/lib
89
+	${RM} "$@.d"
90
+	$(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
91
+
92
+${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
93
+	${MKDIR} -p ${OBJECTDIR}/lib
94
+	${RM} "$@.d"
95
+	$(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
96
+
97
+${OBJECTDIR}/lib/img.o: lib/img.cpp
98
+	${MKDIR} -p ${OBJECTDIR}/lib
99
+	${RM} "$@.d"
100
+	$(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
101
+
77
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
102
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
78
 	${MKDIR} -p ${OBJECTDIR}/lib
103
 	${MKDIR} -p ${OBJECTDIR}/lib
79
 	${RM} "$@.d"
104
 	${RM} "$@.d"
109
 	${RM} "$@.d"
134
 	${RM} "$@.d"
110
 	$(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
135
 	$(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
111
 
136
 
112
-${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp
113
-	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4
114
-	${RM} "$@.d"
115
-	$(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
116
-
117
-${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp
118
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
119
-	${RM} "$@.d"
120
-	$(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
121
-
122
-${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp
123
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
124
-	${RM} "$@.d"
125
-	$(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
126
-
127
-${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp
128
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
129
-	${RM} "$@.d"
130
-	$(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
131
-
132
-${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp
133
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
134
-	${RM} "$@.d"
135
-	$(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
136
-
137
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
137
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
138
 	${MKDIR} -p ${OBJECTDIR}
138
 	${MKDIR} -p ${OBJECTDIR}
139
 	${RM} "$@.d"
139
 	${RM} "$@.d"

+ 27
- 27
software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk View File

35
 
35
 
36
 # Object Files
36
 # Object Files
37
 OBJECTFILES= \
37
 OBJECTFILES= \
38
+	${OBJECTDIR}/lib/base64/base64.o \
39
+	${OBJECTDIR}/lib/camera.o \
40
+	${OBJECTDIR}/lib/commonitor.o \
41
+	${OBJECTDIR}/lib/comrobot.o \
42
+	${OBJECTDIR}/lib/img.o \
38
 	${OBJECTDIR}/lib/messages.o \
43
 	${OBJECTDIR}/lib/messages.o \
39
 	${OBJECTDIR}/main.o \
44
 	${OBJECTDIR}/main.o \
40
-	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
41
-	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
42
-	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
43
-	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
44
-	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
45
 	${OBJECTDIR}/tasks_pthread.o
45
 	${OBJECTDIR}/tasks_pthread.o
46
 
46
 
47
 
47
 
69
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
69
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
70
 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -lpthread -lrt
70
 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -lpthread -lrt
71
 
71
 
72
-${OBJECTDIR}/lib/messages.o: lib/messages.cpp
73
-	${MKDIR} -p ${OBJECTDIR}/lib
72
+${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
73
+	${MKDIR} -p ${OBJECTDIR}/lib/base64
74
 	${RM} "$@.d"
74
 	${RM} "$@.d"
75
-	$(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
75
+	$(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
76
 
76
 
77
-${OBJECTDIR}/main.o: main.cpp
78
-	${MKDIR} -p ${OBJECTDIR}
77
+${OBJECTDIR}/lib/camera.o: lib/camera.cpp
78
+	${MKDIR} -p ${OBJECTDIR}/lib
79
 	${RM} "$@.d"
79
 	${RM} "$@.d"
80
-	$(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
80
+	$(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
81
 
81
 
82
-${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp
83
-	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4
82
+${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
83
+	${MKDIR} -p ${OBJECTDIR}/lib
84
 	${RM} "$@.d"
84
 	${RM} "$@.d"
85
-	$(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
85
+	$(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
86
 
86
 
87
-${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp
88
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
87
+${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
88
+	${MKDIR} -p ${OBJECTDIR}/lib
89
 	${RM} "$@.d"
89
 	${RM} "$@.d"
90
-	$(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
90
+	$(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
91
 
91
 
92
-${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp
93
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
92
+${OBJECTDIR}/lib/img.o: lib/img.cpp
93
+	${MKDIR} -p ${OBJECTDIR}/lib
94
 	${RM} "$@.d"
94
 	${RM} "$@.d"
95
-	$(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
95
+	$(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
96
 
96
 
97
-${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp
98
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
97
+${OBJECTDIR}/lib/messages.o: lib/messages.cpp
98
+	${MKDIR} -p ${OBJECTDIR}/lib
99
 	${RM} "$@.d"
99
 	${RM} "$@.d"
100
-	$(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
100
+	$(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
101
 
101
 
102
-${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp
103
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
102
+${OBJECTDIR}/main.o: main.cpp
103
+	${MKDIR} -p ${OBJECTDIR}
104
 	${RM} "$@.d"
104
 	${RM} "$@.d"
105
-	$(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
105
+	$(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
106
 
106
 
107
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
107
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
108
 	${MKDIR} -p ${OBJECTDIR}
108
 	${MKDIR} -p ${OBJECTDIR}
109
 	${RM} "$@.d"
109
 	${RM} "$@.d"
110
-	$(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
110
+	$(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
111
 
111
 
112
 # Subprojects
112
 # Subprojects
113
 .build-subprojects:
113
 .build-subprojects:

+ 131
- 0
software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread__RPI.mk View File

1
+#
2
+# Generated Makefile - do not edit!
3
+#
4
+# Edit the Makefile in the project folder instead (../Makefile). Each target
5
+# has a -pre and a -post target defined where you can add customized code.
6
+#
7
+# This makefile implements configuration specific macros and targets.
8
+
9
+
10
+# Environment
11
+MKDIR=mkdir
12
+CP=cp
13
+GREP=grep
14
+NM=nm
15
+CCADMIN=CCadmin
16
+RANLIB=ranlib
17
+CC=gcc
18
+CCC=g++
19
+CXX=g++
20
+FC=gfortran
21
+AS=as
22
+
23
+# Macros
24
+CND_PLATFORM=GNU-Linux
25
+CND_DLIB_EXT=so
26
+CND_CONF=Debug__Pthread__RPI
27
+CND_DISTDIR=dist
28
+CND_BUILDDIR=build
29
+
30
+# Include project Makefile
31
+include ./Makefile
32
+
33
+# Object Directory
34
+OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
35
+
36
+# Object Files
37
+OBJECTFILES= \
38
+	${OBJECTDIR}/lib/base64/base64.o \
39
+	${OBJECTDIR}/lib/camera.o \
40
+	${OBJECTDIR}/lib/commonitor.o \
41
+	${OBJECTDIR}/lib/comrobot.o \
42
+	${OBJECTDIR}/lib/img.o \
43
+	${OBJECTDIR}/lib/messages.o \
44
+	${OBJECTDIR}/main.o \
45
+	${OBJECTDIR}/tasks_pthread.o
46
+
47
+
48
+# C Compiler Flags
49
+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
50
+
51
+# CC Compiler Flags
52
+CCFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11
53
+CXXFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11
54
+
55
+# Fortran Compiler Flags
56
+FFLAGS=
57
+
58
+# Assembler Flags
59
+ASFLAGS=
60
+
61
+# Link Libraries and Options
62
+LDLIBSOPTIONS=`pkg-config --libs opencv` /usr/local/lib/libraspicam_cv.so /usr/local/lib/libraspicam.so  
63
+
64
+# Build Targets
65
+.build-conf: ${BUILD_SUBPROJECTS}
66
+	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot
67
+
68
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: /usr/local/lib/libraspicam_cv.so
69
+
70
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: /usr/local/lib/libraspicam.so
71
+
72
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES}
73
+	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
74
+	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS} -lpthread -lrt
75
+
76
+${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
77
+	${MKDIR} -p ${OBJECTDIR}/lib/base64
78
+	${RM} "$@.d"
79
+	$(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
80
+
81
+${OBJECTDIR}/lib/camera.o: lib/camera.cpp
82
+	${MKDIR} -p ${OBJECTDIR}/lib
83
+	${RM} "$@.d"
84
+	$(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
85
+
86
+${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
87
+	${MKDIR} -p ${OBJECTDIR}/lib
88
+	${RM} "$@.d"
89
+	$(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
90
+
91
+${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
92
+	${MKDIR} -p ${OBJECTDIR}/lib
93
+	${RM} "$@.d"
94
+	$(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
95
+
96
+${OBJECTDIR}/lib/img.o: lib/img.cpp
97
+	${MKDIR} -p ${OBJECTDIR}/lib
98
+	${RM} "$@.d"
99
+	$(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
100
+
101
+${OBJECTDIR}/lib/messages.o: lib/messages.cpp
102
+	${MKDIR} -p ${OBJECTDIR}/lib
103
+	${RM} "$@.d"
104
+	$(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
105
+
106
+${OBJECTDIR}/main.o: main.cpp
107
+	${MKDIR} -p ${OBJECTDIR}
108
+	${RM} "$@.d"
109
+	$(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
110
+
111
+${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
112
+	${MKDIR} -p ${OBJECTDIR}
113
+	${RM} "$@.d"
114
+	$(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
115
+
116
+# Subprojects
117
+.build-subprojects:
118
+
119
+# Clean Targets
120
+.clean-conf: ${CLEAN_SUBPROJECTS}
121
+	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
122
+	${RM} -r ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libraspicam_cv.so ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libraspicam.so
123
+	${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot
124
+
125
+# Subprojects
126
+.clean-subprojects:
127
+
128
+# Enable dependency checking
129
+.dep.inc: .depcheck-impl
130
+
131
+include .dep.inc

+ 30
- 30
software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk View File

35
 
35
 
36
 # Object Files
36
 # Object Files
37
 OBJECTFILES= \
37
 OBJECTFILES= \
38
+	${OBJECTDIR}/lib/base64/base64.o \
39
+	${OBJECTDIR}/lib/camera.o \
40
+	${OBJECTDIR}/lib/commonitor.o \
41
+	${OBJECTDIR}/lib/comrobot.o \
38
 	${OBJECTDIR}/lib/image.o \
42
 	${OBJECTDIR}/lib/image.o \
43
+	${OBJECTDIR}/lib/img.o \
39
 	${OBJECTDIR}/lib/message.o \
44
 	${OBJECTDIR}/lib/message.o \
40
 	${OBJECTDIR}/lib/messages.o \
45
 	${OBJECTDIR}/lib/messages.o \
41
 	${OBJECTDIR}/lib/monitor.o \
46
 	${OBJECTDIR}/lib/monitor.o \
43
 	${OBJECTDIR}/lib/server.o \
48
 	${OBJECTDIR}/lib/server.o \
44
 	${OBJECTDIR}/main.o \
49
 	${OBJECTDIR}/main.o \
45
 	${OBJECTDIR}/tasks.o \
50
 	${OBJECTDIR}/tasks.o \
46
-	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
47
-	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
48
-	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
49
-	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
50
-	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
51
 	${OBJECTDIR}/tasks_pthread.o
51
 	${OBJECTDIR}/tasks_pthread.o
52
 
52
 
53
 
53
 
75
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
75
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
76
 	${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
76
 	${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
77
 
77
 
78
+${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
79
+	${MKDIR} -p ${OBJECTDIR}/lib/base64
80
+	${RM} "$@.d"
81
+	$(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
82
+
83
+${OBJECTDIR}/lib/camera.o: lib/camera.cpp
84
+	${MKDIR} -p ${OBJECTDIR}/lib
85
+	${RM} "$@.d"
86
+	$(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
87
+
88
+${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
89
+	${MKDIR} -p ${OBJECTDIR}/lib
90
+	${RM} "$@.d"
91
+	$(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
92
+
93
+${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
94
+	${MKDIR} -p ${OBJECTDIR}/lib
95
+	${RM} "$@.d"
96
+	$(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
97
+
78
 ${OBJECTDIR}/lib/image.o: lib/image.cpp
98
 ${OBJECTDIR}/lib/image.o: lib/image.cpp
79
 	${MKDIR} -p ${OBJECTDIR}/lib
99
 	${MKDIR} -p ${OBJECTDIR}/lib
80
 	${RM} "$@.d"
100
 	${RM} "$@.d"
81
 	$(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
101
 	$(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
82
 
102
 
103
+${OBJECTDIR}/lib/img.o: lib/img.cpp
104
+	${MKDIR} -p ${OBJECTDIR}/lib
105
+	${RM} "$@.d"
106
+	$(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
107
+
83
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
108
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
84
 	${MKDIR} -p ${OBJECTDIR}/lib
109
 	${MKDIR} -p ${OBJECTDIR}/lib
85
 	${RM} "$@.d"
110
 	${RM} "$@.d"
115
 	${RM} "$@.d"
140
 	${RM} "$@.d"
116
 	$(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
141
 	$(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
117
 
142
 
118
-${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp
119
-	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4
120
-	${RM} "$@.d"
121
-	$(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
122
-
123
-${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp
124
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
125
-	${RM} "$@.d"
126
-	$(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
127
-
128
-${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp
129
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
130
-	${RM} "$@.d"
131
-	$(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
132
-
133
-${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp
134
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
135
-	${RM} "$@.d"
136
-	$(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
137
-
138
-${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp
139
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
140
-	${RM} "$@.d"
141
-	$(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
142
-
143
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
143
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
144
 	${MKDIR} -p ${OBJECTDIR}
144
 	${MKDIR} -p ${OBJECTDIR}
145
 	${RM} "$@.d"
145
 	${RM} "$@.d"

+ 30
- 30
software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk View File

35
 
35
 
36
 # Object Files
36
 # Object Files
37
 OBJECTFILES= \
37
 OBJECTFILES= \
38
+	${OBJECTDIR}/lib/base64/base64.o \
39
+	${OBJECTDIR}/lib/camera.o \
40
+	${OBJECTDIR}/lib/commonitor.o \
41
+	${OBJECTDIR}/lib/comrobot.o \
38
 	${OBJECTDIR}/lib/image.o \
42
 	${OBJECTDIR}/lib/image.o \
43
+	${OBJECTDIR}/lib/img.o \
39
 	${OBJECTDIR}/lib/message.o \
44
 	${OBJECTDIR}/lib/message.o \
40
 	${OBJECTDIR}/lib/messages.o \
45
 	${OBJECTDIR}/lib/messages.o \
41
 	${OBJECTDIR}/lib/monitor.o \
46
 	${OBJECTDIR}/lib/monitor.o \
43
 	${OBJECTDIR}/lib/server.o \
48
 	${OBJECTDIR}/lib/server.o \
44
 	${OBJECTDIR}/main.o \
49
 	${OBJECTDIR}/main.o \
45
 	${OBJECTDIR}/tasks.o \
50
 	${OBJECTDIR}/tasks.o \
46
-	${OBJECTDIR}/_ext/a7f31ab4/base64.o \
47
-	${OBJECTDIR}/_ext/6cc0dc4a/camera.o \
48
-	${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o \
49
-	${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o \
50
-	${OBJECTDIR}/_ext/6cc0dc4a/img.o \
51
 	${OBJECTDIR}/tasks_pthread.o
51
 	${OBJECTDIR}/tasks_pthread.o
52
 
52
 
53
 
53
 
75
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
75
 	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
76
 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS}
76
 	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot ${OBJECTFILES} ${LDLIBSOPTIONS}
77
 
77
 
78
+${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
79
+	${MKDIR} -p ${OBJECTDIR}/lib/base64
80
+	${RM} "$@.d"
81
+	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
82
+
83
+${OBJECTDIR}/lib/camera.o: lib/camera.cpp
84
+	${MKDIR} -p ${OBJECTDIR}/lib
85
+	${RM} "$@.d"
86
+	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
87
+
88
+${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
89
+	${MKDIR} -p ${OBJECTDIR}/lib
90
+	${RM} "$@.d"
91
+	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
92
+
93
+${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
94
+	${MKDIR} -p ${OBJECTDIR}/lib
95
+	${RM} "$@.d"
96
+	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
97
+
78
 ${OBJECTDIR}/lib/image.o: lib/image.cpp
98
 ${OBJECTDIR}/lib/image.o: lib/image.cpp
79
 	${MKDIR} -p ${OBJECTDIR}/lib
99
 	${MKDIR} -p ${OBJECTDIR}/lib
80
 	${RM} "$@.d"
100
 	${RM} "$@.d"
81
 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/image.o lib/image.cpp
101
 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/image.o lib/image.cpp
82
 
102
 
103
+${OBJECTDIR}/lib/img.o: lib/img.cpp
104
+	${MKDIR} -p ${OBJECTDIR}/lib
105
+	${RM} "$@.d"
106
+	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
107
+
83
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
108
 ${OBJECTDIR}/lib/message.o: lib/message.cpp
84
 	${MKDIR} -p ${OBJECTDIR}/lib
109
 	${MKDIR} -p ${OBJECTDIR}/lib
85
 	${RM} "$@.d"
110
 	${RM} "$@.d"
115
 	${RM} "$@.d"
140
 	${RM} "$@.d"
116
 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp
141
 	$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp
117
 
142
 
118
-${OBJECTDIR}/_ext/a7f31ab4/base64.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp
119
-	${MKDIR} -p ${OBJECTDIR}/_ext/a7f31ab4
120
-	${RM} "$@.d"
121
-	$(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
122
-
123
-${OBJECTDIR}/_ext/6cc0dc4a/camera.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp
124
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
125
-	${RM} "$@.d"
126
-	$(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
127
-
128
-${OBJECTDIR}/_ext/6cc0dc4a/commonitor.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp
129
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
130
-	${RM} "$@.d"
131
-	$(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
132
-
133
-${OBJECTDIR}/_ext/6cc0dc4a/comrobot.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp
134
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
135
-	${RM} "$@.d"
136
-	$(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
137
-
138
-${OBJECTDIR}/_ext/6cc0dc4a/img.o: /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp
139
-	${MKDIR} -p ${OBJECTDIR}/_ext/6cc0dc4a
140
-	${RM} "$@.d"
141
-	$(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
142
-
143
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
143
 ${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
144
 	${MKDIR} -p ${OBJECTDIR}
144
 	${MKDIR} -p ${OBJECTDIR}
145
 	${RM} "$@.d"
145
 	${RM} "$@.d"

+ 1
- 1
software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk View File

31
 CONF=${DEFAULTCONF}
31
 CONF=${DEFAULTCONF}
32
 
32
 
33
 # All Configurations
33
 # All Configurations
34
-ALLCONFS=Debug Release Debug__RPI_ Debug__Pthread_ 
34
+ALLCONFS=Debug Release Debug__RPI_ Debug__Pthread_ Debug__Pthread__RPI 
35
 
35
 
36
 
36
 
37
 # build
37
 # build

+ 8
- 0
software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk View File

38
 CND_PACKAGE_DIR_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package
38
 CND_PACKAGE_DIR_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package
39
 CND_PACKAGE_NAME_Debug__Pthread_=superviseur-robot.tar
39
 CND_PACKAGE_NAME_Debug__Pthread_=superviseur-robot.tar
40
 CND_PACKAGE_PATH_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package/superviseur-robot.tar
40
 CND_PACKAGE_PATH_Debug__Pthread_=dist/Debug__Pthread_/GNU-Linux/package/superviseur-robot.tar
41
+# Debug__Pthread__RPI configuration
42
+CND_PLATFORM_Debug__Pthread__RPI=GNU-Linux
43
+CND_ARTIFACT_DIR_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux
44
+CND_ARTIFACT_NAME_Debug__Pthread__RPI=superviseur-robot
45
+CND_ARTIFACT_PATH_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot
46
+CND_PACKAGE_DIR_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/package
47
+CND_PACKAGE_NAME_Debug__Pthread__RPI=superviseur-robot.tar
48
+CND_PACKAGE_PATH_Debug__Pthread__RPI=dist/Debug__Pthread__RPI/GNU-Linux/package/superviseur-robot.tar
41
 #
49
 #
42
 # include compiler specific variables
50
 # include compiler specific variables
43
 #
51
 #

+ 76
- 0
software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash View File

1
+#!/bin/bash -x
2
+
3
+#
4
+# Generated - do not edit!
5
+#
6
+
7
+# Macros
8
+TOP=`pwd`
9
+CND_PLATFORM=GNU-Linux
10
+CND_CONF=Debug__Pthread__RPI
11
+CND_DISTDIR=dist
12
+CND_BUILDDIR=build
13
+CND_DLIB_EXT=so
14
+NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
15
+TMPDIRNAME=tmp-packaging
16
+OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot
17
+OUTPUT_BASENAME=superviseur-robot
18
+PACKAGE_TOP_DIR=superviseur-robot/
19
+
20
+# Functions
21
+function checkReturnCode
22
+{
23
+    rc=$?
24
+    if [ $rc != 0 ]
25
+    then
26
+        exit $rc
27
+    fi
28
+}
29
+function makeDirectory
30
+# $1 directory path
31
+# $2 permission (optional)
32
+{
33
+    mkdir -p "$1"
34
+    checkReturnCode
35
+    if [ "$2" != "" ]
36
+    then
37
+      chmod $2 "$1"
38
+      checkReturnCode
39
+    fi
40
+}
41
+function copyFileToTmpDir
42
+# $1 from-file path
43
+# $2 to-file path
44
+# $3 permission
45
+{
46
+    cp "$1" "$2"
47
+    checkReturnCode
48
+    if [ "$3" != "" ]
49
+    then
50
+        chmod $3 "$2"
51
+        checkReturnCode
52
+    fi
53
+}
54
+
55
+# Setup
56
+cd "${TOP}"
57
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
58
+rm -rf ${NBTMPDIR}
59
+mkdir -p ${NBTMPDIR}
60
+
61
+# Copy files and create directories and links
62
+cd "${TOP}"
63
+makeDirectory "${NBTMPDIR}/superviseur-robot/bin"
64
+copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
65
+
66
+
67
+# Generate tar file
68
+cd "${TOP}"
69
+rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar
70
+cd ${NBTMPDIR}
71
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/superviseur-robot.tar *
72
+checkReturnCode
73
+
74
+# Cleanup
75
+cd "${TOP}"
76
+rm -rf ${NBTMPDIR}

+ 167
- 168
software/raspberry/superviseur-robot/nbproject/configurations.xml View File

4
     <logicalFolder name="HeaderFiles"
4
     <logicalFolder name="HeaderFiles"
5
                    displayName="Header Files"
5
                    displayName="Header Files"
6
                    projectFiles="true">
6
                    projectFiles="true">
7
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h</itemPath>
7
+      <itemPath>./lib/base64/base64.h</itemPath>
8
       <itemPath>./lib/camera.h</itemPath>
8
       <itemPath>./lib/camera.h</itemPath>
9
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h</itemPath>
10
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h</itemPath>
9
+      <itemPath>./lib/commonitor.h</itemPath>
10
+      <itemPath>./lib/comrobot.h</itemPath>
11
       <itemPath>./lib/definitions.h</itemPath>
11
       <itemPath>./lib/definitions.h</itemPath>
12
       <itemPath>./lib/image.h</itemPath>
12
       <itemPath>./lib/image.h</itemPath>
13
       <itemPath>./lib/img.h</itemPath>
13
       <itemPath>./lib/img.h</itemPath>
27
     <logicalFolder name="SourceFiles"
27
     <logicalFolder name="SourceFiles"
28
                    displayName="Source Files"
28
                    displayName="Source Files"
29
                    projectFiles="true">
29
                    projectFiles="true">
30
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp</itemPath>
31
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp</itemPath>
32
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</itemPath>
33
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp</itemPath>
30
+      <itemPath>./lib/base64/base64.cpp</itemPath>
31
+      <itemPath>./lib/camera.cpp</itemPath>
32
+      <itemPath>./lib/commonitor.cpp</itemPath>
33
+      <itemPath>./lib/comrobot.cpp</itemPath>
34
       <itemPath>./lib/image.cpp</itemPath>
34
       <itemPath>./lib/image.cpp</itemPath>
35
-      <itemPath>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</itemPath>
35
+      <itemPath>./lib/img.cpp</itemPath>
36
       <itemPath>./main.cpp</itemPath>
36
       <itemPath>./main.cpp</itemPath>
37
       <itemPath>./lib/message.cpp</itemPath>
37
       <itemPath>./lib/message.cpp</itemPath>
38
       <itemPath>./lib/messages.cpp</itemPath>
38
       <itemPath>./lib/messages.cpp</itemPath>
55
     </logicalFolder>
55
     </logicalFolder>
56
   </logicalFolder>
56
   </logicalFolder>
57
   <sourceRootList>
57
   <sourceRootList>
58
-    <Elem>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib</Elem>
58
+    <Elem>lib</Elem>
59
   </sourceRootList>
59
   </sourceRootList>
60
   <projectmakefile>./Makefile</projectmakefile>
60
   <projectmakefile>./Makefile</projectmakefile>
61
   <confs>
61
   <confs>
95
       </compileType>
95
       </compileType>
96
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
96
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
97
       </item>
97
       </item>
98
+      <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0">
99
+      </item>
100
+      <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
101
+      </item>
102
+      <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0">
103
+      </item>
98
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
104
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
99
       </item>
105
       </item>
106
+      <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0">
107
+      </item>
108
+      <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
109
+      </item>
110
+      <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0">
111
+      </item>
112
+      <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
113
+      </item>
100
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
114
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
101
       </item>
115
       </item>
102
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
116
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
103
       </item>
117
       </item>
118
+      <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0">
119
+      </item>
104
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
120
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
105
       </item>
121
       </item>
106
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
122
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
129
       </item>
145
       </item>
130
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
146
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
131
       </item>
147
       </item>
132
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp"
133
-            ex="false"
134
-            tool="1"
135
-            flavor2="0">
136
-      </item>
137
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h"
138
-            ex="false"
139
-            tool="3"
140
-            flavor2="0">
141
-      </item>
142
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp"
143
-            ex="false"
144
-            tool="1"
145
-            flavor2="0">
146
-      </item>
147
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp"
148
-            ex="false"
149
-            tool="1"
150
-            flavor2="0">
151
-      </item>
152
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h"
153
-            ex="false"
154
-            tool="3"
155
-            flavor2="0">
156
-      </item>
157
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp"
158
-            ex="false"
159
-            tool="1"
160
-            flavor2="0">
161
-      </item>
162
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h"
163
-            ex="false"
164
-            tool="3"
165
-            flavor2="0">
166
-      </item>
167
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp"
168
-            ex="false"
169
-            tool="1"
170
-            flavor2="0">
171
-      </item>
172
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
148
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
173
       </item>
149
       </item>
174
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
150
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
196
       </compileType>
172
       </compileType>
197
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
173
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
198
       </item>
174
       </item>
175
+      <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0">
176
+      </item>
177
+      <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
178
+      </item>
179
+      <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0">
180
+      </item>
199
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
181
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
200
       </item>
182
       </item>
183
+      <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0">
184
+      </item>
185
+      <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
186
+      </item>
187
+      <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0">
188
+      </item>
189
+      <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
190
+      </item>
201
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
191
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
202
       </item>
192
       </item>
203
       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0">
193
       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0">
204
       </item>
194
       </item>
205
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
195
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
206
       </item>
196
       </item>
197
+      <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0">
198
+      </item>
207
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
199
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
208
       </item>
200
       </item>
209
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
201
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
232
       </item>
224
       </item>
233
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
225
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
234
       </item>
226
       </item>
235
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp"
236
-            ex="false"
237
-            tool="1"
238
-            flavor2="0">
239
-      </item>
240
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h"
241
-            ex="false"
242
-            tool="3"
243
-            flavor2="0">
244
-      </item>
245
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp"
246
-            ex="false"
247
-            tool="1"
248
-            flavor2="0">
249
-      </item>
250
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp"
251
-            ex="false"
252
-            tool="1"
253
-            flavor2="0">
254
-      </item>
255
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h"
256
-            ex="false"
257
-            tool="3"
258
-            flavor2="0">
259
-      </item>
260
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp"
261
-            ex="false"
262
-            tool="1"
263
-            flavor2="0">
264
-      </item>
265
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h"
266
-            ex="false"
267
-            tool="3"
268
-            flavor2="0">
269
-      </item>
270
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp"
271
-            ex="false"
272
-            tool="1"
273
-            flavor2="0">
274
-      </item>
275
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
227
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
276
       </item>
228
       </item>
277
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
229
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
316
       </compileType>
268
       </compileType>
317
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
269
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
318
       </item>
270
       </item>
271
+      <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0">
272
+      </item>
273
+      <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
274
+      </item>
275
+      <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0">
276
+      </item>
319
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
277
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
320
       </item>
278
       </item>
279
+      <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0">
280
+      </item>
281
+      <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
282
+      </item>
283
+      <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0">
284
+      </item>
285
+      <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
286
+      </item>
321
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
287
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
322
       </item>
288
       </item>
323
       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0">
289
       <item path="./lib/image.cpp" ex="false" tool="1" flavor2="0">
324
       </item>
290
       </item>
325
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
291
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
326
       </item>
292
       </item>
293
+      <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0">
294
+      </item>
327
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
295
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
328
       </item>
296
       </item>
329
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
297
       <item path="./lib/message.cpp" ex="false" tool="1" flavor2="0">
352
       </item>
320
       </item>
353
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
321
       <item path="./tasks.h" ex="false" tool="3" flavor2="0">
354
       </item>
322
       </item>
355
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp"
356
-            ex="false"
357
-            tool="1"
358
-            flavor2="0">
359
-      </item>
360
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h"
361
-            ex="false"
362
-            tool="3"
363
-            flavor2="0">
364
-      </item>
365
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp"
366
-            ex="false"
367
-            tool="1"
368
-            flavor2="0">
369
-      </item>
370
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp"
371
-            ex="false"
372
-            tool="1"
373
-            flavor2="0">
374
-      </item>
375
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h"
376
-            ex="false"
377
-            tool="3"
378
-            flavor2="0">
379
-      </item>
380
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp"
381
-            ex="false"
382
-            tool="1"
383
-            flavor2="0">
384
-      </item>
385
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h"
386
-            ex="false"
387
-            tool="3"
388
-            flavor2="0">
389
-      </item>
390
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp"
391
-            ex="false"
392
-            tool="1"
393
-            flavor2="0">
394
-      </item>
395
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
323
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
396
       </item>
324
       </item>
397
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
325
       <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
420
           <preprocessorList>
348
           <preprocessorList>
421
             <Elem>_WITH_TRACE_</Elem>
349
             <Elem>_WITH_TRACE_</Elem>
422
             <Elem>__FOR_PC__</Elem>
350
             <Elem>__FOR_PC__</Elem>
351
+            <Elem>__WITH_ARUCO__</Elem>
423
             <Elem>__WITH_PTHREAD__</Elem>
352
             <Elem>__WITH_PTHREAD__</Elem>
424
           </preprocessorList>
353
           </preprocessorList>
425
         </ccTool>
354
         </ccTool>
432
       </compileType>
361
       </compileType>
433
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
362
       <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
434
       </item>
363
       </item>
364
+      <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="0">
365
+      </item>
366
+      <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
367
+      </item>
368
+      <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="0">
369
+      </item>
435
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
370
       <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
436
       </item>
371
       </item>
372
+      <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="0">
373
+      </item>
374
+      <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
375
+      </item>
376
+      <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="0">
377
+      </item>
378
+      <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
379
+      </item>
437
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
380
       <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
438
       </item>
381
       </item>
439
       <item path="./lib/image.cpp" ex="true" tool="1" flavor2="9">
382
       <item path="./lib/image.cpp" ex="true" tool="1" flavor2="9">
440
       </item>
383
       </item>
441
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
384
       <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
442
       </item>
385
       </item>
386
+      <item path="./lib/img.cpp" ex="false" tool="1" flavor2="0">
387
+      </item>
443
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
388
       <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
444
       </item>
389
       </item>
445
       <item path="./lib/message.cpp" ex="true" tool="1" flavor2="9">
390
       <item path="./lib/message.cpp" ex="true" tool="1" flavor2="9">
466
       </item>
411
       </item>
467
       <item path="./tasks.cpp" ex="true" tool="1" flavor2="9">
412
       <item path="./tasks.cpp" ex="true" tool="1" flavor2="9">
468
       </item>
413
       </item>
469
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp"
470
-            ex="false"
471
-            tool="1"
472
-            flavor2="0">
473
-      </item>
474
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h"
475
-            ex="false"
476
-            tool="3"
477
-            flavor2="0">
478
-      </item>
479
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp"
480
-            ex="false"
481
-            tool="1"
482
-            flavor2="0">
483
-      </item>
484
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp"
485
-            ex="false"
486
-            tool="1"
487
-            flavor2="0">
488
-      </item>
489
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h"
490
-            ex="false"
491
-            tool="3"
492
-            flavor2="0">
493
-      </item>
494
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp"
495
-            ex="false"
496
-            tool="1"
497
-            flavor2="0">
498
-      </item>
499
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h"
500
-            ex="false"
501
-            tool="3"
502
-            flavor2="0">
503
-      </item>
504
-      <item path="/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp"
505
-            ex="false"
506
-            tool="1"
507
-            flavor2="0">
414
+      <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="9">
415
+      </item>
416
+      <item path="tasks_pthread.h" ex="false" tool="3" flavor2="0">
417
+      </item>
418
+    </conf>
419
+    <conf name="Debug__Pthread__RPI" type="1">
420
+      <toolsSet>
421
+        <compilerSet>GNU|GNU</compilerSet>
422
+        <dependencyChecking>true</dependencyChecking>
423
+        <rebuildPropChanged>false</rebuildPropChanged>
424
+      </toolsSet>
425
+      <compileType>
426
+        <cTool>
427
+          <incDir>
428
+            <pElem>./</pElem>
429
+            <pElem>./lib</pElem>
430
+            <pElem>./lib/base64</pElem>
431
+          </incDir>
432
+          <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>
433
+        </cTool>
434
+        <ccTool>
435
+          <standard>8</standard>
436
+          <incDir>
437
+            <pElem>./</pElem>
438
+            <pElem>./lib</pElem>
439
+            <pElem>./lib/base64</pElem>
440
+          </incDir>
441
+          <commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11</commandLine>
442
+          <preprocessorList>
443
+            <Elem>_WITH_TRACE_</Elem>
444
+            <Elem>__WITH_PTHREAD__</Elem>
445
+          </preprocessorList>
446
+        </ccTool>
447
+        <linkerTool>
448
+          <linkerLibItems>
449
+            <linkerOptionItem>`pkg-config --libs opencv`</linkerOptionItem>
450
+            <linkerLibFileItem>/usr/local/lib/libraspicam_cv.so</linkerLibFileItem>
451
+            <linkerLibFileItem>/usr/local/lib/libraspicam.so</linkerLibFileItem>
452
+          </linkerLibItems>
453
+          <commandLine>-lpthread -lrt</commandLine>
454
+        </linkerTool>
455
+      </compileType>
456
+      <item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
457
+      </item>
458
+      <item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="8">
459
+      </item>
460
+      <item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
461
+      </item>
462
+      <item path="./lib/camera.cpp" ex="false" tool="1" flavor2="8">
463
+      </item>
464
+      <item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
465
+      </item>
466
+      <item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="8">
467
+      </item>
468
+      <item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
469
+      </item>
470
+      <item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="8">
471
+      </item>
472
+      <item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
473
+      </item>
474
+      <item path="./lib/definitions.h" ex="false" tool="3" flavor2="0">
475
+      </item>
476
+      <item path="./lib/image.cpp" ex="true" tool="1" flavor2="9">
477
+      </item>
478
+      <item path="./lib/image.h" ex="false" tool="3" flavor2="0">
479
+      </item>
480
+      <item path="./lib/img.cpp" ex="false" tool="1" flavor2="8">
481
+      </item>
482
+      <item path="./lib/img.h" ex="false" tool="3" flavor2="0">
483
+      </item>
484
+      <item path="./lib/message.cpp" ex="true" tool="1" flavor2="9">
485
+      </item>
486
+      <item path="./lib/message.h" ex="false" tool="3" flavor2="0">
487
+      </item>
488
+      <item path="./lib/messages.cpp" ex="false" tool="1" flavor2="9">
489
+      </item>
490
+      <item path="./lib/messages.h" ex="false" tool="3" flavor2="0">
491
+      </item>
492
+      <item path="./lib/monitor.cpp" ex="true" tool="1" flavor2="9">
493
+      </item>
494
+      <item path="./lib/monitor.h" ex="false" tool="3" flavor2="0">
495
+      </item>
496
+      <item path="./lib/robot.cpp" ex="true" tool="1" flavor2="9">
497
+      </item>
498
+      <item path="./lib/robot.h" ex="false" tool="3" flavor2="0">
499
+      </item>
500
+      <item path="./lib/server.cpp" ex="true" tool="1" flavor2="9">
501
+      </item>
502
+      <item path="./lib/server.h" ex="false" tool="3" flavor2="0">
503
+      </item>
504
+      <item path="./main.cpp" ex="false" tool="1" flavor2="9">
505
+      </item>
506
+      <item path="./tasks.cpp" ex="true" tool="1" flavor2="9">
508
       </item>
507
       </item>
509
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="9">
508
       <item path="tasks_pthread.cpp" ex="false" tool="1" flavor2="9">
510
       </item>
509
       </item>

+ 1
- 0
software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk View File

7
 # Release configuration
7
 # Release configuration
8
 # Debug__RPI_ configuration
8
 # Debug__RPI_ configuration
9
 # Debug__Pthread_ configuration
9
 # Debug__Pthread_ configuration
10
+# Debug__Pthread__RPI configuration

+ 37
- 2
software/raspberry/superviseur-robot/nbproject/private/configurations.xml View File

116
         <gdb_interceptlist>
116
         <gdb_interceptlist>
117
           <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
117
           <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
118
         </gdb_interceptlist>
118
         </gdb_interceptlist>
119
-        <gdb_signals>
120
-        </gdb_signals>
119
+        <gdb_options>
120
+          <DebugOptions>
121
+          </DebugOptions>
122
+        </gdb_options>
123
+        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
124
+      </dbx_gdbdebugger>
125
+      <nativedebugger version="1">
126
+        <engine>gdb</engine>
127
+      </nativedebugger>
128
+      <runprofile version="9">
129
+        <runcommandpicklist>
130
+          <runcommandpicklistitem>sudo "${OUTPUT_PATH}"</runcommandpicklistitem>
131
+          <runcommandpicklistitem>sudo -E "${OUTPUT_PATH}"</runcommandpicklistitem>
132
+          <runcommandpicklistitem>pkexec "${OUTPUT_PATH}"</runcommandpicklistitem>
133
+          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
134
+        </runcommandpicklist>
135
+        <runcommand>"${OUTPUT_PATH}"</runcommand>
136
+        <rundir></rundir>
137
+        <buildfirst>true</buildfirst>
138
+        <console-type>1</console-type>
139
+        <terminal-type>0</terminal-type>
140
+        <remove-instrumentation>0</remove-instrumentation>
141
+        <environment>
142
+        </environment>
143
+      </runprofile>
144
+    </conf>
145
+    <conf name="Debug__Pthread__RPI" type="1">
146
+      <toolsSet>
147
+        <developmentServer>pi@10.105.1.13:22</developmentServer>
148
+        <platform>2</platform>
149
+      </toolsSet>
150
+      <dbx_gdbdebugger version="1">
151
+        <gdb_pathmaps>
152
+        </gdb_pathmaps>
153
+        <gdb_interceptlist>
154
+          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
155
+        </gdb_interceptlist>
121
         <gdb_options>
156
         <gdb_options>
122
           <DebugOptions>
157
           <DebugOptions>
123
           </DebugOptions>
158
           </DebugOptions>

+ 3
- 0
software/raspberry/superviseur-robot/nbproject/private/downloads-10.105.1.13-pi-22 View File

1
+#Tue Jan 08 15:35:51 CET 2019
2
+____VERSION=2.0
3
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/dist/Debug__Pthread__RPI/GNU-Linux/superviseur-robot=1v

+ 1
- 0
software/raspberry/superviseur-robot/nbproject/private/private.xml View File

10
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h</file>
10
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h</file>
11
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h</file>
11
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h</file>
12
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h</file>
12
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h</file>
13
+            <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</file>
13
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp</file>
14
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp</file>
14
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h</file>
15
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h</file>
15
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</file>
16
             <file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</file>

+ 86
- 25
software/raspberry/superviseur-robot/nbproject/private/timestamps-10.105.1.13-pi-22 View File

1
-#Tue Nov 13 15:41:05 CET 2018
2
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000
3
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1542116851000
4
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/CMakeLists.txt=c1541685829000
5
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug.bash=c1541685829000
6
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000
7
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000
8
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=c1542105020000
9
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1542117446000
10
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000
11
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000
12
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1542120059000
13
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000
1
+#Wed Jan 09 09:35:50 CET 2019
2
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000
3
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1518398687000
4
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/uiExample.cpp=c1542120848000
5
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1546526768000
6
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1546527039000
7
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Release.mk=c1542104029000
8
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1518398687000
9
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1518398687000
10
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.cpp=c1544778298000
11
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Release.bash=c1544780526000
12
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1545405815000
13
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1544778298000
14
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000
14
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug__RPI_.mk=c1542104029000
15
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-variables.mk=c1542029322000
16
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000
17
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.xml=c1542104029000
15
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1545320764000
16
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp=c1542120059000
17
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/ProjDestijl.cbp=c1542120848000
18
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/TPRT.Doxyfile=c1544778298000
19
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1546855871000
20
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug.bash=c1544780526000
21
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1546855871000
22
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1544778298000
23
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/.gitignore=c1542120848000
24
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Release.mk=c1546856794000
18
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000
25
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/private/Makefile-variables.mk=c1542029322000
19
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000
20
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.h=c1542117282000
26
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.cpp=c1544778298000
27
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/Makefile=c1542100687000
28
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.cpp=c1544778298000
29
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1546875478000
30
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/image.h=c1544797217000
21
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000
31
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.gitignore=c1541685829000
22
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Release.mk=c1542104029000
32
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/definitions.h=c1544778298000
33
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/gdbsudo.sh=c1541685829000
34
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1545386748000
23
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000
35
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=c1542104053000
36
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1542120848000
37
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1546940198000
38
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/videoExample.cpp=c1542120848000
24
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000
39
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h=c1542117699000
40
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug.mk=c1546856794000
41
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1518398687000
42
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/.dep.inc=c1542102478000
43
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1542120848000
44
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1544780526000
45
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug__RPI_.bash=c1542029322000
46
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1546866048000
47
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=c1542105162000
48
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1545406561000
49
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.h=c1544778298000
50
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread__RPI.bash=c1546855871000
51
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-Debug.mk=c1542104029000
52
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1518398687000
53
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1542120848000
54
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp=c1542116921000
55
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.xml=c1542104029000
56
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1546855871000
57
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialTest.cpp=c1542120848000
25
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000
58
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=c1542105130000
26
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.h=c1542120024000
27
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/gdbsudo.sh=c1541685829000
28
-VERSION=1.3
29
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1542119920000
59
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/CMakeLists.txt=c1542120848000
60
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1518398687000
30
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000
61
 /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-impl.mk=c1542029322000
31
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/definitions.h=c1542116893000
32
-/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp=c1542116921000
62
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/robot.cpp=c1544778298000
63
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1546940179000
64
+VERSION=1.3
65
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/CMakeLists.txt=c1541685829000
66
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread__RPI.mk=c1546862281000
67
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Makefile-variables.mk=c1542029322000
68
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=c1542105020000
69
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serverTest.cpp=c1542120848000
70
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__Pthread_.bash=c1545062469000
71
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h=c1544778298000
72
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1518398687000
73
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1546526752000
74
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__Pthread_.mk=c1546856794000
75
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/rtvideoExample.cpp=c1542120848000
76
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/src/serialExample.cpp=c1542120848000
77
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=c1542105181000
78
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/compile_commands.json=c1542120848000
79
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/message.h=c1544778298000
80
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1546856794000
81
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/monitor.cpp=c1544778298000
82
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/project.properties=c1542103467000
83
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Release.bash=c1541685829000
84
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1546961625000
85
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1546961074000
86
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp=c1546512226000
87
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1546959546000
88
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1546856299000
89
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/examples/CMakeLists.txt=c1542120848000
90
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/nbproject/Package-Debug.bash=c1541685829000
91
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1546959623000
92
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1542100687000
93
+/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/CMakeLists.txt=c1542120848000

+ 5
- 1
software/raspberry/superviseur-robot/nbproject/project.xml View File

10
             <sourceEncoding>UTF-8</sourceEncoding>
10
             <sourceEncoding>UTF-8</sourceEncoding>
11
             <make-dep-projects/>
11
             <make-dep-projects/>
12
             <sourceRootList>
12
             <sourceRootList>
13
-                <sourceRootElem>/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib</sourceRootElem>
13
+                <sourceRootElem>lib</sourceRootElem>
14
             </sourceRootList>
14
             </sourceRootList>
15
             <confList>
15
             <confList>
16
                 <confElem>
16
                 <confElem>
29
                     <name>Debug__Pthread_</name>
29
                     <name>Debug__Pthread_</name>
30
                     <type>1</type>
30
                     <type>1</type>
31
                 </confElem>
31
                 </confElem>
32
+                <confElem>
33
+                    <name>Debug__Pthread__RPI</name>
34
+                    <type>1</type>
35
+                </confElem>
32
             </confList>
36
             </confList>
33
             <formatting>
37
             <formatting>
34
                 <project-formatting-style>false</project-formatting-style>
38
                 <project-formatting-style>false</project-formatting-style>

+ 159
- 89
software/raspberry/superviseur-robot/tasks_pthread.cpp View File

48
  */
48
  */
49
 
49
 
50
 void Tasks::Init() {
50
 void Tasks::Init() {
51
-    int status; 
52
-    
51
+    int status;
52
+
53
     /* Open com port with STM32 */
53
     /* Open com port with STM32 */
54
     cout << "Open serial com (";
54
     cout << "Open serial com (";
55
-    status = robot.Open("/dev/ttyUSB0");
55
+    status = robot.Open();
56
     cout << status;
56
     cout << status;
57
     cout << ")" << endl;
57
     cout << ")" << endl;
58
 
58
 
60
         // Open server
60
         // Open server
61
 
61
 
62
         status = monitor.Open(SERVER_PORT);
62
         status = monitor.Open(SERVER_PORT);
63
-        cout << "Open server on port " << SERVER_PORT << " (" << status << ")" << endl;
63
+        cout << "Open server on port " << (SERVER_PORT) << " (" << status << ")" << endl;
64
 
64
 
65
         if (status < 0) throw std::runtime_error {
65
         if (status < 0) throw std::runtime_error {
66
             "Unable to start server on port " + std::to_string(SERVER_PORT)
66
             "Unable to start server on port " + std::to_string(SERVER_PORT)
72
 }
72
 }
73
 
73
 
74
 void Tasks::Run() {
74
 void Tasks::Run() {
75
-    
76
-    threadTimer=new thread((void (*)(void*)) &Tasks::TimerTask,this);
77
-    threadServer=new thread((void (*)(void*)) &Tasks::ServerTask,this);
75
+    threadTimer = new thread((void (*)(void*)) & Tasks::TimerTask, this);
76
+    threadServer = new thread((void (*)(void*)) & Tasks::ServerTask, this);
77
+
78
     //    threadSendToMon=new thread((void (*)(void*)) &Tasks::SendToMonTask,this);
78
     //    threadSendToMon=new thread((void (*)(void*)) &Tasks::SendToMonTask,this);
79
-    
80
 
79
 
81
-//    msgSend = ComRobot::Ping();
82
-//    cout << "Send => " << msgSend->ToString() << endl << flush;
83
-//    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
84
-//    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
85
-//
86
-//    delete(msgRcv);
87
-//
88
-//    msgSend = ComRobot::StartWithoutWD();
89
-//    cout << "Send => " << msgSend->ToString() << endl << flush;
90
-//    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
91
-//    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
92
-//
93
-//    delete(msgRcv);
94
-//
95
-//    msgSend = ComRobot::Move(1000);
96
-//    cout << "Send => " << msgSend->ToString() << endl << flush;
97
-//    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
98
-//    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
99
-//
100
-//    delete(msgRcv);
101
-//
102
-//    msgSend = ComRobot::GetBattery();
103
-//    cout << "Send => " << msgSend->ToString() << endl << flush;
104
-//    msgRcv = robot.SendCommand(msgSend, MESSAGE_ROBOT_BATTERY_LEVEL, 3);
105
-//    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
106
-//
107
-//    delete(msgRcv);
108
-    cout<<"Tasks launched"<<endl<<flush; 
80
+    //
81
+    //    Camera camera=Camera(sm);
82
+    //    cout << "Try opening camera"<<endl<<flush;
83
+    //    if (camera.Open()) cout<<"Camera opened successfully"<<endl<<flush;
84
+    //    else cout<<"Failed to open camera"<<endl<<flush;
85
+    //    
86
+    //    counter = 0;
87
+    //    while (1) {
88
+    //        Img image=camera.Grab();
89
+    //        
90
+    //        counter++;
91
+    //        
92
+    //        if (flag == true) {
93
+    //            cout<< "Image info: "<<image.ToString()<<endl<<flush;
94
+    //            cout << "FPS = "<<to_string(counter)<<endl<<flush;
95
+    //            flag=false;
96
+    //            counter=0;
97
+    //        }
98
+    //    }
99
+
100
+
101
+    //    msgSend = ComRobot::Ping();
102
+    //    cout << "Send => " << msgSend->ToString() << endl << flush;
103
+    //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
104
+    //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
105
+    //
106
+    //    delete(msgRcv);
107
+    //
108
+    //    msgSend = ComRobot::StartWithoutWD();
109
+    //    cout << "Send => " << msgSend->ToString() << endl << flush;
110
+    //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
111
+    //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
112
+    //
113
+    //    delete(msgRcv);
114
+    //
115
+    //    msgSend = ComRobot::Move(1000);
116
+    //    cout << "Send => " << msgSend->ToString() << endl << flush;
117
+    //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
118
+    //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
119
+    //
120
+    //    delete(msgRcv);
121
+    //
122
+    //    msgSend = ComRobot::GetBattery();
123
+    //    cout << "Send => " << msgSend->ToString() << endl << flush;
124
+    //    msgRcv = robot.SendCommand(msgSend, MESSAGE_ROBOT_BATTERY_LEVEL, 3);
125
+    //    cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
126
+    //
127
+    //    delete(msgRcv);
128
+    cout << "Tasks launched" << endl << flush;
109
 }
129
 }
110
 
130
 
111
 void Tasks::Stop() {
131
 void Tasks::Stop() {
116
 void Tasks::ServerTask(void *arg) {
136
 void Tasks::ServerTask(void *arg) {
117
     Message *msgRcv;
137
     Message *msgRcv;
118
     Message *msgSend;
138
     Message *msgSend;
119
-    bool isActive=true;
120
-    
121
-    cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush;
122
-    
139
+    bool isActive = true;
140
+
141
+    cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
142
+
123
     while (isActive) {
143
     while (isActive) {
124
-        msgRcv=NULL;
125
-        msgSend=NULL;
126
-        
144
+        msgRcv = NULL;
145
+        msgSend = NULL;
146
+
127
         msgRcv = monitor.Read();
147
         msgRcv = monitor.Read();
128
         cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
148
         cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
129
 
149
 
132
 
152
 
133
         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
153
         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
134
         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
154
         if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
135
-        
155
+
136
         if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) isActive = false;
156
         if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) isActive = false;
137
 
157
 
138
         if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) {
158
         if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) {
139
-            sendImage=true;
159
+            sendImage = true;
140
             msgSend = new Message(MESSAGE_ANSWER_ACK);
160
             msgSend = new Message(MESSAGE_ANSWER_ACK);
141
         }
161
         }
142
-        
162
+
143
         if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) {
163
         if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) {
144
-            sendImage=false;
164
+            sendImage = false;
145
             msgSend = new Message(MESSAGE_ANSWER_ACK);
165
             msgSend = new Message(MESSAGE_ANSWER_ACK);
146
         }
166
         }
147
-        
167
+
148
         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) {
168
         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) {
149
-            sendPosition=true;
169
+            sendPosition = true;
150
             msgSend = new Message(MESSAGE_ANSWER_ACK);
170
             msgSend = new Message(MESSAGE_ANSWER_ACK);
151
         }
171
         }
152
-        
172
+
153
         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) {
173
         if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) {
154
-            sendPosition=false;
174
+            sendPosition = false;
155
             msgSend = new Message(MESSAGE_ANSWER_ACK);
175
             msgSend = new Message(MESSAGE_ANSWER_ACK);
156
         }
176
         }
157
-        
158
-        if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL,BATTERY_FULL);
159
-        
177
+
178
+        if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL, BATTERY_FULL);
179
+
180
+        if (msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA)) showArena = true;
181
+        if (msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM)) showArena = false;
182
+        if (msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM)) showArena = false;
183
+
160
         if (msgSend != NULL) monitor.Write(msgSend);
184
         if (msgSend != NULL) monitor.Write(msgSend);
161
         delete(msgRcv);
185
         delete(msgRcv);
162
     }
186
     }
166
     struct timespec tim, tim2;
190
     struct timespec tim, tim2;
167
     Message *msgSend;
191
     Message *msgSend;
168
     int counter;
192
     int counter;
193
+    int cntFrame = 0;
194
+    Position pos;
195
+    Arena arena;
169
     
196
     
170
     tim.tv_sec = 0;
197
     tim.tv_sec = 0;
171
     tim.tv_nsec = 50000000; // 50ms (20fps)
198
     tim.tv_nsec = 50000000; // 50ms (20fps)
172
-    
173
-    cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush;
174
-    
175
-    Camera camera=Camera(sm);
176
-    cout << "Try opening camera"<<endl<<flush;
177
-    if (camera.Open()) cout<<"Camera opened successfully"<<endl<<flush;
178
-    else cout<<"Failed to open camera"<<endl<<flush;
199
+
200
+    cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
201
+
202
+    Camera camera = Camera(sm, 10);
203
+    cout << "Try opening camera" << endl << flush;
204
+    if (camera.Open()) cout << "Camera opened successfully" << endl << flush;
205
+    else {
206
+        cout << "Failed to open camera" << endl << flush;
207
+        
208
+        exit(0);
209
+    }
210
+
211
+    pos.angle = 0.0;
212
+    pos.robotId = -1;
213
+    pos.center = cv::Point2f(0, 0);
214
+    pos.direction = cv::Point2f(0, 0);
179
     
215
     
180
     while (1) {
216
     while (1) {
181
         //std::this_thread::sleep_for(std::chrono::seconds )
217
         //std::this_thread::sleep_for(std::chrono::seconds )
182
         //sleep(1);
218
         //sleep(1);
183
-        if (nanosleep(&tim, &tim2) < 0) {
184
-            printf("Nano sleep system call failed \n");
185
-            return;
186
-        }
187
-        
219
+        //        if (nanosleep(&tim, &tim2) < 0) {
220
+        //            printf("Nano sleep system call failed \n");
221
+        //            return;
222
+        //        }
223
+
224
+        //        counter++;
225
+        //        if (counter>=10) {
226
+        //            flag=true;
227
+        //            counter=0;
228
+        //        }
188
         //mutexTimer.unlock();
229
         //mutexTimer.unlock();
189
-        if (sendImage==true) {
230
+        Img image = camera.Grab(); // 15fps
231
+
232
+        if (sendPosition == true) {
190
             counter++;
233
             counter++;
191
-            
192
-            if (counter>=1) {
193
-                counter=0;
194
-                Img image=camera.Grab();
195
-                
196
-                cout << image.ToString()<<endl<<flush;
197
-                MessageImg *msg=new MessageImg(MESSAGE_CAM_IMAGE, &image);
234
+
235
+            if (counter >= 1) { // div =15
236
+                counter = 0;
198
                 
237
                 
199
-                monitor.Write(msg);
200
-                cout << "Image sent"<<endl<<flush;
238
+                //if (!arena.IsEmpty()) {
239
+                image.dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(3));
240
+                list<Position> poses = image.SearchAruco(arena);
241
+         
242
+                //std::list<Position> poses = image.SearchRobot(arena);
243
+                cout << "Nbr of pos detected: " << to_string(poses.size()) << endl << flush;
244
+
245
+                if (poses.size() > 0) {
246
+                    Position firstPos = poses.front();
247
+
248
+                    pos.angle = firstPos.angle;
249
+                    pos.robotId = firstPos.robotId;
250
+                    pos.center = firstPos.center;
251
+                    pos.direction = firstPos.direction;
252
+                } else {
253
+                    // Nothing found
254
+                    pos.angle = 0.0;
255
+                    pos.robotId = -1;
256
+                    pos.center = cv::Point2f(0,0);
257
+                    pos.direction = cv::Point2f(0,0);
258
+                }
259
+
260
+                MessagePosition *msgp = new MessagePosition(MESSAGE_CAM_POSITION, pos);
261
+                monitor.Write(msgp);
262
+                cout << "Position sent" << endl << flush;
201
             }
263
             }
202
         }
264
         }
203
         
265
         
204
-        if (sendPosition==true) {
205
-            Position pos;
206
-            pos.angle=0.0;
207
-            pos.robotId=1;
208
-            pos.center=cv::Point2f(0.5,0.5);
209
-            pos.direction=cv::Point2f(1.0,2.5);
266
+        if (sendImage == true) {
267
+            if (showArena) {
268
+                arena = image.SearchArena();
269
+
270
+                if (!arena.IsEmpty()) image.DrawArena(arena);
271
+                else cout << "Arena not found" << endl << flush;
272
+            }
273
+
274
+            if (sendPosition == true) {
275
+                image.DrawRobot(pos);
276
+            }
277
+             
278
+            if (!arena.IsEmpty()) image.DrawArena(arena);
210
             
279
             
211
-            MessagePosition *msgp=new MessagePosition(MESSAGE_CAM_POSITION, pos);
212
-            monitor.Write(msgp);
213
-            cout << "Position sent"<<endl<<flush;
280
+            MessageImg *msg = new MessageImg(MESSAGE_CAM_IMAGE, &image);
281
+
282
+            monitor.Write(msg);
283
+            cntFrame++;
284
+            cout << "cnt: " << to_string(cntFrame) << endl << flush;
214
         }
285
         }
215
     }
286
     }
216
 }
287
 }
217
 
288
 
218
 void Tasks::SendToMonTask(void* arg) {
289
 void Tasks::SendToMonTask(void* arg) {
219
-    
220
-    cout << "Start " << __PRETTY_FUNCTION__ <<endl<<flush;
221
-    
290
+    cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
291
+
222
     while (1) {
292
     while (1) {
223
-        
293
+
224
     }
294
     }
225
 }
295
 }
226
 
296
 

+ 5
- 0
software/raspberry/superviseur-robot/tasks_pthread.h View File

93
     bool sendImage=false;
93
     bool sendImage=false;
94
     bool sendPosition=false;
94
     bool sendPosition=false;
95
     
95
     
96
+    int counter;
97
+    bool flag;
98
+    
99
+    bool showArena=false;
100
+    
96
     thread *threadServer;
101
     thread *threadServer;
97
     thread *threadSendToMon;
102
     thread *threadSendToMon;
98
     thread *threadTimer;
103
     thread *threadTimer;

Loading…
Cancel
Save