Compare commits
5 commits
master
...
double_por
Author | SHA1 | Date | |
---|---|---|---|
|
ff85e268e8 | ||
|
f3a83fa7d9 | ||
|
11ad235552 | ||
|
9a7132e922 | ||
|
37b9477567 |
39 changed files with 1452 additions and 1234 deletions
|
@ -20,7 +20,8 @@
|
|||
|
||||
OPENCV_VERSION='3.4.2'
|
||||
|
||||
|
||||
mkdir opencv
|
||||
cd opencv
|
||||
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
|
||||
|
||||
sudo apt-get -y update
|
||||
|
@ -82,6 +83,22 @@ make -j5
|
|||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
# 4. Compile raspicam
|
||||
cd ~
|
||||
cd opencv
|
||||
|
||||
wget https://sourceforge.net/projects/raspicam/files/latest/raspicam.zip
|
||||
unzip raspicam.zip
|
||||
cd raspicam-0.1.6
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
|
||||
make -j5
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
|
||||
# 4. EXECUTE SOME OPENCV EXAMPLES AND COMPILE A DEMONSTRATION
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public partial class MainWindow : Gtk.Window
|
|||
/// <summary>
|
||||
/// Position used for displaying position
|
||||
/// </summary>
|
||||
private DestijlCommandManager.Position position=new DestijlCommandManager.Position();
|
||||
//private DestijlCommandManager.Position position=new DestijlCommandManager.Position();
|
||||
|
||||
/// <summary>
|
||||
/// List of availble state for the application
|
||||
|
@ -662,6 +662,7 @@ public partial class MainWindow : Gtk.Window
|
|||
/// </summary>
|
||||
/// <param name="sender">Sender object</param>
|
||||
/// <param name="e">Event</param>
|
||||
///
|
||||
protected void OnButtonAskArenaClicked(object sender, EventArgs e)
|
||||
{
|
||||
// Send command to server for arean rendering
|
||||
|
|
|
@ -530,92 +530,91 @@ public partial class MainWindow
|
|||
this.table4.ColumnSpacing = ((uint)(6));
|
||||
// Container child table4.Gtk.Table+TableChild
|
||||
this.buttonDown = new global::Gtk.Button();
|
||||
global::Gtk.Tooltips w40 = new Gtk.Tooltips();
|
||||
w40.SetTip(this.buttonDown, "Move robot backward", "Move robot backward");
|
||||
this.buttonDown.TooltipMarkup = "Move robot backward";
|
||||
this.buttonDown.CanFocus = true;
|
||||
this.buttonDown.Name = "buttonDown";
|
||||
this.buttonDown.UseUnderline = true;
|
||||
global::Gtk.Image w41 = new global::Gtk.Image();
|
||||
w41.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-down-symbolic.symbolic.png");
|
||||
this.buttonDown.Image = w41;
|
||||
global::Gtk.Image w40 = new global::Gtk.Image();
|
||||
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 w42 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonDown]));
|
||||
w42.TopAttach = ((uint)(2));
|
||||
w42.BottomAttach = ((uint)(3));
|
||||
w42.LeftAttach = ((uint)(1));
|
||||
w42.RightAttach = ((uint)(2));
|
||||
w42.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w42.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
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();
|
||||
w40.SetTip(this.buttonForward, "Move robot forward", "Move robot forward");
|
||||
this.buttonForward.TooltipMarkup = "Move robot forward";
|
||||
this.buttonForward.CanFocus = true;
|
||||
this.buttonForward.Name = "buttonForward";
|
||||
this.buttonForward.UseUnderline = true;
|
||||
global::Gtk.Image w43 = new global::Gtk.Image();
|
||||
w43.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-up-symbolic.symbolic.png");
|
||||
this.buttonForward.Image = w43;
|
||||
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 w44 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonForward]));
|
||||
w44.LeftAttach = ((uint)(1));
|
||||
w44.RightAttach = ((uint)(2));
|
||||
w44.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w44.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
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();
|
||||
w40.SetTip(this.buttonLeft, "Turn robot to the left", "Turn robot to the left");
|
||||
this.buttonLeft.TooltipMarkup = "Turn robot to the left";
|
||||
this.buttonLeft.CanFocus = true;
|
||||
this.buttonLeft.Name = "buttonLeft";
|
||||
this.buttonLeft.UseUnderline = true;
|
||||
global::Gtk.Image w45 = new global::Gtk.Image();
|
||||
w45.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-start-symbolic.symbolic.png");
|
||||
this.buttonLeft.Image = w45;
|
||||
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 w46 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonLeft]));
|
||||
w46.TopAttach = ((uint)(1));
|
||||
w46.BottomAttach = ((uint)(2));
|
||||
w46.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w46.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();
|
||||
w40.SetTip(this.buttonRight, "Turn robot to the right", "Turn robot to the right");
|
||||
this.buttonRight.TooltipMarkup = "Turn robot to the right";
|
||||
this.buttonRight.CanFocus = true;
|
||||
this.buttonRight.Name = "buttonRight";
|
||||
this.buttonRight.UseUnderline = true;
|
||||
global::Gtk.Image w47 = new global::Gtk.Image();
|
||||
w47.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.pan-end-symbolic.symbolic.png");
|
||||
this.buttonRight.Image = w47;
|
||||
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 w48 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonRight]));
|
||||
w48.TopAttach = ((uint)(1));
|
||||
w48.BottomAttach = ((uint)(2));
|
||||
w48.LeftAttach = ((uint)(2));
|
||||
w48.RightAttach = ((uint)(3));
|
||||
w48.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w48.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));
|
||||
// Container child table4.Gtk.Table+TableChild
|
||||
this.buttonStop = new global::Gtk.Button();
|
||||
w40.SetTip(this.buttonStop, "Stop robot movements", "Stop robot movements");
|
||||
this.buttonStop.TooltipMarkup = "Stop robot movements";
|
||||
this.buttonStop.CanFocus = true;
|
||||
this.buttonStop.Name = "buttonStop";
|
||||
this.buttonStop.UseUnderline = true;
|
||||
global::Gtk.Image w49 = new global::Gtk.Image();
|
||||
w49.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png");
|
||||
this.buttonStop.Image = w49;
|
||||
global::Gtk.Image w48 = new global::Gtk.Image();
|
||||
w48.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("monitor.ressources.hand-filled-32.png");
|
||||
this.buttonStop.Image = w48;
|
||||
this.table4.Add(this.buttonStop);
|
||||
global::Gtk.Table.TableChild w50 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop]));
|
||||
w50.TopAttach = ((uint)(1));
|
||||
w50.BottomAttach = ((uint)(2));
|
||||
w50.LeftAttach = ((uint)(1));
|
||||
w50.RightAttach = ((uint)(2));
|
||||
w50.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w50.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
global::Gtk.Table.TableChild w49 = ((global::Gtk.Table.TableChild)(this.table4[this.buttonStop]));
|
||||
w49.TopAttach = ((uint)(1));
|
||||
w49.BottomAttach = ((uint)(2));
|
||||
w49.LeftAttach = ((uint)(1));
|
||||
w49.RightAttach = ((uint)(2));
|
||||
w49.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w49.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
this.alignment8.Add(this.table4);
|
||||
this.vbox9.Add(this.alignment8);
|
||||
global::Gtk.Box.BoxChild w52 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8]));
|
||||
w52.Position = 0;
|
||||
w52.Expand = false;
|
||||
w52.Fill = false;
|
||||
global::Gtk.Box.BoxChild w51 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.alignment8]));
|
||||
w51.Position = 0;
|
||||
w51.Expand = false;
|
||||
w51.Fill = false;
|
||||
// Container child vbox9.Gtk.Box+BoxChild
|
||||
this.table3 = new global::Gtk.Table(((uint)(1)), ((uint)(2)), false);
|
||||
this.table3.Name = "table3";
|
||||
|
@ -628,10 +627,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 w53 = ((global::Gtk.Table.TableChild)(this.table3[this.label3]));
|
||||
w53.YPadding = ((uint)(10));
|
||||
w53.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w53.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
global::Gtk.Table.TableChild w52 = ((global::Gtk.Table.TableChild)(this.table3[this.label3]));
|
||||
w52.YPadding = ((uint)(10));
|
||||
w52.XOptions = ((global::Gtk.AttachOptions)(4));
|
||||
w52.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
// Container child table3.Gtk.Table+TableChild
|
||||
this.labelBatteryLevel = new global::Gtk.Label();
|
||||
this.labelBatteryLevel.Name = "labelBatteryLevel";
|
||||
|
@ -639,49 +638,48 @@ 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 w54 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel]));
|
||||
w54.LeftAttach = ((uint)(1));
|
||||
w54.RightAttach = ((uint)(2));
|
||||
w54.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
global::Gtk.Table.TableChild w53 = ((global::Gtk.Table.TableChild)(this.table3[this.labelBatteryLevel]));
|
||||
w53.LeftAttach = ((uint)(1));
|
||||
w53.RightAttach = ((uint)(2));
|
||||
w53.YOptions = ((global::Gtk.AttachOptions)(4));
|
||||
this.vbox9.Add(this.table3);
|
||||
global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3]));
|
||||
w55.Position = 2;
|
||||
w55.Expand = false;
|
||||
w55.Fill = false;
|
||||
global::Gtk.Box.BoxChild w54 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.table3]));
|
||||
w54.Position = 2;
|
||||
w54.Expand = false;
|
||||
w54.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 w56 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery]));
|
||||
w56.Position = 3;
|
||||
w56.Expand = false;
|
||||
w56.Fill = false;
|
||||
global::Gtk.Box.BoxChild w55 = ((global::Gtk.Box.BoxChild)(this.vbox9[this.checkButtonGetBattery]));
|
||||
w55.Position = 3;
|
||||
w55.Expand = false;
|
||||
w55.Fill = false;
|
||||
this.gtkAlignmentRobotControl.Add(this.vbox9);
|
||||
this.vbox12.Add(this.gtkAlignmentRobotControl);
|
||||
global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
|
||||
w58.Position = 1;
|
||||
global::Gtk.Box.BoxChild w57 = ((global::Gtk.Box.BoxChild)(this.vbox12[this.gtkAlignmentRobotControl]));
|
||||
w57.Position = 1;
|
||||
this.vbox5.Add(this.vbox12);
|
||||
global::Gtk.Box.BoxChild w59 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
|
||||
w59.Position = 4;
|
||||
global::Gtk.Box.BoxChild w58 = ((global::Gtk.Box.BoxChild)(this.vbox5[this.vbox12]));
|
||||
w58.Position = 4;
|
||||
this.alignment3.Add(this.vbox5);
|
||||
this.hbox3.Add(this.alignment3);
|
||||
global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
|
||||
global::Gtk.Box.BoxChild w60 = ((global::Gtk.Box.BoxChild)(this.hbox3[this.alignment3]));
|
||||
w60.Position = 1;
|
||||
w60.Expand = false;
|
||||
w60.Fill = false;
|
||||
this.hbox1.Add(this.hbox3);
|
||||
global::Gtk.Box.BoxChild w61 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
|
||||
w61.Position = 1;
|
||||
w61.Expand = false;
|
||||
w61.Fill = false;
|
||||
this.hbox1.Add(this.hbox3);
|
||||
global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.hbox3]));
|
||||
w62.Position = 1;
|
||||
w62.Expand = false;
|
||||
w62.Fill = false;
|
||||
this.vbox1.Add(this.hbox1);
|
||||
global::Gtk.Box.BoxChild w63 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
|
||||
w63.Position = 1;
|
||||
global::Gtk.Box.BoxChild w62 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
|
||||
w62.Position = 1;
|
||||
this.Add(this.vbox1);
|
||||
if ((this.Child != null))
|
||||
{
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
<stetic-interface>
|
||||
<configuration>
|
||||
<images-root-path>..</images-root-path>
|
||||
<target-gtk-version>2.12</target-gtk-version>
|
||||
</configuration>
|
||||
<import>
|
||||
<widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<widget-library name="../bin/Debug/monitor.exe" internal="true" />
|
||||
<widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
</import>
|
||||
<widget class="Gtk.Window" id="MainWindow" design-size="1025 686">
|
||||
<action-group name="Default">
|
||||
|
|
Binary file not shown.
|
@ -7,7 +7,7 @@
|
|||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>monitor</RootNamespace>
|
||||
<AssemblyName>monitor</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
|
@ -38,26 +38,16 @@
|
|||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="gtk-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="gdk-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="glib-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="glade-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="pango-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="atk-sharp, Version=2.4.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
</Reference>
|
||||
<Reference Include="Mono.Posix" />
|
||||
<Reference Include="Mono.Cairo" />
|
||||
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="gtk-gui\gui.stetic">
|
||||
|
|
105
software/pi@10.105.0.11
Executable file
105
software/pi@10.105.0.11
Executable file
|
@ -0,0 +1,105 @@
|
|||
#!/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'
|
||||
|
||||
mkdir opencv
|
||||
cd opencv
|
||||
# 1. KEEP UBUNTU OR DEBIAN UP TO DATE
|
||||
|
||||
sudo apt-get -y update
|
||||
# sudo apt-get -y upgrade # Uncomment this line to install the newest versions of all packages currently installed
|
||||
# sudo apt-get -y dist-upgrade # Uncomment this line to, in addition to 'upgrade', handles changing dependencies with new versions of packages
|
||||
# sudo apt-get -y autoremove # Uncomment this line to remove packages that are now no longer needed
|
||||
|
||||
|
||||
# 2. INSTALL THE DEPENDENCIES
|
||||
|
||||
# Build tools:
|
||||
sudo apt-get install -y build-essential cmake
|
||||
|
||||
# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
|
||||
#sudo apt-get install -y qt5-default libvtk6-dev
|
||||
sudo apt-get install -y libgtkglext1-dev
|
||||
|
||||
# Media I/O:
|
||||
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev
|
||||
|
||||
# Video I/O:
|
||||
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev
|
||||
|
||||
# Parallelism and linear algebra libraries:
|
||||
sudo apt-get install -y libtbb-dev libeigen3-dev
|
||||
|
||||
# Python:
|
||||
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
|
||||
|
||||
# Java:
|
||||
sudo apt-get install -y ant default-jdk
|
||||
|
||||
# Documentation:
|
||||
sudo apt-get install -y doxygen
|
||||
|
||||
|
||||
# 3. INSTALL THE LIBRARY
|
||||
|
||||
sudo apt-get install -y unzip wget
|
||||
wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip
|
||||
|
||||
unzip ${OPENCV_VERSION}.zip
|
||||
rm ${OPENCV_VERSION}.zip
|
||||
mv opencv-${OPENCV_VERSION} OpenCV
|
||||
|
||||
# 3.5 Add Aruco
|
||||
# Get opencv_contrib from github
|
||||
# Copy aruco directory from <opencv_contrib>/modules to <opencv>/modules
|
||||
wget https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip
|
||||
mv ${OPENCV_VERSION}.zip opencv_contrib-${OPENCV_VERSION}.zip
|
||||
unzip opencv_contrib-${OPENCV_VERSION}.zip
|
||||
|
||||
cd OpenCV
|
||||
mkdir build
|
||||
cd build
|
||||
# cmake -DWITH_QT=ON -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=OFF ..
|
||||
cmake -DWITH_OPENGL=ON -DFORCE_VTK=ON -DWITH_TBB=ON -DWITH_GDAL=ON -DWITH_XINE=ON -DBUILD_EXAMPLES=ON -DENABLE_PRECOMPILED_HEADERS=ON -D INSTALL_C_EXAMPLES=ON -D BUILD_JAVA=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${OPENCV_VERSION}/modules -DBUILD_aruco=ON ..
|
||||
make -j5
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
|
||||
# 4. Compile raspicam
|
||||
cd ~
|
||||
cd opencv
|
||||
|
||||
wget https://sourceforge.net/projects/raspicam/files/latest/raspicam.zip
|
||||
unzip raspicam.zip
|
||||
cd raspicam-0.1.6
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
|
||||
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'.
|
|
@ -4,7 +4,6 @@ cmake-build-debug/
|
|||
futur/
|
||||
CMakeFiles/
|
||||
|
||||
Makefile
|
||||
*.cmake
|
||||
CMakeCache.txt
|
||||
|
||||
|
|
128
software/raspberry/superviseur-robot/Makefile
Normal file
128
software/raspberry/superviseur-robot/Makefile
Normal file
|
@ -0,0 +1,128 @@
|
|||
#
|
||||
# There exist several targets which are by default empty and which can be
|
||||
# used for execution of your targets. These targets are usually executed
|
||||
# before and after some main targets. They are:
|
||||
#
|
||||
# .build-pre: called before 'build' target
|
||||
# .build-post: called after 'build' target
|
||||
# .clean-pre: called before 'clean' target
|
||||
# .clean-post: called after 'clean' target
|
||||
# .clobber-pre: called before 'clobber' target
|
||||
# .clobber-post: called after 'clobber' target
|
||||
# .all-pre: called before 'all' target
|
||||
# .all-post: called after 'all' target
|
||||
# .help-pre: called before 'help' target
|
||||
# .help-post: called after 'help' target
|
||||
#
|
||||
# Targets beginning with '.' are not intended to be called on their own.
|
||||
#
|
||||
# Main targets can be executed directly, and they are:
|
||||
#
|
||||
# build build a specific configuration
|
||||
# clean remove built files from a configuration
|
||||
# clobber remove all built files
|
||||
# all build all configurations
|
||||
# help print help mesage
|
||||
#
|
||||
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
|
||||
# .help-impl are implemented in nbproject/makefile-impl.mk.
|
||||
#
|
||||
# Available make variables:
|
||||
#
|
||||
# CND_BASEDIR base directory for relative paths
|
||||
# CND_DISTDIR default top distribution directory (build artifacts)
|
||||
# CND_BUILDDIR default top build directory (object files, ...)
|
||||
# CONF name of current configuration
|
||||
# CND_PLATFORM_${CONF} platform name (current configuration)
|
||||
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
|
||||
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
|
||||
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
|
||||
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
|
||||
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
|
||||
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
|
||||
#
|
||||
# NOCDDL
|
||||
|
||||
|
||||
# Environment
|
||||
MKDIR=mkdir
|
||||
CP=cp
|
||||
CCADMIN=CCadmin
|
||||
|
||||
|
||||
# build
|
||||
build: .build-post
|
||||
|
||||
.build-pre:
|
||||
# Add your pre 'build' code here...
|
||||
|
||||
.build-post: .build-impl
|
||||
# Add your post 'build' code here...
|
||||
|
||||
|
||||
# clean
|
||||
clean: .clean-post
|
||||
|
||||
.clean-pre:
|
||||
# Add your pre 'clean' code here...
|
||||
|
||||
.clean-post: .clean-impl
|
||||
# Add your post 'clean' code here...
|
||||
|
||||
|
||||
# clobber
|
||||
clobber: .clobber-post
|
||||
|
||||
.clobber-pre:
|
||||
# Add your pre 'clobber' code here...
|
||||
|
||||
.clobber-post: .clobber-impl
|
||||
# Add your post 'clobber' code here...
|
||||
|
||||
|
||||
# all
|
||||
all: .all-post
|
||||
|
||||
.all-pre:
|
||||
# Add your pre 'all' code here...
|
||||
|
||||
.all-post: .all-impl
|
||||
# Add your post 'all' code here...
|
||||
|
||||
|
||||
# build tests
|
||||
build-tests: .build-tests-post
|
||||
|
||||
.build-tests-pre:
|
||||
# Add your pre 'build-tests' code here...
|
||||
|
||||
.build-tests-post: .build-tests-impl
|
||||
# Add your post 'build-tests' code here...
|
||||
|
||||
|
||||
# run tests
|
||||
test: .test-post
|
||||
|
||||
.test-pre: build-tests
|
||||
# Add your pre 'test' code here...
|
||||
|
||||
.test-post: .test-impl
|
||||
# Add your post 'test' code here...
|
||||
|
||||
|
||||
# help
|
||||
help: .help-post
|
||||
|
||||
.help-pre:
|
||||
# Add your pre 'help' code here...
|
||||
|
||||
.help-post: .help-impl
|
||||
# Add your post 'help' code here...
|
||||
|
||||
|
||||
|
||||
# include project implementation makefile
|
||||
include nbproject/Makefile-impl.mk
|
||||
|
||||
# include project make variables
|
||||
include nbproject/Makefile-variables.mk
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -29,6 +29,7 @@
|
|||
int main(int argc, char **argv) {
|
||||
Tasks tasks;
|
||||
|
||||
|
||||
//Lock the memory to avoid memory swapping for this program
|
||||
mlockall(MCL_CURRENT | MCL_FUTURE);
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ OBJECTFILES= \
|
|||
${OBJECTDIR}/lib/img.o \
|
||||
${OBJECTDIR}/lib/messages.o \
|
||||
${OBJECTDIR}/main.o \
|
||||
${OBJECTDIR}/tasks.o
|
||||
${OBJECTDIR}/tasks_pthread.o
|
||||
|
||||
|
||||
# C Compiler Flags
|
||||
|
@ -104,10 +104,10 @@ ${OBJECTDIR}/main.o: main.cpp
|
|||
${RM} "$@.d"
|
||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||
|
||||
${OBJECTDIR}/tasks.o: tasks.cpp
|
||||
${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
|
||||
${MKDIR} -p ${OBJECTDIR}
|
||||
${RM} "$@.d"
|
||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -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
|
||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury `pkg-config --cflags opencv` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp
|
||||
|
||||
# Subprojects
|
||||
.build-subprojects:
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
#
|
||||
# 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=JPO2019_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 -pg
|
||||
CXXFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 -pg
|
||||
|
||||
# Fortran Compiler Flags
|
||||
FFLAGS=
|
||||
|
||||
# Assembler Flags
|
||||
ASFLAGS=
|
||||
|
||||
# Link Libraries and Options
|
||||
LDLIBSOPTIONS=`pkg-config --libs opencv` -lraspicam_cv -lraspicam
|
||||
|
||||
# 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: ${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 -lpthread -lrt -pg
|
||||
|
||||
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
||||
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
||||
${RM} "$@.d"
|
||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -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_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv` -std=c++11 -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}
|
||||
|
||||
# Subprojects
|
||||
.clean-subprojects:
|
||||
|
||||
# Enable dependency checking
|
||||
.dep.inc: .depcheck-impl
|
||||
|
||||
include .dep.inc
|
|
@ -31,7 +31,7 @@ DEFAULTCONF=Debug__PC_
|
|||
CONF=${DEFAULTCONF}
|
||||
|
||||
# All Configurations
|
||||
ALLCONFS=Debug__PC_ Debug__RPI_
|
||||
ALLCONFS=Debug__PC_ Debug__RPI_ JPO2019_RPI_
|
||||
|
||||
|
||||
# build
|
||||
|
|
|
@ -22,6 +22,14 @@ CND_ARTIFACT_PATH_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/superviseur-robot
|
|||
CND_PACKAGE_DIR_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package
|
||||
CND_PACKAGE_NAME_Debug__RPI_=superviseur-robot.tar
|
||||
CND_PACKAGE_PATH_Debug__RPI_=dist/Debug__RPI_/GNU-Linux/package/superviseur-robot.tar
|
||||
# JPO2019_RPI_ configuration
|
||||
CND_PLATFORM_JPO2019_RPI_=GNU-Linux
|
||||
CND_ARTIFACT_DIR_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux
|
||||
CND_ARTIFACT_NAME_JPO2019_RPI_=superviseur-robot
|
||||
CND_ARTIFACT_PATH_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/superviseur-robot
|
||||
CND_PACKAGE_DIR_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/package
|
||||
CND_PACKAGE_NAME_JPO2019_RPI_=superviseur-robot.tar
|
||||
CND_PACKAGE_PATH_JPO2019_RPI_=dist/JPO2019_RPI_/GNU-Linux/package/superviseur-robot.tar
|
||||
#
|
||||
# include compiler specific variables
|
||||
#
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash -x
|
||||
|
||||
#
|
||||
# Generated - do not edit!
|
||||
#
|
||||
|
||||
# Macros
|
||||
TOP=`pwd`
|
||||
CND_PLATFORM=GNU-Linux
|
||||
CND_CONF=JPO2019_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}
|
|
@ -11,6 +11,7 @@
|
|||
<itemPath>./lib/img.h</itemPath>
|
||||
<itemPath>./lib/messages.h</itemPath>
|
||||
<itemPath>./tasks.h</itemPath>
|
||||
<itemPath>./tasks_pthread.h</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="ResourceFiles"
|
||||
displayName="Resource Files"
|
||||
|
@ -28,6 +29,7 @@
|
|||
<itemPath>./main.cpp</itemPath>
|
||||
<itemPath>./lib/messages.cpp</itemPath>
|
||||
<itemPath>./tasks.cpp</itemPath>
|
||||
<itemPath>./tasks_pthread.cpp</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="TestFiles"
|
||||
displayName="Test Files"
|
||||
|
@ -113,6 +115,8 @@
|
|||
</item>
|
||||
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
</conf>
|
||||
<conf name="Debug__RPI_" type="1">
|
||||
<toolsSet>
|
||||
|
@ -180,10 +184,87 @@
|
|||
</item>
|
||||
<item path="./main.cpp" ex="false" tool="1" flavor2="0">
|
||||
</item>
|
||||
<item path="./tasks.cpp" ex="false" tool="1" flavor2="0">
|
||||
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./tasks_pthread.cpp" ex="false" tool="1" flavor2="0">
|
||||
</item>
|
||||
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
</conf>
|
||||
<conf name="JPO2019_RPI_" type="1">
|
||||
<toolsSet>
|
||||
<compilerSet>GNU|GNU</compilerSet>
|
||||
<dependencyChecking>true</dependencyChecking>
|
||||
<rebuildPropChanged>false</rebuildPropChanged>
|
||||
</toolsSet>
|
||||
<compileType>
|
||||
<cTool>
|
||||
<incDir>
|
||||
<pElem>./</pElem>
|
||||
<pElem>./lib</pElem>
|
||||
<pElem>/usr/xenomai/include</pElem>
|
||||
<pElem>/usr/xenomai/include/mercury</pElem>
|
||||
</incDir>
|
||||
<commandLine>-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy</commandLine>
|
||||
</cTool>
|
||||
<ccTool>
|
||||
<standard>8</standard>
|
||||
<incDir>
|
||||
<pElem>./</pElem>
|
||||
<pElem>./lib</pElem>
|
||||
</incDir>
|
||||
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11 -pg</commandLine>
|
||||
<preprocessorList>
|
||||
<Elem>_WITH_TRACE_</Elem>
|
||||
<Elem>__WITH_ARUCO__</Elem>
|
||||
<Elem>__WITH_PTHREAD__</Elem>
|
||||
</preprocessorList>
|
||||
</ccTool>
|
||||
<linkerTool>
|
||||
<linkerLibItems>
|
||||
<linkerOptionItem>`pkg-config --libs opencv`</linkerOptionItem>
|
||||
<linkerLibLibItem>raspicam_cv</linkerLibLibItem>
|
||||
<linkerLibLibItem>raspicam</linkerLibLibItem>
|
||||
</linkerLibItems>
|
||||
<commandLine>-Wl,--no-as-needed -lpthread -lrt -pg</commandLine>
|
||||
</linkerTool>
|
||||
</compileType>
|
||||
<item path="./gdbsudo.sh" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/base64/base64.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/base64/base64.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/camera.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/camera.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/commonitor.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/commonitor.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/comrobot.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/comrobot.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/img.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/img.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./lib/messages.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./lib/messages.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./main.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./tasks.cpp" ex="true" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./tasks.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
<item path="./tasks_pthread.cpp" ex="false" tool="1" flavor2="8">
|
||||
</item>
|
||||
<item path="./tasks_pthread.h" ex="false" tool="3" flavor2="0">
|
||||
</item>
|
||||
</conf>
|
||||
</confs>
|
||||
</configurationDescriptor>
|
||||
|
|
|
@ -5,3 +5,4 @@
|
|||
#
|
||||
# Debug__PC_ configuration
|
||||
# Debug__RPI_ configuration
|
||||
# JPO2019_RPI_ configuration
|
||||
|
|
|
@ -41,7 +41,40 @@
|
|||
</conf>
|
||||
<conf name="Debug__RPI_" type="1">
|
||||
<toolsSet>
|
||||
<developmentServer>pi@10.105.1.13:22</developmentServer>
|
||||
<developmentServer>pi@10.105.1.11:22</developmentServer>
|
||||
<platform>2</platform>
|
||||
</toolsSet>
|
||||
<dbx_gdbdebugger version="1">
|
||||
<gdb_pathmaps>
|
||||
</gdb_pathmaps>
|
||||
<gdb_interceptlist>
|
||||
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||
</gdb_interceptlist>
|
||||
<gdb_options>
|
||||
<DebugOptions>
|
||||
</DebugOptions>
|
||||
</gdb_options>
|
||||
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||
</dbx_gdbdebugger>
|
||||
<nativedebugger version="1">
|
||||
<engine>gdb</engine>
|
||||
</nativedebugger>
|
||||
<runprofile version="9">
|
||||
<runcommandpicklist>
|
||||
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||
</runcommandpicklist>
|
||||
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||
<rundir></rundir>
|
||||
<buildfirst>true</buildfirst>
|
||||
<terminal-type>0</terminal-type>
|
||||
<remove-instrumentation>0</remove-instrumentation>
|
||||
<environment>
|
||||
</environment>
|
||||
</runprofile>
|
||||
</conf>
|
||||
<conf name="JPO2019_RPI_" type="1">
|
||||
<toolsSet>
|
||||
<developmentServer>pi@10.105.1.11:22</developmentServer>
|
||||
<platform>2</platform>
|
||||
</toolsSet>
|
||||
<dbx_gdbdebugger version="1">
|
||||
|
|
|
@ -2,19 +2,21 @@
|
|||
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||
<activeConfTypeElem>1</activeConfTypeElem>
|
||||
<activeConfIndexElem>0</activeConfIndexElem>
|
||||
<activeConfIndexElem>2</activeConfIndexElem>
|
||||
</data>
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h</file>
|
||||
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp</file>
|
||||
</group>
|
||||
</open-files>
|
||||
</project-private>
|
||||
|
|
|
@ -0,0 +1,456 @@
|
|||
#Thu Jan 24 17:03:52 CET 2019
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__coll__graph.md5=c1547564861000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/.gitignore=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/searchdata.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_8.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.png=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.md5=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.gitignore=c1542120848000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/nomatches.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.map=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.png=c1547564769000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_camera.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_d.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur.doxygen=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.pdf=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/gdbsudo.sh=c1547735187000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.md5=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.dep.inc=c1547735187000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreedata.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherits.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.md5=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-impl.mk=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/CMakeLists.txt=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.map=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/files.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_7.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.png=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtree.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.map=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_h.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_7.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/main.cpp=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreeindex0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__coll__graph.pdf=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_off.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/videoExample.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message__inherit__graph.pdf=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position__inherit__graph.pdf=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_c.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_g.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_9.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__inherit__graph.pdf=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.md5=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.md5=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/splitbar.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/rtvideoExample.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/uiExample.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/hierarchy.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__RPI_.bash=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_8.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.md5=c1547564768000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/nav_f.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1548257243000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/close.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message__inherit__graph.map=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1548257528000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__dep__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/Makefile=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_4.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.map=c1547564769000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dynsections.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_r.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__dep__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.md5=c1547564861000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_h.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_13.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.map=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_position.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/camera_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_d.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__coll__graph.pdf=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__inherit__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.xml=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__inherit__graph.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/base64_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/project.properties=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderclosed.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doc.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated_dup.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.png=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/commonitor.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/files.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menu.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_type.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string__coll__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/xenomai/tasks.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_96aba1edb3024c67427e5e41410f3c29.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/pthread_version/tasks_pthread.h=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/comrobot_8h__incl.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_9.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_arena.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_s.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/xenomai/tasks.h=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_img.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_4.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/compile-and-run-test=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/sync_on.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialExample.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_4.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_enum.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-Debug__PC_.bash=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__inherit__graph.map=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_m.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_func.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/jquery.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtree.css=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_2.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-JPO2019_RPI_.mk=c1548345603000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_defs.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.png=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery__coll__graph.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/test.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_3.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_b.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_8.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_6.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.md5=c1547564861000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search_l.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.h=c1548345810000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/dir_97aefd0d527b934f1d99a682da8fe6a9.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serialTest.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__PC_.mk=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_b.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.png=c1547564949000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h_source.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/annotated.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.map=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__inherit__graph.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_5.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/mag_sel.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/globals_eval.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__coll__graph.pdf=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_func.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/resize.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/open.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__dep__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/functions_vars.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.h=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_a.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/base64.cpp=c1547735186000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tab_a.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_4.png=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/struct_position.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563913000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/graph_legend.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_7.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/tasks_pthread.cpp=c1548345823000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__coll__graph.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/commonitor_8h__incl.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_c.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_7.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-variables.mk=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/typedefs_0.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_robot.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dir_96aba1edb3024c67427e5e41410f3c29.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_4.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/camera_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_3.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_6.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_e.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_c.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/closed.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/private/Makefile-variables.mk=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/src/serverTest.cpp=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/index.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.md5=c1547564861000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/not_for_students/examples/.gitignore=c1547736477000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_1.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/menudata.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_robot-members.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.map=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.md5=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Package-JPO2019_RPI_.bash=c1548321303000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/doxygen.css=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.png=c1547560339000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_0.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_12.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_6.map=c1547564862000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1541685829000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_2.png=c1547560340000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565563000
|
||||
VERSION=1.3
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/robot-icon.resized.png=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/img_8h.html=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/hierarchy.js=c1547565563000
|
||||
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_5.md5=c1547564949000
|
|
@ -21,6 +21,10 @@
|
|||
<name>Debug__RPI_</name>
|
||||
<type>1</type>
|
||||
</confElem>
|
||||
<confElem>
|
||||
<name>JPO2019_RPI_</name>
|
||||
<type>1</type>
|
||||
</confElem>
|
||||
</confList>
|
||||
<formatting>
|
||||
<project-formatting-style>false</project-formatting-style>
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
bin/
|
|
@ -1,11 +0,0 @@
|
|||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../examples/bin)
|
||||
|
||||
set(serialTest_FILES ./src/serialTest.cpp)
|
||||
set(serverTest_FILES ./src/serverTest.cpp)
|
||||
include_directories(./src ../lib)
|
||||
|
||||
add_executable(serialtest ${serialTest_FILES})
|
||||
target_link_libraries(serialtest destijl)
|
||||
|
||||
add_executable(servertest ${serverTest_FILES})
|
||||
target_link_libraries(servertest destijl)
|
|
@ -1,89 +0,0 @@
|
|||
#include <task.h>
|
||||
#include "../src/imagerie.h"
|
||||
#include "../src/serial.h"
|
||||
#include "../src/tcpServer.h" // include himself imagerie.h
|
||||
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
using namespace raspicam;
|
||||
|
||||
RT_TASK video;
|
||||
|
||||
void threadVideo(void *arg)
|
||||
{
|
||||
printf("Thread lancé ... \n");
|
||||
Camera rpiCam;
|
||||
Image imgVideo;
|
||||
Arene monArene;
|
||||
position positionRobots[20];
|
||||
Jpg compress;
|
||||
|
||||
openCamera(&rpiCam);
|
||||
do
|
||||
{
|
||||
getImg(&rpiCam, &imgVideo);
|
||||
if(detectArena(&imgVideo, &monArene)==0)
|
||||
{
|
||||
detectPosition(&imgVideo,positionRobots,&monArene);
|
||||
drawArena(&imgVideo,&imgVideo,&monArene);
|
||||
}
|
||||
else
|
||||
detectPosition(&imgVideo,positionRobots);
|
||||
|
||||
drawPosition(&imgVideo,&imgVideo,&positionRobots[0]);
|
||||
imgCompress(&imgVideo,&compress);
|
||||
|
||||
sendToUI("IMG",&compress);
|
||||
sendToUI("POS",&positionRobots[0]);
|
||||
}while(waitKey(30)!='q');
|
||||
closeCam(&rpiCam);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main() {
|
||||
serverOpen();
|
||||
robotOpenCom();
|
||||
|
||||
char header[4];
|
||||
char data[20];
|
||||
memset(data, '\0',20);
|
||||
memset(header,'\0',4);
|
||||
|
||||
|
||||
if(rt_task_spawn(&video,"envoieVideo",0,20,0, threadVideo, NULL) == -1)
|
||||
perror("erreur lors de la creation du thread\n");
|
||||
|
||||
do
|
||||
{ receptionFromUI(header,data);
|
||||
if(strcmp(header, DMB) == 0)
|
||||
{
|
||||
printf("EVENEMENT DUMBER DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
int a = robotCmd(data[0]);
|
||||
printf("Resultat CMD : %d \n", a);
|
||||
if(data[0] == 'u' && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
if(data[0] == 'r' && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
}
|
||||
|
||||
if(strcmp(header, MES) == 0)
|
||||
{
|
||||
printf("EVENEMENT MESSAGE DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
|
||||
if(strcmp(header,POS)==0)
|
||||
{
|
||||
printf("EVENEMENT POSITION DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
}while((strcmp(header,MES)!=0) || (data[0] != 'C'));
|
||||
robotCloseCom();
|
||||
serverClose();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
#include "../src/serial.h"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* robotCmd return 0 if the cmd is received and understood.
|
||||
* -1 for a bad argument; -2 for a bad command ; -3 for a timedOut; -4 for a checkSum error
|
||||
*/
|
||||
|
||||
int main() {
|
||||
robotOpenCom();
|
||||
printf("Resultat commande : %d \n",sendCmdToRobot(WITHOUT_WD));
|
||||
printf("Resultat commande : %d \n",sendCmdToRobot(SETMOVE,"+500"));
|
||||
printf("Resultat commande : %d \n",sendCmdToRobot(SETTURN,"-180"));
|
||||
robotCloseCom();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,186 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2018 INSA - GEI, Toulouse, France.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available "AS IS", without any warranty of any kind.
|
||||
*
|
||||
* INSA assumes no responsibility for errors or omissions in the
|
||||
* software or documentation available.
|
||||
*
|
||||
* Part of code Copyright ST Microelectronics.
|
||||
*
|
||||
* Contributors:
|
||||
* Lucien Senaneuch - Initial API and implementation
|
||||
* Sebastien DI MERCURIO - Maintainer since Octobre 2018
|
||||
*******************************************************************************/
|
||||
|
||||
#include <iostream>
|
||||
#include <ctime>
|
||||
#include "Robot.h"
|
||||
#include <unistd.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define NB_TEST 50
|
||||
#define DELAY_BETWEEN_TEST 1000000 // 1 seconde
|
||||
|
||||
int nb_retries;
|
||||
int nb_test;
|
||||
|
||||
int laststatus;
|
||||
int nb_success;
|
||||
int nb_timeout;
|
||||
int nb_unknown_cmd;
|
||||
|
||||
int flipflop;
|
||||
|
||||
int Test(Robot rob) {
|
||||
try {
|
||||
if (flipflop == 0) {
|
||||
rob.Move(100);
|
||||
} else {
|
||||
rob.Move(-100);
|
||||
}
|
||||
} catch (string e) {
|
||||
//if (e.find("Timeout")==string.npos)
|
||||
// status=ROBOT_TIMED_OUT;
|
||||
|
||||
|
||||
}
|
||||
|
||||
return rob.GetLastCommandStatus();;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Robot myRobot;
|
||||
|
||||
if (myRobot.Open("/dev/ttyUSB0") == SUCCESS) { // ouverture de la com avec le robot
|
||||
|
||||
std::cout << "Start robot: ";
|
||||
try {
|
||||
myRobot.StartWithoutWatchdog();
|
||||
} catch ( string e ) {
|
||||
std::cerr << std::endl << e << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (myRobot.GetLastCommandStatus()==SUCCESS)
|
||||
std::cout << "Ok" <<std::endl;
|
||||
else {
|
||||
std::cout << " Error: GetLastCommand returns " << myRobot.GetLastCommandStatus() <<std::endl;
|
||||
return 2;
|
||||
}
|
||||
|
||||
std::cout << "Start stress test" << std::endl;
|
||||
time_t t_debut, t_fin;
|
||||
struct tm *tm_debut, *tm_fin;
|
||||
|
||||
time(&t_debut);
|
||||
tm_debut = localtime((const time_t*)&t_debut);
|
||||
std::cout << "[start time]: " << asctime(tm_debut) << std::endl;
|
||||
|
||||
nb_success =0;
|
||||
nb_timeout =0;
|
||||
nb_unknown_cmd =0;
|
||||
flipflop = 0;
|
||||
|
||||
for (nb_test=0; nb_test < NB_TEST; nb_test++) {
|
||||
laststatus=Test(myRobot);
|
||||
|
||||
if (flipflop ==0) flipflop=1;
|
||||
else flipflop =0;
|
||||
|
||||
if (laststatus == SUCCESS) nb_success++;
|
||||
else if (laststatus == TIMEOUT_COMMAND) nb_timeout++;
|
||||
else if ((laststatus == INVALID_ANSWER) || (laststatus == INVALID_COMMAND)) nb_unknown_cmd ++;
|
||||
|
||||
std::cout << "Test " << nb_test << " [s " << nb_success
|
||||
<< ": t " << nb_timeout << ": u " << nb_unknown_cmd
|
||||
<< "]"<< "\x1B" <<"[30D"<<std::flush;
|
||||
|
||||
usleep(DELAY_BETWEEN_TEST);
|
||||
}
|
||||
|
||||
time(&t_fin);
|
||||
tm_fin = localtime((const time_t*)&t_fin);
|
||||
std::cout << std::endl << std::endl << "[end time]: " << asctime(tm_fin) << std::endl;
|
||||
|
||||
std::cout << "Reset robot" <<std::endl;
|
||||
myRobot.Reset();
|
||||
|
||||
std::cout << "Close com" <<std::endl;
|
||||
myRobot.Close();
|
||||
|
||||
} else {
|
||||
std::cerr << "Unable to open \\dev\\ttyUSB0" << std::endl;
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
// if (open_communication_robot("/dev/ttyUSB0") != 0) {
|
||||
// std::cout << "Unable to open com port" << std::endl;
|
||||
//
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// std::cout << "Debut du test de stress" << std::endl;
|
||||
// time_t t_debut, t_fin;
|
||||
// struct tm *tm_debut, *tm_fin;
|
||||
//
|
||||
// time(&t_debut);
|
||||
// tm_debut = localtime((const time_t*)&t_debut);
|
||||
//
|
||||
// std::cout << "[heure debut]: " << asctime(tm_debut) << std::endl;
|
||||
//
|
||||
// nb_retries=-1;
|
||||
// do {
|
||||
// usleep(DELAY_BETWEEN_RETRIES);
|
||||
// nb_retries++;
|
||||
// laststatus = send_command_to_robot(DMB_START_WITHOUT_WD);
|
||||
// } while ((nb_retries<NB_RETRIES_MAX) && (laststatus != 0));
|
||||
//
|
||||
// if(nb_retries == NB_RETRIES_MAX) {
|
||||
// std::cout << "Unable to start robot" <<std::endl;
|
||||
//
|
||||
// return -1;
|
||||
// }
|
||||
//
|
||||
// nb_success =0;
|
||||
// nb_timeout =0;
|
||||
// nb_unknown_cmd =0;
|
||||
// flipflop = 0;
|
||||
//
|
||||
// for (nb_test=0; nb_test < NB_TEST; nb_test++) {
|
||||
// nb_retries=-1;
|
||||
//
|
||||
// do {
|
||||
// usleep(DELAY_BETWEEN_RETRIES);
|
||||
// nb_retries++;
|
||||
// if (flipflop == 0) {
|
||||
// laststatus = send_command_to_robot(DMB_TURN, "100");
|
||||
// } else {
|
||||
// laststatus = send_command_to_robot(DMB_TURN, "-100");
|
||||
// }
|
||||
//
|
||||
// } while ((nb_retries<NB_RETRIES_MAX) && (laststatus != 0));
|
||||
//
|
||||
// if (flipflop ==0) flipflop=1;
|
||||
// else flipflop =0;
|
||||
//
|
||||
// if (laststatus == 0) nb_success++;
|
||||
// else if (laststatus == ROBOT_TIMED_OUT) nb_timeout++;
|
||||
// else if (laststatus == ROBOT_UKNOWN_CMD) nb_unknown_cmd ++;
|
||||
//
|
||||
// std::cout << "Test " << nb_test << " [s " << nb_success
|
||||
// << ": t " << nb_timeout << ": u " << nb_unknown_cmd
|
||||
// << "]"<< "\x1B" <<"[30D"<<std::flush;
|
||||
//
|
||||
// usleep(DELAY_BETWEEN_TEST);
|
||||
// }
|
||||
//
|
||||
// time(&t_fin);
|
||||
// tm_fin = localtime((const time_t*)&t_fin);
|
||||
//
|
||||
// std::cout << std::endl << std::endl << "[heure fin]: " << asctime(tm_fin) << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,111 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2018 INSA - GEI, Toulouse, France.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available "AS IS", without any warranty of any kind.
|
||||
*
|
||||
* INSA assumes no responsibility for errors or omissions in the
|
||||
* software or documentation available.
|
||||
*
|
||||
* Part of code Copyright ST Microelectronics.
|
||||
*
|
||||
* Contributors:
|
||||
* Lucien Senaneuch - Initial API and implementation
|
||||
* Sebastien DI MERCURIO - Maintainer since Octobre 2018
|
||||
*******************************************************************************/
|
||||
|
||||
#include <iostream>
|
||||
#include "Robot.h"
|
||||
#include "TcpServer.h"
|
||||
|
||||
int main (void)
|
||||
{
|
||||
TcpServer server;
|
||||
int clientFD;
|
||||
string msgIn, msgOut,tmp;
|
||||
bool finish;
|
||||
|
||||
Robot robot;
|
||||
|
||||
cout << "TCP server example" << endl;
|
||||
|
||||
cout << "Bind and listen on port 1337: ";
|
||||
try {
|
||||
server.Listen(1337);
|
||||
}
|
||||
catch ( const invalid_argument &ia ) {
|
||||
cerr << "Error binding server: " << ia.what() << endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
cout << "Ok" <<endl;
|
||||
|
||||
cout << "Open com with robot: ";
|
||||
try {
|
||||
robot.Open ("/dev/ttyUSB0");
|
||||
} catch (string e)
|
||||
{
|
||||
cerr << e << endl;
|
||||
return 3;
|
||||
}
|
||||
|
||||
cout << "Ok" <<endl;
|
||||
|
||||
while (1)
|
||||
{
|
||||
cout << "Wait for client to connect: ";
|
||||
try {
|
||||
clientFD= server.AcceptClient();
|
||||
}
|
||||
catch ( const invalid_argument &ia ) {
|
||||
cerr << "Error during client accept: " << ia.what() << endl;
|
||||
return 2;
|
||||
}
|
||||
|
||||
cout << to_string(clientFD) << endl;
|
||||
|
||||
msgIn.clear();
|
||||
finish=false;
|
||||
|
||||
do {
|
||||
msgIn = server.Receive(clientFD, 2); // cmd + \n
|
||||
|
||||
if (msgIn.empty()) finish=true;
|
||||
else {
|
||||
try {
|
||||
switch (msgIn[0]) {
|
||||
case 's':
|
||||
// Start robot
|
||||
robot.StartWithoutWatchdog();
|
||||
break;
|
||||
case 'f':
|
||||
robot.Move(100);
|
||||
break;
|
||||
case 'b':
|
||||
robot.Move(-100);
|
||||
break;
|
||||
case 'r':
|
||||
robot.Turn(90);
|
||||
break;
|
||||
case 'l':
|
||||
robot.Turn(-90);
|
||||
break;
|
||||
case 'Q':
|
||||
robot.Reset();
|
||||
break;
|
||||
}
|
||||
} catch (string e) {
|
||||
cerr << e;
|
||||
}
|
||||
|
||||
if (robot.GetLastCommandStatus() == SUCCESS)
|
||||
server.Send(clientFD, "OK\n");
|
||||
else server.Send(clientFD, "ERR\n");
|
||||
}
|
||||
} while (finish==false);
|
||||
|
||||
cout << "Client disconnected" <<endl;
|
||||
clientFD=-1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
#include "../src/serial.h"
|
||||
#include "../src/tcpServer.h"
|
||||
#include "../src/imagerie.h"
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
|
||||
|
||||
int main() {
|
||||
//startTrace();
|
||||
runNodejs("/usr/bin/nodejs", "/home/pehladik/Interface-TP-RT/interface.js");
|
||||
|
||||
printf("Lancement serveur ... \n");
|
||||
serverOpen();
|
||||
//stopTrace();
|
||||
printf("Serveur lancé ... \n");
|
||||
robotOpenCom();
|
||||
|
||||
char header[4];
|
||||
char data[20];
|
||||
memset(data, '\0',20);
|
||||
memset(header,'\0',4);
|
||||
int res;
|
||||
do
|
||||
{
|
||||
res = receptionFromUI(header,data);
|
||||
printf ("res : %d\n", res);
|
||||
if(strcmp(header, DMB) == 0)
|
||||
{
|
||||
printf("EVENEMENT DUMBER DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
int a = sendCmdToRobot(data[0]);
|
||||
printf("Resultat CMD : %d \n", a);
|
||||
if(data[0] == 'u' && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
if(data[0] == 'r' && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
}
|
||||
|
||||
if(strcmp(header, MES) == 0)
|
||||
{
|
||||
printf("EVENEMENT MESSAGE DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
|
||||
if(strcmp(header,POS)==0)
|
||||
{
|
||||
printf("EVENEMENT POSITION DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
}while((strcmp(header,MES)!=0) || (data[0] != 'C'));
|
||||
killNodejs();
|
||||
|
||||
robotCloseCom();
|
||||
serverClose();
|
||||
pause();
|
||||
return 0;
|
||||
}
|
|
@ -1,108 +0,0 @@
|
|||
#include "../src/imagerie.h"
|
||||
#include "../src/serial.h"
|
||||
#include "../src/tcpServer.h" // include himself imagerie.h
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
#ifndef __STUB__
|
||||
using namespace raspicam;
|
||||
#endif
|
||||
|
||||
void * threadVideo(void *arg)
|
||||
{
|
||||
printf("Thread lancé ... \n");
|
||||
Camera rpiCam;
|
||||
Image imgVideo;
|
||||
Arene monArene;
|
||||
Position positionRobots[20];
|
||||
Jpg compress;
|
||||
|
||||
openCamera(&rpiCam);
|
||||
do
|
||||
{
|
||||
#ifndef __STUB__
|
||||
getImg(&rpiCam, &imgVideo);
|
||||
#else
|
||||
getImg(&rpiCam, &imgVideo, "/home/pehladik/C-TP-RT/src/mondrian22.jpeg");
|
||||
#endif
|
||||
/*if(detectArena(&imgVideo, &monArene)==0)
|
||||
{
|
||||
detectPosition(&imgVideo,positionRobots,&monArene);
|
||||
drawArena(&imgVideo,&imgVideo,&monArene);
|
||||
}
|
||||
else
|
||||
detectPosition(&imgVideo,positionRobots);
|
||||
|
||||
drawPosition(&imgVideo,&imgVideo,&positionRobots[0]);*/
|
||||
imgCompress(&imgVideo,&compress);
|
||||
|
||||
sendToUI("IMG",&compress);
|
||||
sendToUI("POS",&positionRobots[0]);
|
||||
}while(waitKey(30)!='q');
|
||||
closeCam(&rpiCam);
|
||||
pthread_exit(NULL);
|
||||
}
|
||||
|
||||
void * threadClient(void *arg){
|
||||
char * args [] = {"nodejs", "/home/pehladik/Interface-TP-RT/interface.js", NULL};
|
||||
if (execv("/usr/bin/nodejs", args)== -1){
|
||||
perror("execv");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main() {
|
||||
pthread_t threadClient;
|
||||
if(pthread_create(&threadClient,NULL, threadClient, NULL) == -1)
|
||||
perror("erreur lors de la creation du thread\n");
|
||||
|
||||
|
||||
serverOpen();
|
||||
robotOpenCom();
|
||||
|
||||
char header[4];
|
||||
char data[20];
|
||||
memset(data, '\0',20);
|
||||
memset(header,'\0',4);
|
||||
|
||||
pthread_t thread1;
|
||||
if(pthread_create(&thread1,NULL, threadVideo, NULL) == -1)
|
||||
perror("erreur lors de la creation du thread\n");
|
||||
|
||||
do
|
||||
{ receptionFromUI(header,data);
|
||||
printf("Msg reçu : %s %s", header, data);
|
||||
|
||||
if(strcmp(header, DMB) == 0)
|
||||
{
|
||||
printf("EVENEMENT DUMBER DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
int a = sendCmdToRobot(data[0]);
|
||||
printf("Resultat CMD : %d \n", a);
|
||||
if(data[0] == WITHOUT_WD && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
else if(data[0] == BACKIDLE && a == 0)
|
||||
{
|
||||
sendToUI(ACK);
|
||||
}
|
||||
}
|
||||
|
||||
if(strcmp(header, MES) == 0)
|
||||
{
|
||||
printf("EVENEMENT MESSAGE DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
|
||||
if(strcmp(header,POS)==0)
|
||||
{
|
||||
printf("EVENEMENT POSITION DETECTE AVEC LE MESSAGE :%s \n",data);
|
||||
}
|
||||
}while((strcmp(header,MES)!=0) || (data[0] != 'C'));
|
||||
robotCloseCom();
|
||||
serverClose();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,494 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2018 dimercur
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "tasks_pthread.h"
|
||||
#include <time.h>
|
||||
|
||||
#ifdef __WITH_PTHREAD__
|
||||
|
||||
// Déclaration des priorités des taches
|
||||
#define PRIORITY_TSERVER 30
|
||||
#define PRIORITY_TOPENCOMROBOT 20
|
||||
#define PRIORITY_TMOVE 10
|
||||
#define PRIORITY_TSENDTOMON 25
|
||||
#define PRIORITY_TRECEIVEFROMMON 22
|
||||
#define PRIORITY_TSTARTROBOT 20
|
||||
|
||||
/*
|
||||
* Some remarks:
|
||||
* 1- This program is mostly a template. It shows you how to create tasks, semaphore
|
||||
* message queues, mutex ... and how to use them
|
||||
*
|
||||
* 2- semDumber is, as name say, useless. Its goal is only to show you how to use semaphore
|
||||
*
|
||||
* 3- Data flow is probably not optimal
|
||||
*
|
||||
* 4- Take into account that ComRobot::Write will block your task when serial buffer is full,
|
||||
* time for internal buffer to flush
|
||||
*
|
||||
* 5- Same behavior existe for ComMonitor::Write !
|
||||
*
|
||||
* 6- When you want to write something in terminal, use cout and terminate with endl and flush
|
||||
*
|
||||
* 7- Good luck !
|
||||
*/
|
||||
|
||||
void Tasks::Init() {
|
||||
int status;
|
||||
|
||||
/* Open com port with STM32 */
|
||||
cout << "Open serial com (";
|
||||
status = robot.Open();
|
||||
cout << status;
|
||||
cout << ")" << endl;
|
||||
|
||||
if (status >= 0) {
|
||||
// Open server
|
||||
|
||||
status = monitor.Open(SERVER_PORT);
|
||||
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)
|
||||
};
|
||||
} else
|
||||
throw std::runtime_error {
|
||||
"Unable to open serial port /dev/ttyS0 "
|
||||
};
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
//
|
||||
// Camera camera=Camera(sm);
|
||||
// cout << "Try opening camera"<<endl<<flush;
|
||||
// if (camera.Open()) cout<<"Camera opened successfully"<<endl<<flush;
|
||||
// else cout<<"Failed to open camera"<<endl<<flush;
|
||||
//
|
||||
// counter = 0;
|
||||
// while (1) {
|
||||
// Img image=camera.Grab();
|
||||
//
|
||||
// counter++;
|
||||
//
|
||||
// if (flag == true) {
|
||||
// cout<< "Image info: "<<image.ToString()<<endl<<flush;
|
||||
// cout << "FPS = "<<to_string(counter)<<endl<<flush;
|
||||
// flag=false;
|
||||
// counter=0;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// msgSend = ComRobot::Ping();
|
||||
// cout << "Send => " << msgSend->ToString() << endl << flush;
|
||||
// msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
|
||||
// cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
//
|
||||
// delete(msgRcv);
|
||||
//
|
||||
// msgSend = ComRobot::StartWithoutWD();
|
||||
// cout << "Send => " << msgSend->ToString() << endl << flush;
|
||||
// msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
|
||||
// cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
//
|
||||
// delete(msgRcv);
|
||||
//
|
||||
// msgSend = ComRobot::Move(1000);
|
||||
// cout << "Send => " << msgSend->ToString() << endl << flush;
|
||||
// msgRcv = robot.SendCommand(msgSend, MESSAGE_ANSWER_ACK, 3);
|
||||
// cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
//
|
||||
// delete(msgRcv);
|
||||
//
|
||||
// msgSend = ComRobot::GetBattery();
|
||||
// cout << "Send => " << msgSend->ToString() << endl << flush;
|
||||
// msgRcv = robot.SendCommand(msgSend, MESSAGE_ROBOT_BATTERY_LEVEL, 3);
|
||||
// cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
//
|
||||
// delete(msgRcv);
|
||||
cout << "Tasks launched" << endl << flush;
|
||||
}
|
||||
|
||||
void Tasks::Stop() {
|
||||
monitor.Close();
|
||||
robot.Close();
|
||||
}
|
||||
|
||||
void Tasks::ServerTask(void *arg) {
|
||||
Message *msgRcv;
|
||||
Message *msgSend;
|
||||
bool isActive = true;
|
||||
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
while (isActive) {
|
||||
msgRcv = NULL;
|
||||
msgSend = NULL;
|
||||
|
||||
msgRcv = monitor.Read();
|
||||
cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_OPEN)) msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) isActive = false;
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) {
|
||||
sendImage = true;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) {
|
||||
sendImage = false;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) {
|
||||
sendPosition = true;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) {
|
||||
sendPosition = false;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL, BATTERY_FULL);
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA)) showArena = true;
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM)) showArena = false;
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM)) showArena = false;
|
||||
|
||||
if (msgSend != NULL) monitor.Write(msgSend);
|
||||
delete(msgRcv);
|
||||
}
|
||||
}
|
||||
|
||||
void Tasks::TimerTask(void* arg) {
|
||||
struct timespec tim, tim2;
|
||||
Message *msgSend;
|
||||
int counter;
|
||||
int cntFrame = 0;
|
||||
Position pos;
|
||||
Arena arena;
|
||||
|
||||
tim.tv_sec = 0;
|
||||
tim.tv_nsec = 50000000; // 50ms (20fps)
|
||||
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
Camera camera = Camera(sm, 20);
|
||||
cout << "Try opening camera" << endl << flush;
|
||||
if (camera.Open()) cout << "Camera opened successfully" << endl << flush;
|
||||
else {
|
||||
cout << "Failed to open camera" << endl << flush;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
pos.angle = 0.0;
|
||||
pos.robotId = -1;
|
||||
pos.center = cv::Point2f(0, 0);
|
||||
pos.direction = cv::Point2f(0, 0);
|
||||
|
||||
while (1) {
|
||||
//std::this_thread::sleep_for(std::chrono::seconds )
|
||||
//sleep(1);
|
||||
// if (nanosleep(&tim, &tim2) < 0) {
|
||||
// printf("Nano sleep system call failed \n");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// counter++;
|
||||
// if (counter>=10) {
|
||||
// flag=true;
|
||||
// counter=0;
|
||||
// }
|
||||
//mutexTimer.unlock();
|
||||
Img image = camera.Grab(); // 15fps
|
||||
|
||||
if (sendPosition == true) {
|
||||
counter++;
|
||||
|
||||
if (counter >= 1) { // div =15
|
||||
counter = 0;
|
||||
|
||||
//if (!arena.IsEmpty()) {
|
||||
image.dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(3));
|
||||
|
||||
std::list<Position> poses = image.SearchRobot(arena);
|
||||
cout << "Nbr of pos detected: " << to_string(poses.size()) << endl << flush;
|
||||
|
||||
if (poses.size() > 0) {
|
||||
Position firstPos = poses.front();
|
||||
|
||||
pos.angle = firstPos.angle;
|
||||
pos.robotId = firstPos.robotId;
|
||||
pos.center = firstPos.center;
|
||||
pos.direction = firstPos.direction;
|
||||
} else {
|
||||
// Nothing found
|
||||
pos.angle = 0.0;
|
||||
pos.robotId = -1;
|
||||
pos.center = cv::Point2f(0,0);
|
||||
pos.direction = cv::Point2f(0,0);
|
||||
}
|
||||
|
||||
MessagePosition *msgp = new MessagePosition(MESSAGE_CAM_POSITION, pos);
|
||||
monitor.Write(msgp);
|
||||
cout << "Position sent" << endl << flush;
|
||||
}
|
||||
}
|
||||
|
||||
if (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);
|
||||
|
||||
MessageImg *msg = new MessageImg(MESSAGE_CAM_IMAGE, &image);
|
||||
|
||||
monitor.Write(msg);
|
||||
cntFrame++;
|
||||
cout << "cnt: " << to_string(cntFrame) << endl << flush;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Tasks::SendToMonTask(void* arg) {
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
while (1) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//void Tasks::f_sendToMon(void * arg) {
|
||||
// int err;
|
||||
// MessageToMon msg;
|
||||
//
|
||||
// /* INIT */
|
||||
// RT_TASK_INFO info;
|
||||
// rt_task_inquire(NULL, &info);
|
||||
// printf("Init %s\n", info.name);
|
||||
// rt_sem_p(&sem_barrier, TM_INFINITE);
|
||||
//
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : waiting for sem_serverOk\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_p(&sem_serverOk, TM_INFINITE);
|
||||
// while (1) {
|
||||
//
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : waiting for a message in queue\n", info.name);
|
||||
//#endif
|
||||
// if (rt_queue_read(&q_messageToMon, &msg, sizeof (MessageToRobot), TM_INFINITE) >= 0) {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : message {%s,%s} in queue\n", info.name, msg.header, (char*)msg.data);
|
||||
//#endif
|
||||
//
|
||||
// send_message_to_monitor(msg.header, msg.data);
|
||||
// free_msgToMon_data(&msg);
|
||||
// rt_queue_free(&q_messageToMon, &msg);
|
||||
// } else {
|
||||
// printf("Error msg queue write: %s\n", strerror(-err));
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//void Tasks::f_receiveFromMon(void *arg) {
|
||||
// MessageFromMon msg;
|
||||
// int err;
|
||||
//
|
||||
// /* INIT */
|
||||
// RT_TASK_INFO info;
|
||||
// rt_task_inquire(NULL, &info);
|
||||
// printf("Init %s\n", info.name);
|
||||
// rt_sem_p(&sem_barrier, TM_INFINITE);
|
||||
//
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : waiting for sem_serverOk\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_p(&sem_serverOk, TM_INFINITE);
|
||||
// do {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : waiting for a message from monitor\n", info.name);
|
||||
//#endif
|
||||
// err = receive_message_from_monitor(msg.header, msg.data);
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s: msg {header:%s,data=%s} received from UI\n", info.name, msg.header, msg.data);
|
||||
//#endif
|
||||
// if (strcmp(msg.header, HEADER_MTS_COM_DMB) == 0) {
|
||||
// if (msg.data[0] == OPEN_COM_DMB) { // Open communication supervisor-robot
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s: message open Xbee communication\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_v(&sem_openComRobot);
|
||||
// }
|
||||
// } else if (strcmp(msg.header, HEADER_MTS_DMB_ORDER) == 0) {
|
||||
// if (msg.data[0] == DMB_START_WITHOUT_WD) { // Start robot
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s: message start robot\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_v(&sem_startRobot);
|
||||
//
|
||||
// } else if ((msg.data[0] == DMB_GO_BACK)
|
||||
// || (msg.data[0] == DMB_GO_FORWARD)
|
||||
// || (msg.data[0] == DMB_GO_LEFT)
|
||||
// || (msg.data[0] == DMB_GO_RIGHT)
|
||||
// || (msg.data[0] == DMB_STOP_MOVE)) {
|
||||
//
|
||||
// rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
||||
// robotMove = msg.data[0];
|
||||
// rt_mutex_release(&mutex_move);
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s: message update movement with %c\n", info.name, robotMove);
|
||||
//#endif
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// } while (err > 0);
|
||||
//
|
||||
//}
|
||||
//
|
||||
//void Tasks::f_openComRobot(void * arg) {
|
||||
// int err;
|
||||
//
|
||||
// /* INIT */
|
||||
// RT_TASK_INFO info;
|
||||
// rt_task_inquire(NULL, &info);
|
||||
// printf("Init %s\n", info.name);
|
||||
// rt_sem_p(&sem_barrier, TM_INFINITE);
|
||||
//
|
||||
// while (1) {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : Wait sem_openComRobot\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_p(&sem_openComRobot, TM_INFINITE);
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : sem_openComRobot arrived => open communication robot\n", info.name);
|
||||
//#endif
|
||||
// err = open_communication_robot();
|
||||
// if (err == 0) {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : the communication is opened\n", info.name);
|
||||
//#endif
|
||||
// MessageToMon msg;
|
||||
// set_msgToMon_header(&msg, (char*)HEADER_STM_ACK);
|
||||
// write_in_queue(&q_messageToMon, msg);
|
||||
// } else {
|
||||
// MessageToMon msg;
|
||||
// set_msgToMon_header(&msg, (char*)HEADER_STM_NO_ACK);
|
||||
// write_in_queue(&q_messageToMon, msg);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//void Tasks::f_startRobot(void * arg) {
|
||||
// int err;
|
||||
//
|
||||
// /* INIT */
|
||||
// RT_TASK_INFO info;
|
||||
// rt_task_inquire(NULL, &info);
|
||||
// printf("Init %s\n", info.name);
|
||||
// rt_sem_p(&sem_barrier, TM_INFINITE);
|
||||
//
|
||||
// while (1) {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : Wait sem_startRobot\n", info.name);
|
||||
//#endif
|
||||
// rt_sem_p(&sem_startRobot, TM_INFINITE);
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : sem_startRobot arrived => Start robot\n", info.name);
|
||||
//#endif
|
||||
// err = send_command_to_robot(DMB_START_WITHOUT_WD);
|
||||
// if (err == 0) {
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s : the robot is started\n", info.name);
|
||||
//#endif
|
||||
// rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
||||
// robotStarted = 1;
|
||||
// rt_mutex_release(&mutex_robotStarted);
|
||||
// MessageToMon msg;
|
||||
// set_msgToMon_header(&msg, (char*)HEADER_STM_ACK);
|
||||
// write_in_queue(&q_messageToMon, msg);
|
||||
// } else {
|
||||
// MessageToMon msg;
|
||||
// set_msgToMon_header(&msg, (char*)HEADER_STM_NO_ACK);
|
||||
// write_in_queue(&q_messageToMon, msg);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//void Tasks::f_move(void *arg) {
|
||||
// /* INIT */
|
||||
// RT_TASK_INFO info;
|
||||
// rt_task_inquire(NULL, &info);
|
||||
// printf("Init %s\n", info.name);
|
||||
// rt_sem_p(&sem_barrier, TM_INFINITE);
|
||||
//
|
||||
// /* PERIODIC START */
|
||||
//#ifdef _WITH_PERIODIC_TRACE_
|
||||
// printf("%s: start period\n", info.name);
|
||||
//#endif
|
||||
// rt_task_set_periodic(NULL, TM_NOW, 100000000);
|
||||
// while (1) {
|
||||
//#ifdef _WITH_PERIODIC_TRACE_
|
||||
// printf("%s: Wait period \n", info.name);
|
||||
//#endif
|
||||
// rt_task_wait_period(NULL);
|
||||
//#ifdef _WITH_PERIODIC_TRACE_
|
||||
// printf("%s: Periodic activation\n", info.name);
|
||||
// printf("%s: move equals %c\n", info.name, robotMove);
|
||||
//#endif
|
||||
// rt_mutex_acquire(&mutex_robotStarted, TM_INFINITE);
|
||||
// if (robotStarted) {
|
||||
// rt_mutex_acquire(&mutex_move, TM_INFINITE);
|
||||
// send_command_to_robot(robotMove);
|
||||
// rt_mutex_release(&mutex_move);
|
||||
//#ifdef _WITH_TRACE_
|
||||
// printf("%s: the movement %c was sent\n", info.name, robotMove);
|
||||
//#endif
|
||||
// }
|
||||
// rt_mutex_release(&mutex_robotStarted);
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//void write_in_queue(RT_QUEUE *queue, MessageToMon msg) {
|
||||
// void *buff;
|
||||
// buff = rt_queue_alloc(&q_messageToMon, sizeof (MessageToMon));
|
||||
// memcpy(buff, &msg, sizeof (MessageToMon));
|
||||
// rt_queue_send(&q_messageToMon, buff, sizeof (MessageToMon), Q_NORMAL);
|
||||
//}
|
||||
|
||||
#endif //__WITH_PTHREAD__
|
|
@ -212,7 +212,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
|
|||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
isActive = true;
|
||||
|
||||
delete(msgRcv); // mus be deleted manually, no consumer
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) {
|
||||
|
|
307
software/raspberry/superviseur-robot/tasks_pthread.cpp
Normal file
307
software/raspberry/superviseur-robot/tasks_pthread.cpp
Normal file
|
@ -0,0 +1,307 @@
|
|||
/*
|
||||
* Copyright (C) 2018 dimercur
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "tasks_pthread.h"
|
||||
#include <time.h>
|
||||
|
||||
#ifdef __WITH_PTHREAD__
|
||||
|
||||
// Déclaration des priorités des taches
|
||||
#define PRIORITY_TSERVER 30
|
||||
#define PRIORITY_TOPENCOMROBOT 20
|
||||
#define PRIORITY_TMOVE 10
|
||||
#define PRIORITY_TSENDTOMON 25
|
||||
#define PRIORITY_TRECEIVEFROMMON 22
|
||||
#define PRIORITY_TSTARTROBOT 20
|
||||
|
||||
/*
|
||||
* Some remarks:
|
||||
* 1- This program is mostly a template. It shows you how to create tasks, semaphore
|
||||
* message queues, mutex ... and how to use them
|
||||
*
|
||||
* 2- semDumber is, as name say, useless. Its goal is only to show you how to use semaphore
|
||||
*
|
||||
* 3- Data flow is probably not optimal
|
||||
*
|
||||
* 4- Take into account that ComRobot::Write will block your task when serial buffer is full,
|
||||
* time for internal buffer to flush
|
||||
*
|
||||
* 5- Same behavior existe for ComMonitor::Write !
|
||||
*
|
||||
* 6- When you want to write something in terminal, use cout and terminate with endl and flush
|
||||
*
|
||||
* 7- Good luck !
|
||||
*/
|
||||
|
||||
void Tasks::Init() {
|
||||
int status;
|
||||
|
||||
/* Open com port with STM32 */
|
||||
cout << "Open serial com (";
|
||||
status = robot.Open();
|
||||
cout << status;
|
||||
cout << ")" << endl;
|
||||
|
||||
if (status >= 0) {
|
||||
// Open server
|
||||
|
||||
status = monitor.Open(SERVER_PORT);
|
||||
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)
|
||||
};
|
||||
} else
|
||||
throw std::runtime_error {
|
||||
"Unable to open serial port /dev/ttyS0 "
|
||||
};
|
||||
}
|
||||
|
||||
void Tasks::Run() {
|
||||
|
||||
threadTimer = new thread((void (*)(void*)) & Tasks::TimerTask, this);
|
||||
threadServer = new thread((void (*)(void*)) & Tasks::ServerTask, this);
|
||||
|
||||
cout << "Tasks launched" << endl << flush;
|
||||
}
|
||||
|
||||
void Tasks::Stop() {
|
||||
monitor.Close();
|
||||
robot.Close();
|
||||
}
|
||||
|
||||
void Tasks::ServerTask(void *arg) {
|
||||
Message *msgRcv;
|
||||
Message *msgSend;
|
||||
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
while (isActive) {
|
||||
msgRcv = NULL;
|
||||
msgSend = NULL;
|
||||
|
||||
msgRcv = monitor.Read();
|
||||
cout << "Rcv <= " << msgRcv->ToString() << endl << flush;
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_OPEN)) {
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
isActive = true;
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_COM_CLOSE)) {
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
cout << "isActive = false!" << msgRcv->ToString() << endl << flush;
|
||||
isActive = false;
|
||||
|
||||
delete(msgRcv); // mus be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITH_WD)) {
|
||||
msgSend = robot.Write(msgRcv);
|
||||
cout << "Start with wd answer: " << msgSend->ToString() << endl << flush;
|
||||
|
||||
isActive=false;
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_START_WITHOUT_WD)) {
|
||||
msgSend = robot.Write(msgRcv);
|
||||
cout << "Start without wd answer: " << msgSend->ToString() << endl << flush;
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_RESET)) {
|
||||
msgSend = robot.Write(msgRcv);
|
||||
cout << "Reset answer: " << msgSend->ToString() << endl << flush;
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_GO_FORWARD) ||
|
||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_BACKWARD) ||
|
||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_LEFT) ||
|
||||
msgRcv->CompareID(MESSAGE_ROBOT_GO_RIGHT) ||
|
||||
msgRcv->CompareID(MESSAGE_ROBOT_STOP)) {
|
||||
msgSend = robot.Write(msgRcv);
|
||||
|
||||
cout << "Movement answer: " << msgSend->ToString() << endl << flush;
|
||||
|
||||
if (msgSend->CompareID(MESSAGE_ANSWER_ACK)) {
|
||||
delete (msgSend);
|
||||
msgSend = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_OPEN)) {
|
||||
sendImage = true;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_CLOSE)) {
|
||||
sendImage = false;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_START)) {
|
||||
sendPosition = true;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_POSITION_COMPUTE_STOP)) {
|
||||
sendPosition = false;
|
||||
msgSend = new Message(MESSAGE_ANSWER_ACK);
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_ROBOT_BATTERY_GET)) {
|
||||
msgSend = new MessageBattery(MESSAGE_ROBOT_BATTERY_LEVEL, BATTERY_FULL);
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ASK_ARENA)) {
|
||||
showArena = true;
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_CONFIRM)) {
|
||||
showArena = false;
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgRcv->CompareID(MESSAGE_CAM_ARENA_INFIRM)) {
|
||||
showArena = false;
|
||||
|
||||
delete(msgRcv); // must be deleted manually, no consumer
|
||||
}
|
||||
|
||||
if (msgSend != NULL) monitor.Write(msgSend);
|
||||
}
|
||||
}
|
||||
|
||||
void Tasks::TimerTask(void* arg) {
|
||||
struct timespec tim, tim2;
|
||||
Message *msgSend;
|
||||
int counter;
|
||||
int cntFrame = 0;
|
||||
Position pos;
|
||||
Arena arena;
|
||||
int counter_img;
|
||||
|
||||
tim.tv_sec = 0;
|
||||
tim.tv_nsec = 50000000; // 50ms (20fps)
|
||||
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
Camera camera = Camera(sm, 15);
|
||||
cout << "Try opening camera" << endl << flush;
|
||||
if (camera.Open()) cout << "Camera opened successfully" << endl << flush;
|
||||
else {
|
||||
cout << "Failed to open camera" << endl << flush;
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
pos.angle = 0.0;
|
||||
pos.robotId = -1;
|
||||
pos.center = cv::Point2f(0, 0);
|
||||
pos.direction = cv::Point2f(0, 0);
|
||||
|
||||
counter_img = 0;
|
||||
|
||||
while (isActive) {
|
||||
Img image = camera.Grab(); // 15fps
|
||||
cntFrame++;
|
||||
cout << "cnt: " << to_string(cntFrame) << endl << flush;
|
||||
|
||||
if (sendPosition == true) {
|
||||
counter++;
|
||||
|
||||
if (counter >= 5) { // div =15
|
||||
counter = 0;
|
||||
|
||||
//if (!arena.IsEmpty()) {
|
||||
image.dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(3));
|
||||
|
||||
std::list<Position> poses = image.SearchRobot(arena);
|
||||
cout << "Nbr of pos detected: " << to_string(poses.size()) << endl << flush;
|
||||
|
||||
if (poses.size() > 0) {
|
||||
Position firstPos = poses.front();
|
||||
|
||||
pos.angle = firstPos.angle;
|
||||
pos.robotId = firstPos.robotId;
|
||||
pos.center = firstPos.center;
|
||||
pos.direction = firstPos.direction;
|
||||
} else {
|
||||
// Nothing found
|
||||
pos.angle = 0.0;
|
||||
pos.robotId = -1;
|
||||
pos.center = cv::Point2f(0, 0);
|
||||
pos.direction = cv::Point2f(0, 0);
|
||||
}
|
||||
|
||||
MessagePosition *msgp = new MessagePosition(MESSAGE_CAM_POSITION, pos);
|
||||
monitor.Write(msgp);
|
||||
cout << "Position sent" << endl << flush;
|
||||
}
|
||||
}
|
||||
|
||||
if (sendImage == true) {
|
||||
counter_img++;
|
||||
|
||||
if (counter_img >= 1) {
|
||||
counter_img = 0;
|
||||
|
||||
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);
|
||||
|
||||
MessageImg *msg = new MessageImg(MESSAGE_CAM_IMAGE, &image);
|
||||
|
||||
monitor.Write(msg);
|
||||
cout << "Image sent" << endl << flush;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Tasks::SendToMonTask(void* arg) {
|
||||
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
|
||||
|
||||
while (1) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif //__WITH_PTHREAD__
|
|
@ -23,12 +23,6 @@
|
|||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
//#include "monitor.h"
|
||||
//#include "robot.h"
|
||||
//#include "image.h"
|
||||
//#include "message.h"
|
||||
//#include "server.h"
|
||||
|
||||
#include "camera.h"
|
||||
#include "img.h"
|
||||
|
||||
|
@ -95,47 +89,14 @@ private:
|
|||
|
||||
int counter;
|
||||
bool flag;
|
||||
|
||||
bool isActive = true;
|
||||
bool showArena=false;
|
||||
|
||||
thread *threadServer;
|
||||
thread *threadSendToMon;
|
||||
thread *threadTimer;
|
||||
// thread *threadReceiveFromMon;
|
||||
// thread *threadOpenComRobot;
|
||||
// thread *threadStartRobot;
|
||||
// thread *threadMove;
|
||||
// thread *threadTimer;
|
||||
|
||||
mutex mutexTimer;
|
||||
// mutex mutexRobotStarted;
|
||||
// mutex mutexMove;
|
||||
// mutex semBarrier;
|
||||
// mutex semOpenComRobot;
|
||||
// mutex semServerOk;
|
||||
// mutex semStartRobot;
|
||||
|
||||
|
||||
//
|
||||
// /**
|
||||
// * @brief Thread handling communication from monitor.
|
||||
// */
|
||||
// void ReceiveFromMonTask(void *arg);
|
||||
//
|
||||
// /**
|
||||
// * @brief Thread handling opening of robot communication.
|
||||
// */
|
||||
// void OpenComRobotTask(void * arg);
|
||||
//
|
||||
// /**
|
||||
// * @brief Thread handling robot mouvements.
|
||||
// */
|
||||
// void MoveTask(void *arg);
|
||||
//
|
||||
// /**
|
||||
// * @brief Thread handling robot activation.
|
||||
// */
|
||||
// void StartRobotTask(void *arg);
|
||||
};
|
||||
|
||||
#endif // __WITH_PTHREAD__
|
|
@ -4,7 +4,7 @@
|
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-1714585567149667287" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-862055963807747175" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-1714585567149667287" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.atollic.truestudio.mbs.GCCSpecsDetectorAtollicArm" console="false" env-hash="-862055963807747175" id="com.atollic.truestudio.mbs.provider" keep-relative-paths="false" name="Atollic ARM Tools Language Settings" parameter="${COMMAND} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
|
Loading…
Reference in a new issue