ajout du serveur dans le moniteur

This commit is contained in:
Sébastien DI MERCURIO 2018-10-25 15:02:48 +02:00
parent 0cdea959df
commit 8536d288ce
24 changed files with 1488 additions and 96 deletions

1
.gitignore vendored
View file

@ -62,3 +62,4 @@ GUI
# Android
*.apk
/software/raspberry/superviseur-robot/superviseur/dist/

40
software/monitor/monitor/.gitignore vendored Normal file
View file

@ -0,0 +1,40 @@
# Autosave files
*~
# build
[Oo]bj/
[Bb]in/
packages/
TestResults/
# globs
Makefile.in
*.DS_Store
*.sln.cache
*.suo
*.cache
*.pidb
*.userprefs
*.usertasks
config.log
config.make
config.status
aclocal.m4
install-sh
autom4te.cache/
*.user
*.tar.gz
tarballs/
test-results/
Thumbs.db
# Mac bundle stuff
*.dmg
*.app
# resharper
*_Resharper.*
*.Resharper
# dotCover
*.dotCover

View file

@ -0,0 +1,16 @@
using System;
using Gtk;
public partial class MainWindow : Gtk.Window
{
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
}
protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}
}

View file

@ -0,0 +1,16 @@
using System;
using Gtk;
namespace monitor
{
class MainClass
{
public static void Main(string[] args)
{
Application.Init();
MainWindow win = new MainWindow();
win.Show();
Application.Run();
}
}
}

View file

@ -0,0 +1,26 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("monitor")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("${AuthorCopyright}")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

View file

@ -0,0 +1,126 @@
// This file has been generated by the GUI designer. Do not modify.
public partial class MainWindow
{
private global::Gtk.UIManager UIManager;
private global::Gtk.VBox vbox1;
private global::Gtk.MenuBar menubar1;
private global::Gtk.HBox hbox1;
private global::Gtk.DrawingArea drawingarea1;
private global::Gtk.Alignment alignment1;
private global::Gtk.ScrolledWindow GtkScrolledWindow;
private global::Gtk.Frame frame1;
private global::Gtk.Fixed fixed4;
private global::Gtk.Button button7;
private global::Gtk.Label GtkLabel2;
private global::Gtk.Statusbar statusbar1;
protected virtual void Build()
{
global::Stetic.Gui.Initialize(this);
// Widget MainWindow
this.UIManager = new global::Gtk.UIManager();
global::Gtk.ActionGroup w1 = new global::Gtk.ActionGroup("Default");
this.UIManager.InsertActionGroup(w1, 0);
this.AddAccelGroup(this.UIManager.AccelGroup);
this.Name = "MainWindow";
this.Title = global::Mono.Unix.Catalog.GetString("Monitor UI");
this.WindowPosition = ((global::Gtk.WindowPosition)(4));
// Container child MainWindow.Gtk.Container+ContainerChild
this.vbox1 = new global::Gtk.VBox();
this.vbox1.Name = "vbox1";
this.vbox1.Spacing = 6;
// Container child vbox1.Gtk.Box+BoxChild
this.UIManager.AddUiFromString("<ui><menubar name=\'menubar1\'/></ui>");
this.menubar1 = ((global::Gtk.MenuBar)(this.UIManager.GetWidget("/menubar1")));
this.menubar1.Name = "menubar1";
this.vbox1.Add(this.menubar1);
global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.menubar1]));
w2.Position = 0;
w2.Expand = false;
w2.Fill = false;
// Container child vbox1.Gtk.Box+BoxChild
this.hbox1 = new global::Gtk.HBox();
this.hbox1.Name = "hbox1";
this.hbox1.Spacing = 6;
// Container child hbox1.Gtk.Box+BoxChild
this.drawingarea1 = new global::Gtk.DrawingArea();
this.drawingarea1.Name = "drawingarea1";
this.hbox1.Add(this.drawingarea1);
global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.drawingarea1]));
w3.Position = 0;
// Container child hbox1.Gtk.Box+BoxChild
this.alignment1 = new global::Gtk.Alignment(0.5F, 0.5F, 1F, 1F);
this.alignment1.Name = "alignment1";
// Container child alignment1.Gtk.Container+ContainerChild
this.GtkScrolledWindow = new global::Gtk.ScrolledWindow();
this.GtkScrolledWindow.Name = "GtkScrolledWindow";
this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
// Container child GtkScrolledWindow.Gtk.Container+ContainerChild
global::Gtk.Viewport w4 = new global::Gtk.Viewport();
w4.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child GtkViewport.Gtk.Container+ContainerChild
this.frame1 = new global::Gtk.Frame();
this.frame1.Name = "frame1";
this.frame1.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child frame1.Gtk.Container+ContainerChild
this.fixed4 = new global::Gtk.Fixed();
this.fixed4.Name = "fixed4";
this.fixed4.HasWindow = false;
// Container child fixed4.Gtk.Fixed+FixedChild
this.button7 = new global::Gtk.Button();
this.button7.CanFocus = true;
this.button7.Name = "button7";
this.button7.UseUnderline = true;
this.button7.Label = global::Mono.Unix.Catalog.GetString("GtkButton");
this.fixed4.Add(this.button7);
global::Gtk.Fixed.FixedChild w5 = ((global::Gtk.Fixed.FixedChild)(this.fixed4[this.button7]));
w5.X = 30;
w5.Y = 25;
this.frame1.Add(this.fixed4);
this.GtkLabel2 = new global::Gtk.Label();
this.GtkLabel2.Name = "GtkLabel2";
this.GtkLabel2.LabelProp = global::Mono.Unix.Catalog.GetString("<b>Controls</b>");
this.GtkLabel2.UseMarkup = true;
this.frame1.LabelWidget = this.GtkLabel2;
w4.Add(this.frame1);
this.GtkScrolledWindow.Add(w4);
this.alignment1.Add(this.GtkScrolledWindow);
this.hbox1.Add(this.alignment1);
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.alignment1]));
w10.Position = 1;
this.vbox1.Add(this.hbox1);
global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
w11.Position = 1;
// Container child vbox1.Gtk.Box+BoxChild
this.statusbar1 = new global::Gtk.Statusbar();
this.statusbar1.Name = "statusbar1";
this.statusbar1.Spacing = 6;
this.vbox1.Add(this.statusbar1);
global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.statusbar1]));
w12.Position = 2;
w12.Expand = false;
w12.Fill = false;
this.Add(this.vbox1);
if ((this.Child != null))
{
this.Child.ShowAll();
}
this.DefaultWidth = 1039;
this.DefaultHeight = 705;
this.Show();
this.DeleteEvent += new global::Gtk.DeleteEventHandler(this.OnDeleteEvent);
}
}

View file

@ -0,0 +1,30 @@
// This file has been generated by the GUI designer. Do not modify.
namespace Stetic
{
internal class Gui
{
private static bool initialized;
internal static void Initialize(Gtk.Widget iconRenderer)
{
if ((Stetic.Gui.initialized == false))
{
Stetic.Gui.initialized = true;
}
}
}
internal class ActionGroups
{
public static Gtk.ActionGroup GetActionGroup(System.Type type)
{
return Stetic.ActionGroups.GetActionGroup(type.FullName);
}
public static Gtk.ActionGroup GetActionGroup(string name)
{
return null;
}
}
}

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<stetic-interface>
<configuration>
<images-root-path>..</images-root-path>
</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" />
</import>
<widget class="Gtk.Window" id="MainWindow" design-size="1039 705">
<action-group name="Default" />
<property name="MemberName" />
<property name="Title" translatable="yes">Monitor UI</property>
<property name="WindowPosition">CenterOnParent</property>
<signal name="DeleteEvent" handler="OnDeleteEvent" />
<child>
<widget class="Gtk.VBox" id="vbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.MenuBar" id="menubar1">
<property name="MemberName" />
<node name="__gtksharp_132_Stetic_Editor_ActionMenuBar" type="Menubar" />
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
<child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.DrawingArea" id="drawingarea1">
<property name="MemberName" />
</widget>
<packing>
<property name="Position">0</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.Alignment" id="alignment1">
<property name="MemberName" />
<child>
<widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow">
<property name="MemberName" />
<property name="ShadowType">In</property>
<child>
<widget class="Gtk.Viewport" id="GtkViewport">
<property name="MemberName" />
<property name="ShadowType">None</property>
<child>
<widget class="Gtk.Frame" id="frame1">
<property name="MemberName" />
<property name="ShowScrollbars">True</property>
<property name="ShadowType">None</property>
<child>
<widget class="Gtk.Fixed" id="fixed4">
<property name="MemberName" />
<property name="HasWindow">False</property>
<child>
<widget class="Gtk.Button" id="button7">
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Type">TextOnly</property>
<property name="Label" translatable="yes">GtkButton</property>
<property name="UseUnderline">True</property>
</widget>
<packing>
<property name="X">30</property>
<property name="Y">25</property>
</packing>
</child>
</widget>
</child>
<child>
<widget class="Gtk.Label" id="GtkLabel2">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">&lt;b&gt;Controls&lt;/b&gt;</property>
<property name="UseMarkup">True</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
</widget>
<packing>
<property name="Position">1</property>
<property name="AutoSize">True</property>
</packing>
</child>
<child>
<widget class="Gtk.Statusbar" id="statusbar1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<placeholder />
</child>
<child>
<placeholder />
</child>
</widget>
<packing>
<property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</stetic-interface>

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>monitor</RootNamespace>
<AssemblyName>monitor</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</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" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
<LogicalName>gui.stetic</LogicalName>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Compile Include="gtk-gui\generated.cs" />
<Compile Include="MonitorUI.cs" />
<Compile Include="gtk-gui\MainWindow.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -0,0 +1,17 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "monitor", "monitor.csproj", "{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}.Debug|x86.ActiveCfg = Debug|x86
{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}.Debug|x86.Build.0 = Debug|x86
{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}.Release|x86.ActiveCfg = Release|x86
{F759E76E-E6D5-4117-8CE3-7FB83FECCAF9}.Release|x86.Build.0 = Release|x86
EndGlobalSection
EndGlobal

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,28 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: server.h
* Author: dimercur
*
* Created on 19 octobre 2018, 14:24
*/
#ifndef _SERVER_H_
#define _SERVER_H_
#define DEFAULT_SERVER_PORT 2323
int openServer (int port);
int closeServer();
int acceptClient();
int sendDataToServer(char *data, int length);
int sendDataToServerForClient(int client, char *data, int length);
int receiveDataFromServer(char *data, int size);
int receiveDataFromServerFromClient(int client, char *data, int size);
#endif /* _SERVER_H_ */

View file

@ -1,4 +1,5 @@
#include "monitor.h"
#include "server.h"
using namespace std;
@ -6,131 +7,48 @@ SOCKADDR_IN ssin;
SOCKET sock;
socklen_t recsize = sizeof (ssin);
/*Socket et contexte d'adressage du client */
SOCKADDR_IN csin;
SOCKET csock;
socklen_t crecsize = sizeof (csin);
int sock_err;
pid_t pidNodejs;
string serverReceive(int size);
int serverSend(const void *data, int dataLength);
int sendMessage(const char *data, int dataLength);
int receive(char *data);
int run_nodejs(const char * path, char * file) {
int ret;
//char *const parmList[] = {"/bin/ls", "-l", "/home", NULL};
char * const parmList[] = {"node", file, NULL};
if ((ret = fork()) == -1)
perror("fork error");
else if (ret == 0) {
ret = execv(path, parmList);
}
return ret;
}
int kill_nodejs() {
#ifdef __VERBOSE__
printf("kill nodejs\n");
#endif
return kill(pidNodejs, SIGTERM);
}
int open_server(int port) {
/* Création d'un socket */
sock = socket(AF_INET, SOCK_STREAM, 0);
int enable = 1;
/* Si la socket est valide */
if (sock != INVALID_SOCKET) {
#ifdef _WITH_TRACE_
printf("TCP/IP Socket %d opened\n", sock);
#endif
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof (enable));
/* Configuration */
ssin.sin_addr.s_addr = htonl(INADDR_ANY); /* Adresse IP automatique */
ssin.sin_family = AF_INET; /* Protocole familial (IP) */
ssin.sin_port = htons(port); /* Listage du port */
sock_err = bind(sock, (SOCKADDR*) & ssin, recsize);
/* Si la socket fonctionne */
if (sock_err != SOCKET_ERROR) {
/* Démarrage du listage (mode server) */
sock_err = listen(sock, 1);
/* Si la socket fonctionne */
if (sock_err != SOCKET_ERROR) {
/* Attente pendant laquelle le client se connecte */
#ifdef _WITH_TRACE_
printf("Waiting a client on port %d\n", port);
#endif
csock = accept(sock, (SOCKADDR*) & csin, &crecsize);
#ifdef _WITH_TRACE_
printf("Client connected\n");
#endif
return 0;
} else {
perror("listen");
}
} else {
perror("bind");
return (-1);
}
} else {
perror("socket");
return (-1);
}
return 0;
}
int close_server(void) {
/* Fermeture de la socket client et de la socket serveur */
close(csock);
close(sock);
printf("Socket fermé\n");
return 0;
}
int send_message_to_monitor(const char* typeMessage, const void * data) {
if ((string) typeMessage == HEADER_STM_IMAGE) {
Jpg * imgC = (Jpg*) data;
serverSend("IMG", 3);
serverSend(imgC->data(), imgC->size());
serverSend("TRAME", 5);
sendMessage("IMG", 3);
sendMessage((const char*)imgC->data(), imgC->size());
sendMessage("TRAME", 5);
return 0;
} else if ((string) typeMessage == HEADER_STM_POS) {
char buffer[400];
Position * maPosition = (Position*) data;
sprintf(buffer, "POScenter: %3d;%3d | %.1fTRAME", maPosition->center.x, maPosition->center.y, maPosition->angle);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else if ((string) typeMessage == HEADER_STM_MES) {
char buffer[50];
sprintf(buffer, "MSG%sTRAME", (const char*) data);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else if ((string) typeMessage == HEADER_STM_ACK) {
char buffer[50];
sprintf(buffer, "ACK%sTRAME", (const char*) data);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else if ((string) typeMessage == HEADER_STM_BAT) {
char buffer[50];
sprintf(buffer, "BAT%sTRAME", (const char*) data);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else if ((string) typeMessage == HEADER_STM_NO_ACK) {
char buffer[50];
sprintf(buffer, "NAK%sTRAME", (const char*) data);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else if ((string) typeMessage == HEADER_STM_LOST_DMB) {
char buffer[50];
sprintf(buffer, "LCD%sTRAME", (const char*) data);
serverSend(buffer, strlen(buffer));
sendMessage(buffer, strlen(buffer));
return 0;
} else {
return -1;
@ -146,13 +64,13 @@ int receive_message_from_monitor(char *typeMessage, char *data) {
int receive(char *data) {
int result;
result = recv(csock, data, 20, 0);
result = receiveDataFromServer(data, 20);
//cout <<"Data : " << data << endl;
return result;
}
int serverSend(const void *data, int dataLength) {
if (send(csock, data, dataLength, 0) != dataLength) {
int sendMessage(const char *data, int dataLength) {
if (sendDataToServer((char*)data, dataLength) != dataLength) {
perror("Send failed : ");
return false;
}

View file

@ -0,0 +1,97 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* File: server.cpp
* Author: dimercur
*
* Created on 19 octobre 2018, 14:24
*/
#include "server.h"
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define NB_CONNECTION_MAX 1
int socketFD = -1;
int clientID = -1;
int openServer(int port) {
struct sockaddr_in server;
socketFD = socket(AF_INET, SOCK_STREAM, 0);
if (socketFD < 0) {
perror("Can not create socket");
exit(-1);
}
server.sin_addr.s_addr = INADDR_ANY;
server.sin_family = AF_INET;
server.sin_port = htons(port);
if (bind(socketFD, (struct sockaddr *) &server, sizeof (server)) < 0) {
perror("Can not bind socket");
exit(-1);
}
listen(socketFD, NB_CONNECTION_MAX);
return socketFD;
}
int closeServer() {
close(socketFD);
socketFD = -1;
}
int acceptClient() {
struct sockaddr_in client;
int c = sizeof (struct sockaddr_in);
clientID = accept(socketFD, (struct sockaddr *) &client, (socklen_t*) & c);
if (clientID < 0) {
perror("Accept failed in acceptClient");
exit(-1);
}
return clientID;
}
int sendDataToServer(char *data, int length) {
return sendDataToServerForClient(clientID, data, length);
}
int sendDataToServerForClient(int client, char *data, int length) {
if (client >= 0)
return write(client, (void*)data, length);
else return 0;
}
int receiveDataFromServer(char *data, int size) {
return receiveDataFromServerFromClient(clientID, data, size);
}
int receiveDataFromServerFromClient(int client, char *data, int size) {
char length = 0;
if (client > 0) {
if ((length = recv(client, (void*)data, size, 0)) > 0) {
data[length] = 0;
}
}
return length;
}

View file

@ -0,0 +1 @@
# Automatic path mapper. CRC = 1

View file

@ -0,0 +1,48 @@
Scanning dependencies of target destijl
[ 12%] Building CXX object lib/CMakeFiles/destijl.dir/src/robot.cpp.o
[ 25%] Building CXX object lib/CMakeFiles/destijl.dir/src/monitor.cpp.o
In file included from /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp:1:0:
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/./monitor.h:65:117: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
int run_nodejs(const char *path = (const char*)DEFAULT_NODEJS_PATH, char *file = (const char*)DEFAULT_INTERFACE_FILE);
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp: In function int run_nodejs(const char*, char*):
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp:24:50: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
char * const parmList[] = {"node", file, NULL};
^
[ 37%] Building CXX object lib/CMakeFiles/destijl.dir/src/message.cpp.o
[ 50%] Building CXX object lib/CMakeFiles/destijl.dir/src/image.cpp.o
[ 62%] Linking CXX static library /home/dimercur/Documents/Travail/git/dumber/software/raspberry/lib/libdestijl.a
[ 62%] Built target destijl
Scanning dependencies of target superviseur
[ 75%] Building CXX object superviseur/CMakeFiles/superviseur.dir/src/main.cpp.o
In file included from /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h:28:0,
from /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp:19:
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib/monitor.h:65:117: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
int run_nodejs(const char *path = (const char*)DEFAULT_NODEJS_PATH, char *file = (const char*)DEFAULT_INTERFACE_FILE);
^
[ 87%] Building CXX object superviseur/CMakeFiles/superviseur.dir/src/functions.cpp.o
In file included from /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h:28:0,
from /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:1:
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib/monitor.h:65:117: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
int run_nodejs(const char *path = (const char*)DEFAULT_NODEJS_PATH, char *file = (const char*)DEFAULT_INTERFACE_FILE);
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp: In function void f_server(void*):
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:15:81: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
err = run_nodejs("/usr/local/bin/node", "/home/pi/Interface_Robot/server.js");
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp: In function void f_openComRobot(void*):
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:140:53: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
set_msgToMon_header(&msg, HEADER_STM_ACK);
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:144:56: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
set_msgToMon_header(&msg, HEADER_STM_NO_ACK);
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp: In function void f_startRobot(void*):
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:176:53: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
set_msgToMon_header(&msg, HEADER_STM_ACK);
^
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp:180:56: warning: ISO C++ forbids converting a string constant to char* [-Wwrite-strings]
set_msgToMon_header(&msg, HEADER_STM_NO_ACK);
^
[100%] Linking CXX executable /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur/bin/superviseur
[100%] Built target superviseur

View file

@ -0,0 +1,225 @@
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/destijl.dir/src/robot.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/destijl.dir/src/monitor.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/destijl.dir/src/message.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/.
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/destijl.dir/src/image.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp
called: /usr/bin/ar
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib
/usr/bin/ar
qc
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/lib/libdestijl.a
CMakeFiles/destijl.dir/src/robot.cpp.o
CMakeFiles/destijl.dir/src/monitor.cpp.o
CMakeFiles/destijl.dir/src/message.cpp.o
CMakeFiles/destijl.dir/src/image.cpp.o
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/./src
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib
-I/usr/xenomai/include
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/superviseur.dir/src/main.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur
/usr/bin/g++
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/./src
-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib
-I/usr/xenomai/include
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-std=gnu++11
-o
CMakeFiles/superviseur.dir/src/functions.cpp.o
-c
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp
called: /usr/bin/g++
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur
/usr/bin/g++
-I/usr/xenomai/include/mercury
-I/usr/xenomai/include
-D_GNU_SOURCE
-D_REENTRANT
-fasynchronous-unwind-tables
-D__MERCURY__
-I/usr/xenomai/include/alchemy
-g3
-gdwarf-2
-Wl,--no-as-needed
-lalchemy
-lcopperplate
/usr/xenomai/lib/xenomai/bootstrap.o
-Wl,--wrap=main
-Wl,--dynamic-list=/usr/xenomai/lib/dynlist.ld
-L/usr/xenomai/lib
-lmercury
-lpthread
-lrt
CMakeFiles/superviseur.dir/src/main.cpp.o
CMakeFiles/superviseur.dir/src/functions.cpp.o
-o
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur/bin/superviseur
-L/usr/xenomai/lib
-Wl,-rpath,/usr/xenomai/lib
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/lib/libdestijl.a
called: /usr/bin/ld
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur
/usr/bin/ld
-plugin
/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
-plugin-opt=-fresolution=/tmp/ccpeJ2Nc.res
-plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc
-plugin-opt=-pass-through=-lc
-plugin-opt=-pass-through=-lgcc_s
-plugin-opt=-pass-through=-lgcc
--sysroot=/
--build-id
--eh-frame-hdr
-m
elf_x86_64
--hash-style=gnu
--as-needed
-dynamic-linker
/lib64/ld-linux-x86-64.so.2
-pie
-z
now
-z
relro
-o
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur/bin/superviseur
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o
/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o
-L/usr/xenomai/lib
-L/usr/xenomai/lib
-L/usr/lib/gcc/x86_64-linux-gnu/7
-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib
-L/lib/x86_64-linux-gnu
-L/lib/../lib
-L/usr/lib/x86_64-linux-gnu
-L/usr/lib/../lib
-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..
--no-as-needed
-lalchemy
-lcopperplate
/usr/xenomai/lib/xenomai/bootstrap.o
--wrap=main
--dynamic-list=/usr/xenomai/lib/dynlist.ld
-lmercury
-lpthread
-lrt
CMakeFiles/superviseur.dir/src/main.cpp.o
CMakeFiles/superviseur.dir/src/functions.cpp.o
-rpath
/usr/xenomai/lib
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/lib/libdestijl.a
-lstdc++
-lm
-lgcc_s
-lgcc
-lc
-lgcc_s
-lgcc
/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o

View file

@ -0,0 +1,6 @@
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/. -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/destijl.dir/src/message.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/message.cpp
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/. -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/destijl.dir/src/monitor.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/monitor.cpp
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/. -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/destijl.dir/src/robot.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/robot.cpp
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/. -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/destijl.dir/src/image.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/image.cpp
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/./src -I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/superviseur.dir/src/main.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp
/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp=/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur#-I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/./src -I/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/../lib -I/usr/xenomai/include -I/usr/xenomai/include/mercury -I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__MERCURY__ -I/usr/xenomai/include/alchemy -g3 -gdwarf-2 -std=gnu++11 -o CMakeFiles/superviseur.dir/src/functions.cpp.o -c /home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp

View file

@ -0,0 +1,75 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/c/header
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
#include <ctype.h> // Functions to determine the type contained in character data
#include <errno.h> // Macros reporting error conditions
#include <float.h> // Limits of float types
#include <limits.h> // Sizes of basic types
#include <locale.h> // Localization utilities
#include <math.h> // Common mathematics functions
#include <setjmp.h> // Nonlocal jumps
#include <signal.h> // Signal handling
#include <stdarg.h> // Variable arguments
#include <stddef.h> // Common macro definitions
#include <stdio.h> // Input/output
#include <string.h> // String handling
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
#include <time.h> // Time/date utilities
#include <iso646.h> // (since C95) Alternative operator spellings
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
#ifdef _STDC_C99
#include <complex.h> // (since C99) Complex number arithmetic
#include <fenv.h> // (since C99) Floating-point environment
#include <inttypes.h> // (since C99) Format conversion of integer types
#include <stdbool.h> // (since C99) Boolean type
#include <stdint.h> // (since C99) Fixed-width integer types
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
#endif
#ifdef _STDC_C11
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
#include <stdatomic.h> // (since C11) Atomic types
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
#include <threads.h> // (since C11) Thread library
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
#endif

View file

@ -0,0 +1,331 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="100">
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
<df root="." name="0">
<df name=".idea">
<df name="codeStyles">
</df>
</df>
<df name="build">
<df name="CMakeFiles">
<df name="3.10.2">
<df name="CompilerIdCXX">
<df name="tmp">
</df>
<in>CMakeCXXCompilerId.cpp</in>
</df>
</df>
<df name="CMakeTmp">
</df>
<in>feature_tests.cxx</in>
</df>
<df name="lib">
<df name="CMakeFiles">
<df name="destijl.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="superviseur">
<df name="CMakeFiles">
<df name="superviseur.dir">
<df name="src">
</df>
</df>
</df>
</df>
</df>
<df name="cmake-build-debug">
<df name="CMakeFiles">
<df name="3.10.2">
<df name="CompilerIdCXX">
<df name="tmp">
</df>
<in>CMakeCXXCompilerId.cpp</in>
</df>
</df>
<df name="3.12.2">
<df name="CompilerIdCXX">
<df name="tmp">
</df>
<in>CMakeCXXCompilerId.cpp</in>
</df>
</df>
<df name="CMakeTmp">
</df>
<in>feature_tests.cxx</in>
</df>
<df name="examples">
<df name="CMakeFiles">
<df name="serialTest.dir">
<df name="src">
</df>
</df>
<df name="serialtest.dir">
<df name="src">
</df>
</df>
<df name="serverTest.dir">
<df name="src">
</df>
</df>
<df name="servertest.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="lib">
<df name="CMakeFiles">
<df name="destijl.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="monitor">
<df name="CMakeFiles">
<df name="monitor.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="monitor-pc">
<df name="CMakeFiles">
<df name="monitor.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="monitor-pthread">
<df name="CMakeFiles">
<df name="monitor.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="superviseur">
<df name="CMakeFiles">
<df name="superviseur-xenomai.dir">
<df name="src">
</df>
</df>
<df name="superviseur.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="superviseur-pthread">
<df name="CMakeFiles">
<df name="superviseur-pthread.dir">
<df name="src">
</df>
</df>
</df>
</df>
<df name="superviseur-xenomai">
<df name="CMakeFiles">
<df name="superviseur-xenomai.dir">
<df name="src">
</df>
</df>
</df>
</df>
</df>
<df name="CMakeFiles">
<df name="3.10.2">
<df name="CompilerIdCXX">
<df name="tmp">
</df>
</df>
</df>
<df name="CMakeTmp">
</df>
</df>
<df name="examples">
<df name="bin">
</df>
<df name="src">
<in>rtvideoExample.cpp</in>
<in>serialExample.cpp</in>
<in>serialTest.cpp</in>
<in>serverTest.cpp</in>
<in>uiExample.cpp</in>
<in>videoExample.cpp</in>
</df>
</df>
<df name="futur">
<df name="examples">
<df name="bin">
</df>
<df name="src">
<in>rtvideoExample.cpp</in>
<in>serialExample.cpp</in>
<in>serialTest.cpp</in>
<in>serverTest.cpp</in>
<in>uiExample.cpp</in>
<in>videoExample.cpp</in>
</df>
</df>
<df name="lib">
<df name="src">
<in>Camera.cpp</in>
<in>Image.cpp</in>
<in>MsgManager.cpp</in>
<in>Robot.cpp</in>
<in>Serial.cpp</in>
<in>TcpServer.cpp</in>
</df>
<in>Camera.h</in>
<in>Definition.h</in>
<in>Image.h</in>
<in>MsgManager.h</in>
<in>Robot.h</in>
<in>Serial.h</in>
<in>TcpServer.h</in>
</df>
<df name="superviseur-xenomai">
<df name="bin">
</df>
<df name="src">
<in>Program.cpp</in>
<in>Tasks.cpp</in>
<in>Tasks.h</in>
</df>
</df>
</df>
<df name="lib">
<df name="CMakeFiles">
<df name="destijl.dir">
<df name="src">
</df>
</df>
</df>
<df name="src">
<in>image.cpp</in>
<in>message.cpp</in>
<in>monitor.cpp</in>
<in>robot.cpp</in>
<in>server.cpp</in>
</df>
<in>definitions.h</in>
<in>image.h</in>
<in>message.h</in>
<in>monitor.h</in>
<in>robot.h</in>
<in>server.h</in>
</df>
<df name="src.sav">
<in>definitions.h</in>
<in>image.cpp</in>
<in>image.h</in>
<in>message.cpp</in>
<in>message.h</in>
<in>monitor.cpp</in>
<in>monitor.h</in>
<in>robot.cpp</in>
<in>robot.h</in>
</df>
<df name="superviseur">
<df name="bin">
</df>
<df name="build">
<df name="Debug">
<df name="GNU-Linux">
<df name="_ext">
<df name="a59f760b">
</df>
</df>
<df name="src">
</df>
</df>
</df>
</df>
<df name="CMakeFiles">
<df name="superviseur.dir">
<df name="src">
</df>
</df>
</df>
<df name="dist">
<df name="Debug">
<df name="GNU-Linux">
</df>
</df>
</df>
<df name="src">
<in>functions.cpp</in>
<in>functions.h</in>
<in>main.cpp</in>
</df>
<in>.gitignore</in>
</df>
<df name="superviseur-pthread">
<df name="bin">
</df>
<df name="src">
<in>Program.cpp</in>
<in>Tasks.cpp</in>
<in>Tasks.h</in>
</df>
</df>
<df name="superviseur-xenomai">
<df name="bin">
</df>
</df>
</df>
</logicalFolder>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="Default" type="0">
<toolsSet>
<developmentServer>localhost</developmentServer>
<platform>2</platform>
</toolsSet>
<compile>
<compiledirpicklist>
<compiledirpicklistitem>.</compiledirpicklistitem>
<compiledirpicklistitem>${AUTO_FOLDER}</compiledirpicklistitem>
</compiledirpicklist>
<compiledir>${AUTO_FOLDER}</compiledir>
<compilecommandpicklist>
<compilecommandpicklistitem>${MAKE} ${ITEM_NAME}.o</compilecommandpicklistitem>
<compilecommandpicklistitem>${AUTO_COMPILE}</compilecommandpicklistitem>
</compilecommandpicklist>
<compilecommand>${AUTO_COMPILE}</compilecommand>
</compile>
<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>false</buildfirst>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View file

@ -0,0 +1,135 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
#include <csignal> // Functions and macro constants for signal management
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
#include <cstdarg> // Handling of variable length argument lists
#include <typeinfo> // Runtime type information utilities
#include <bitset> // std::bitset class template
#include <functional> // Function objects, designed for use with the standard algorithms
#include <utility> // Various utility components
#include <ctime> // C-style time/date utilites
#include <cstddef> // typedefs for types such as size_t, NULL and others
#include <new> // Low-level memory management utilities
#include <memory> // Higher level memory management utilities
#include <climits> // limits of integral types
#include <cfloat> // limits of float types
#include <limits> // standardized way to query properties of arithmetic types
#include <exception> // Exception handling utilities
#include <stdexcept> // Standard exception objects
#include <cassert> // Conditionally compiled macro that compares its argument to zero
#include <cerrno> // Macro containing the last error number
#include <cctype> // functions to determine the type contained in character data
#include <cwctype> // functions for determining the type of wide character data
#include <cstring> // various narrow character string handling functions
#include <cwchar> // various wide and multibyte string handling functions
#include <string> // std::basic_string class template
#include <vector> // std::vector container
#include <deque> // std::deque container
#include <list> // std::list container
#include <set> // std::set and std::multiset associative containers
#include <map> // std::map and std::multimap associative containers
#include <stack> // std::stack container adaptor
#include <queue> // std::queue and std::priority_queue container adaptors
#include <algorithm> // Algorithms that operate on containers
#include <iterator> // Container iterators
#include <cmath> // Common mathematics functions
#include <complex> // Complex number type
#include <valarray> // Class for representing and manipulating arrays of values
#include <numeric> // Numeric operations on values in containers
#include <iosfwd> // forward declarations of all classes in the input/output library
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
#include <istream> // std::basic_istream class template and several typedefs
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
#include <iostream> // several standard stream objects
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
#include <iomanip> // Helper functions to control the format or input and output
#include <streambuf> // std::basic_streambuf class template
#include <cstdio> // C-style input-output functions
#include <locale> // Localization utilities
#include <clocale> // C localization utilities
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
#if __cplusplus >= 201103L
#include <typeindex> // (since C++11) std::type_index
#include <type_traits> // (since C++11) Compile-time type information
#include <chrono> // (since C++11) C++ time utilites
#include <initializer_list> // (since C++11) std::initializer_list class template
#include <tuple> // (since C++11) std::tuple class template
#include <scoped_allocator> // (since C++11) Nested allocator class
#include <cstdint> // (since C++11) fixed-size types and limits of other types
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
#include <array> // (since C++11) std::array container
#include <forward_list> // (since C++11) std::forward_list container
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
#include <random> // (since C++11) Random number generators and distributions
#include <ratio> // (since C++11) Compile-time rational arithmetic
#include <cfenv> // (since C++11) Floating-point environment access functions
#include <codecvt> // (since C++11) Unicode conversion facilities
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
#include <atomic> // (since C++11) Atomic operations library
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <thread> // (since C++11) std::thread class and supporting functions
#include <mutex> // (since C++11) mutual exclusion primitives
#include <future> // (since C++11) primitives for asynchronous computations
#include <condition_variable> // (since C++11) thread waiting conditions
#endif
#if __cplusplus >= 201300L
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
#endif
#if __cplusplus >= 201500L
#include <any> // (since C++17) std::any class template
#include <optional> // (since C++17) std::optional class template
#include <variant> // (since C++17) std::variant class template
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
#include <string_view> // (since C++17) std::basic_string_view class template
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
#include <filesystem> // (since C++17) std::path class and supporting functions
#endif

View file

@ -0,0 +1,42 @@
# Launchers File syntax:
#
# [Must-have property line]
# launcher1.runCommand=<Run Command>
# [Optional extra properties]
# launcher1.displayName=<Display Name, runCommand by default>
# launcher1.hide=<true if lancher is not visible in menu, false by default>
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
# launcher1.runInOwnTab=<false if launcher reuse common "Run" output tab, true by default>
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
# [Common launcher properties]
# common.runDir=<Run Directory>
# (This value is overwritten by a launcher specific runDir value if the latter exists)
# common.env.<Environment variable KEY>=<Environment variable VALUE>
# (Environment variables from common launcher are merged with launcher specific variables)
# common.symbolFiles=<Symbol Files loaded by debugger>
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
#
# In runDir, symbolFiles and env fields you can use these macroses:
# ${PROJECT_DIR} - project directory absolute path
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
# ${OUTPUT_BASENAME}- linker output filename
# ${TESTDIR} - test files directory (relative to project directory path)
# ${OBJECTDIR} - object files directory (relative to project directory path)
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
# ${CND_BUILDDIR} - build directory (relative to project directory path)
# ${CND_PLATFORM} - platform name
# ${CND_CONF} - configuration name
# ${CND_DLIB_EXT} - dynamic library extension
#
# All the project launchers must be listed in the file!
#
# launcher1.runCommand=...
# launcher2.runCommand=...
# ...
# common.runDir=...
# common.env.KEY=VALUE
# launcher1.runCommand=<type your run command here>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<code-assistance-data xmlns="http://www.netbeans.org/ns/make-project-private/1">
<code-model-enabled>true</code-model-enabled>
</code-assistance-data>
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
<activeConfTypeElem>0</activeConfTypeElem>
<activeConfIndexElem>0</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/src/monitor.cpp</file>
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/main.cpp</file>
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/src/server.cpp</file>
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/lib/server.h</file>
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.cpp</file>
<file>file:/home/dimercur/Documents/Travail/git/dumber/software/raspberry/superviseur-robot/superviseur/src/functions.h</file>
</group>
</open-files>
</project-private>