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