mirror of
https://github.com/yoboujon/dumber.git
synced 2025-06-08 13:50:49 +02:00
Ajout de l'affichage de la position dans le moniteur + nettoyage dans le code des superviseurs
This commit is contained in:
parent
e33b24b0fd
commit
1944ee80d1
25 changed files with 802 additions and 659 deletions
|
@ -13,46 +13,92 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
class Ui_MainWindow(object):
|
class Ui_MainWindow(object):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
MainWindow.setObjectName("MainWindow")
|
MainWindow.setObjectName("MainWindow")
|
||||||
MainWindow.resize(973, 635)
|
MainWindow.resize(985, 745)
|
||||||
MainWindow.setMinimumSize(QtCore.QSize(973, 635))
|
MainWindow.setMinimumSize(QtCore.QSize(985, 745))
|
||||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||||
self.centralwidget.setObjectName("centralwidget")
|
self.centralwidget.setObjectName("centralwidget")
|
||||||
self.widget = QtWidgets.QWidget(self.centralwidget)
|
self.widget = QtWidgets.QWidget(self.centralwidget)
|
||||||
self.widget.setGeometry(QtCore.QRect(14, 13, 947, 574))
|
self.widget.setGeometry(QtCore.QRect(20, 16, 947, 671))
|
||||||
self.widget.setObjectName("widget")
|
self.widget.setObjectName("widget")
|
||||||
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.widget)
|
self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.widget)
|
||||||
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
|
self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
|
||||||
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||||
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
|
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
|
||||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||||
|
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||||
self.checkBox_enableCamera = QtWidgets.QCheckBox(self.widget)
|
self.checkBox_enableCamera = QtWidgets.QCheckBox(self.widget)
|
||||||
self.checkBox_enableCamera.setObjectName("checkBox_enableCamera")
|
self.checkBox_enableCamera.setObjectName("checkBox_enableCamera")
|
||||||
self.verticalLayout_4.addWidget(self.checkBox_enableCamera)
|
self.horizontalLayout_3.addWidget(self.checkBox_enableCamera)
|
||||||
|
self.checkBox_enableFPS = QtWidgets.QCheckBox(self.widget)
|
||||||
|
self.checkBox_enableFPS.setObjectName("checkBox_enableFPS")
|
||||||
|
self.horizontalLayout_3.addWidget(self.checkBox_enableFPS)
|
||||||
|
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
|
||||||
self.label_Image = QtWidgets.QLabel(self.widget)
|
self.label_Image = QtWidgets.QLabel(self.widget)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.label_Image.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(self.label_Image.sizePolicy().hasHeightForWidth())
|
||||||
self.label_Image.setSizePolicy(sizePolicy)
|
self.label_Image.setSizePolicy(sizePolicy)
|
||||||
self.label_Image.setMinimumSize(QtCore.QSize(640, 480))
|
self.label_Image.setMinimumSize(QtCore.QSize(640, 480))
|
||||||
self.label_Image.setSizeIncrement(QtCore.QSize(1, 1))
|
self.label_Image.setSizeIncrement(QtCore.QSize(1, 1))
|
||||||
self.label_Image.setFrameShape(QtWidgets.QFrame.Box)
|
self.label_Image.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||||
self.label_Image.setText("")
|
self.label_Image.setText("")
|
||||||
self.label_Image.setObjectName("label_Image")
|
self.label_Image.setObjectName("label_Image")
|
||||||
self.verticalLayout_4.addWidget(self.label_Image)
|
self.verticalLayout_4.addWidget(self.label_Image)
|
||||||
self.pushButton_confirmArena = QtWidgets.QPushButton(self.widget)
|
self.pushButton_confirmArena = QtWidgets.QPushButton(self.widget)
|
||||||
self.pushButton_confirmArena.setObjectName("pushButton_confirmArena")
|
self.pushButton_confirmArena.setObjectName("pushButton_confirmArena")
|
||||||
self.verticalLayout_4.addWidget(self.pushButton_confirmArena)
|
self.verticalLayout_4.addWidget(self.pushButton_confirmArena)
|
||||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
|
||||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||||
self.checkBox_enableFPS = QtWidgets.QCheckBox(self.widget)
|
|
||||||
self.checkBox_enableFPS.setObjectName("checkBox_enableFPS")
|
|
||||||
self.horizontalLayout_3.addWidget(self.checkBox_enableFPS)
|
|
||||||
self.checkBox_enablePosition = QtWidgets.QCheckBox(self.widget)
|
self.checkBox_enablePosition = QtWidgets.QCheckBox(self.widget)
|
||||||
self.checkBox_enablePosition.setObjectName("checkBox_enablePosition")
|
self.checkBox_enablePosition.setObjectName("checkBox_enablePosition")
|
||||||
self.horizontalLayout_3.addWidget(self.checkBox_enablePosition)
|
self.horizontalLayout_6.addWidget(self.checkBox_enablePosition)
|
||||||
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
|
self.gridLayout_2 = QtWidgets.QGridLayout()
|
||||||
self.horizontalLayout_6.addLayout(self.verticalLayout_4)
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
||||||
|
self.label_100 = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_100.setText("")
|
||||||
|
self.label_100.setPixmap(QtGui.QPixmap("ui/../res/icons8-robot-24.png"))
|
||||||
|
self.label_100.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_100.setObjectName("label_100")
|
||||||
|
self.gridLayout_2.addWidget(self.label_100, 0, 0, 1, 1)
|
||||||
|
self.label_RobotID = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_RobotID.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_RobotID.setObjectName("label_RobotID")
|
||||||
|
self.gridLayout_2.addWidget(self.label_RobotID, 0, 1, 1, 1)
|
||||||
|
self.label_102 = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_102.setText("")
|
||||||
|
self.label_102.setPixmap(QtGui.QPixmap("ui/../res/icons8-azimuth-24.png"))
|
||||||
|
self.label_102.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_102.setObjectName("label_102")
|
||||||
|
self.gridLayout_2.addWidget(self.label_102, 1, 0, 1, 1)
|
||||||
|
self.label_RobotAngle = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_RobotAngle.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_RobotAngle.setObjectName("label_RobotAngle")
|
||||||
|
self.gridLayout_2.addWidget(self.label_RobotAngle, 1, 1, 1, 1)
|
||||||
|
self.label_101 = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_101.setText("")
|
||||||
|
self.label_101.setPixmap(QtGui.QPixmap("ui/../res/icons8-emplacement-off-24.png"))
|
||||||
|
self.label_101.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_101.setObjectName("label_101")
|
||||||
|
self.gridLayout_2.addWidget(self.label_101, 2, 0, 1, 1)
|
||||||
|
self.label_RobotPos = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_RobotPos.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_RobotPos.setObjectName("label_RobotPos")
|
||||||
|
self.gridLayout_2.addWidget(self.label_RobotPos, 2, 1, 1, 1)
|
||||||
|
self.label_103 = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_103.setText("")
|
||||||
|
self.label_103.setPixmap(QtGui.QPixmap("ui/../res/icons8-flèche-haut-gauche-24.png"))
|
||||||
|
self.label_103.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_103.setObjectName("label_103")
|
||||||
|
self.gridLayout_2.addWidget(self.label_103, 3, 0, 1, 1)
|
||||||
|
self.label_RobotDirection = QtWidgets.QLabel(self.widget)
|
||||||
|
self.label_RobotDirection.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_RobotDirection.setObjectName("label_RobotDirection")
|
||||||
|
self.gridLayout_2.addWidget(self.label_RobotDirection, 3, 1, 1, 1)
|
||||||
|
self.horizontalLayout_6.addLayout(self.gridLayout_2)
|
||||||
|
self.verticalLayout_4.addLayout(self.horizontalLayout_6)
|
||||||
|
self.horizontalLayout_7.addLayout(self.verticalLayout_4)
|
||||||
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
|
||||||
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
self.verticalLayout_6.setObjectName("verticalLayout_6")
|
||||||
self.groupBox_activation = QtWidgets.QGroupBox(self.widget)
|
self.groupBox_activation = QtWidgets.QGroupBox(self.widget)
|
||||||
|
@ -182,10 +228,10 @@ class Ui_MainWindow(object):
|
||||||
self.verticalLayout_6.addWidget(self.groupBox_AnswerandBattery)
|
self.verticalLayout_6.addWidget(self.groupBox_AnswerandBattery)
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.verticalLayout_6.addItem(spacerItem)
|
self.verticalLayout_6.addItem(spacerItem)
|
||||||
self.horizontalLayout_6.addLayout(self.verticalLayout_6)
|
self.horizontalLayout_7.addLayout(self.verticalLayout_6)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 973, 22))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 985, 22))
|
||||||
self.menubar.setObjectName("menubar")
|
self.menubar.setObjectName("menubar")
|
||||||
self.menu_Quitter = QtWidgets.QMenu(self.menubar)
|
self.menu_Quitter = QtWidgets.QMenu(self.menubar)
|
||||||
self.menu_Quitter.setObjectName("menu_Quitter")
|
self.menu_Quitter.setObjectName("menu_Quitter")
|
||||||
|
@ -209,9 +255,13 @@ class Ui_MainWindow(object):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
MainWindow.setWindowTitle(_translate("MainWindow", "Robot Monitor"))
|
MainWindow.setWindowTitle(_translate("MainWindow", "Robot Monitor"))
|
||||||
self.checkBox_enableCamera.setText(_translate("MainWindow", "Enable Ca&mera"))
|
self.checkBox_enableCamera.setText(_translate("MainWindow", "Enable Ca&mera"))
|
||||||
self.pushButton_confirmArena.setText(_translate("MainWindow", "Co&nfirme arena border..."))
|
|
||||||
self.checkBox_enableFPS.setText(_translate("MainWindow", "Enable &FPS"))
|
self.checkBox_enableFPS.setText(_translate("MainWindow", "Enable &FPS"))
|
||||||
|
self.pushButton_confirmArena.setText(_translate("MainWindow", "Co&nfirme arena border..."))
|
||||||
self.checkBox_enablePosition.setText(_translate("MainWindow", "Enable Pos&ition"))
|
self.checkBox_enablePosition.setText(_translate("MainWindow", "Enable Pos&ition"))
|
||||||
|
self.label_RobotID.setText(_translate("MainWindow", "No robot (-1)"))
|
||||||
|
self.label_RobotAngle.setText(_translate("MainWindow", "0.0°"))
|
||||||
|
self.label_RobotPos.setText(_translate("MainWindow", "(0.0, 0.0)"))
|
||||||
|
self.label_RobotDirection.setText(_translate("MainWindow", "(0.0, 0.0)"))
|
||||||
self.groupBox_activation.setTitle(_translate("MainWindow", "Robot Activation"))
|
self.groupBox_activation.setTitle(_translate("MainWindow", "Robot Activation"))
|
||||||
self.groupBox_connection.setTitle(_translate("MainWindow", "Connection"))
|
self.groupBox_connection.setTitle(_translate("MainWindow", "Connection"))
|
||||||
self.label.setText(_translate("MainWindow", "Address:"))
|
self.label.setText(_translate("MainWindow", "Address:"))
|
||||||
|
|
|
@ -264,10 +264,50 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
|
|
||||||
self.label_Image.setPixmap(im_pixmap)
|
self.label_Image.setPixmap(im_pixmap)
|
||||||
self.label_Image.setScaledContents(True)
|
self.label_Image.setScaledContents(True)
|
||||||
self.label_Image.setSizePolicy(QtWidgets.QSizePolicy.Ignored,QtWidgets.QSizePolicy.Ignored)
|
self.label_Image.setSizePolicy(QtWidgets.QSizePolicy.Fixed,QtWidgets.QSizePolicy.Fixed)
|
||||||
elif Network.CAMERA_POSITION in s:
|
elif Network.CAMERA_POSITION in s:
|
||||||
print ("position received")
|
#CPOS:-1;0.000000;0.000000;0.000000;0.000000;0.000000
|
||||||
print (s)
|
str_split = s.split(':')
|
||||||
|
values_split = str_split[1].split(';')
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_ID = int(values_split[0]) # Id of robot
|
||||||
|
except:
|
||||||
|
robot_ID = -1
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_Angle = float(values_split[1]) # angle of robot
|
||||||
|
except:
|
||||||
|
robot_Angle = 0.0
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_Coord_X = float(values_split[2]) # X coord of robot
|
||||||
|
except:
|
||||||
|
robot_Coord_X = 0.0
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_Coord_Y = float(values_split[3]) # Y coord of robot
|
||||||
|
except:
|
||||||
|
robot_Coord_Y = 0.0
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_Cap_X = float(values_split[4]) # X cap of robot
|
||||||
|
except:
|
||||||
|
robot_Cap_X = 0.0
|
||||||
|
|
||||||
|
try:
|
||||||
|
robot_Cap_Y = float(values_split[5]) # Y cap of robot
|
||||||
|
except:
|
||||||
|
robot_Cap_Y = 0.0
|
||||||
|
|
||||||
|
if robot_ID == -1:
|
||||||
|
self.label_RobotID.setText("No robot (-1)")
|
||||||
|
else:
|
||||||
|
self.label_RobotID.setText(values_split[0])
|
||||||
|
|
||||||
|
self.label_RobotAngle.setText("%.2f°" % (robot_Angle))
|
||||||
|
self.label_RobotPos.setText("(%.2f, %.2f)" % (robot_Coord_X, robot_Coord_Y))
|
||||||
|
self.label_RobotDirection.setText("(%.2f, %.2f)" % (robot_Cap_X, robot_Cap_Y))
|
||||||
|
|
||||||
# Callback for battery timeout
|
# Callback for battery timeout
|
||||||
@QtCore.pyqtSlot()
|
@QtCore.pyqtSlot()
|
||||||
|
|
BIN
software/monitor/monitor-python-qt/res/icons8-azimuth-24.png
Normal file
BIN
software/monitor/monitor-python-qt/res/icons8-azimuth-24.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 362 B |
Binary file not shown.
After Width: | Height: | Size: 431 B |
Binary file not shown.
After Width: | Height: | Size: 340 B |
BIN
software/monitor/monitor-python-qt/res/icons8-robot-24.png
Normal file
BIN
software/monitor/monitor-python-qt/res/icons8-robot-24.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 279 B |
|
@ -6,14 +6,14 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>973</width>
|
<width>985</width>
|
||||||
<height>635</height>
|
<height>745</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>973</width>
|
<width>985</width>
|
||||||
<height>635</height>
|
<height>745</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -23,26 +23,37 @@
|
||||||
<widget class="QWidget" name="">
|
<widget class="QWidget" name="">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>14</x>
|
<x>20</x>
|
||||||
<y>13</y>
|
<y>16</y>
|
||||||
<width>947</width>
|
<width>947</width>
|
||||||
<height>574</height>
|
<height>671</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBox_enableCamera">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<property name="text">
|
<item>
|
||||||
<string>Enable Ca&mera</string>
|
<widget class="QCheckBox" name="checkBox_enableCamera">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string>Enable Ca&mera</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkBox_enableFPS">
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable &FPS</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_Image">
|
<widget class="QLabel" name="label_Image">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
@ -60,7 +71,7 @@
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::Box</enum>
|
<enum>QFrame::NoFrame</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
|
@ -75,14 +86,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="checkBox_enableFPS">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable &FPS</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBox_enablePosition">
|
<widget class="QCheckBox" name="checkBox_enablePosition">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -90,6 +94,102 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_100">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../res/icons8-robot-24.png</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="label_RobotID">
|
||||||
|
<property name="text">
|
||||||
|
<string>No robot (-1)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_102">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../res/icons8-azimuth-24.png</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="label_RobotAngle">
|
||||||
|
<property name="text">
|
||||||
|
<string>0.0°</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_101">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../res/icons8-emplacement-off-24.png</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="label_RobotPos">
|
||||||
|
<property name="text">
|
||||||
|
<string>(0.0, 0.0)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_103">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="pixmap">
|
||||||
|
<pixmap>../res/icons8-flèche-haut-gauche-24.png</pixmap>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="label_RobotDirection">
|
||||||
|
<property name="text">
|
||||||
|
<string>(0.0, 0.0)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -353,7 +453,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>973</width>
|
<width>985</width>
|
||||||
<height>22</height>
|
<height>22</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -29,12 +29,6 @@ using namespace cv;
|
||||||
Camera::Camera(int size, int fps) {
|
Camera::Camera(int size, int fps) {
|
||||||
this->SetSize(size);
|
this->SetSize(size);
|
||||||
this->fps = fps;
|
this->fps = fps;
|
||||||
#ifndef __FOR_PC__
|
|
||||||
this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
|
||||||
this->cap.set(CV_CAP_PROP_FPS, fps);
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,23 +38,13 @@ Camera::Camera(int size, int fps) {
|
||||||
bool Camera::Open() {
|
bool Camera::Open() {
|
||||||
bool status = false;
|
bool status = false;
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
if (this->cap.open(0)) {
|
if (this->cap.open(0)) {
|
||||||
//this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
//this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
||||||
|
this->cap.set(CV_CAP_PROP_FPS, this->fps);
|
||||||
status = true;
|
status = true;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
if (this->cap.open()) {
|
|
||||||
cout << "Camera warmup 2sec" << endl << flush;
|
|
||||||
sleep(2);
|
|
||||||
cout << "Start capture" << endl << flush;
|
|
||||||
|
|
||||||
status = true;
|
|
||||||
}
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@ -97,8 +81,8 @@ void Camera::SetSize(int size) {
|
||||||
this->height = 768;
|
this->height = 768;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
this->width = 480;
|
this->width = 320;
|
||||||
this->height = 360;
|
this->height = 240;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,19 +93,8 @@ void Camera::SetSize(int size) {
|
||||||
Img Camera::Grab() {
|
Img Camera::Grab() {
|
||||||
ImageMat frame;
|
ImageMat frame;
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
cap >> frame;
|
cap >> frame;
|
||||||
Img capture = Img(frame);
|
Img capture = Img(frame);
|
||||||
#else
|
|
||||||
cap.grab();
|
|
||||||
cap.retrieve(frame);
|
|
||||||
|
|
||||||
#ifdef __INVERSE_COLOR__
|
|
||||||
cvtColor(frame, frame, CV_BGR2RGB);
|
|
||||||
#endif // __INVERSE_COLOR__
|
|
||||||
|
|
||||||
Img capture = Img(frame);
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
return capture;
|
return capture;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,6 @@
|
||||||
#include <opencv2/imgproc/imgproc.hpp>
|
#include <opencv2/imgproc/imgproc.hpp>
|
||||||
#include <opencv2/videoio/legacy/constants_c.h>
|
#include <opencv2/videoio/legacy/constants_c.h>
|
||||||
|
|
||||||
#ifndef __FOR_PC__
|
|
||||||
#include "raspicam/raspicam_cv.h"
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
#include "img.h"
|
#include "img.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,14 +91,8 @@ public:
|
||||||
Img Grab();
|
Img Grab();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef __FOR_PC__
|
|
||||||
/**
|
cv::VideoCapture cap;
|
||||||
* Camera descriptor
|
|
||||||
*/
|
|
||||||
cv::VideoCapture cap;
|
|
||||||
#else
|
|
||||||
raspicam::RaspiCam_Cv cap;
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Size for image (default= small)
|
* Size for image (default= small)
|
||||||
|
|
|
@ -26,12 +26,9 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
// #define USART_FILENAME "/dev/ttyUSB0"
|
|
||||||
#define USART_FILENAME "/dev/ttyS0"
|
#define USART_FILENAME "/dev/ttyS0"
|
||||||
#else
|
// Uncomment the following line when used on PC
|
||||||
#define USART_FILENAME "/dev/ttyS0"
|
//#define USART_FILENAME "/dev/ttyUSB0"
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Constants to be used for communicating with robot. Contains command tag
|
* Constants to be used for communicating with robot. Contains command tag
|
||||||
|
|
|
@ -72,42 +72,42 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot-dumber-pthread: ${O
|
||||||
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/camera.o: lib/camera.cpp
|
${OBJECTDIR}/lib/camera.o: lib/camera.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
|
${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
|
${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/img.o: lib/img.cpp
|
${OBJECTDIR}/lib/img.o: lib/img.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/messages.o: lib/messages.cpp
|
${OBJECTDIR}/lib/messages.o: lib/messages.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/main.o: main.cpp
|
${OBJECTDIR}/main.o: main.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
|
${OBJECTDIR}/tasks_pthread.o: tasks_pthread.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -D__WITH_PTHREAD__ -I./ -I./lib `pkg-config --cflags opencv4` -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks_pthread.o tasks_pthread.cpp
|
||||||
|
|
||||||
# Subprojects
|
# Subprojects
|
||||||
.build-subprojects:
|
.build-subprojects:
|
||||||
|
|
|
@ -216,7 +216,6 @@
|
||||||
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11</commandLine>
|
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -Wno-pmf-conversions -std=gnu++11</commandLine>
|
||||||
<preprocessorList>
|
<preprocessorList>
|
||||||
<Elem>_WITH_TRACE_</Elem>
|
<Elem>_WITH_TRACE_</Elem>
|
||||||
<Elem>__FOR_PC__</Elem>
|
|
||||||
<Elem>__WITH_ARUCO__</Elem>
|
<Elem>__WITH_ARUCO__</Elem>
|
||||||
<Elem>__WITH_PTHREAD__</Elem>
|
<Elem>__WITH_PTHREAD__</Elem>
|
||||||
</preprocessorList>
|
</preprocessorList>
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
</conf>
|
</conf>
|
||||||
<conf name="JPO2019_RPI_" type="1">
|
<conf name="JPO2019_RPI_" type="1">
|
||||||
<toolsSet>
|
<toolsSet>
|
||||||
<developmentServer>xenomai@192.168.1.141:22</developmentServer>
|
<developmentServer>xenomai@10.105.1.7:22</developmentServer>
|
||||||
<platform>2</platform>
|
<platform>2</platform>
|
||||||
</toolsSet>
|
</toolsSet>
|
||||||
<dbx_gdbdebugger version="1">
|
<dbx_gdbdebugger version="1">
|
||||||
|
|
|
@ -7,13 +7,10 @@
|
||||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
<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">
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
<group>
|
<group>
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/img.h</file>
|
<file>file:/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot-dumber-pthread/lib/img.h</file>
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/img.cpp</file>
|
<file>file:/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot-dumber-pthread/lib/camera.cpp</file>
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/messages.cpp</file>
|
<file>file:/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot-dumber-pthread/lib/img.cpp</file>
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/tasks_pthread.cpp</file>
|
<file>file:/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot-dumber-pthread/lib/camera.h</file>
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/commonitor.cpp</file>
|
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/camera.cpp</file>
|
|
||||||
<file>file:/home/dimercur/Travail/dumber/raspberry/superviseur-robot-dumber-pthread/lib/camera.h</file>
|
|
||||||
</group>
|
</group>
|
||||||
</open-files>
|
</open-files>
|
||||||
</project-private>
|
</project-private>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -242,43 +242,44 @@ void Tasks::TimerTask(void* arg) {
|
||||||
//cntFrame++;
|
//cntFrame++;
|
||||||
//cout << "cnt: " << to_string(cntFrame) << endl << flush;
|
//cout << "cnt: " << to_string(cntFrame) << endl << flush;
|
||||||
|
|
||||||
|
image.dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::PREDEFINED_DICTIONARY_NAME(3));
|
||||||
|
|
||||||
|
std::list<Position> poses = image.SearchRobot(arena);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
if (sendPosition == true) {
|
if (sendPosition == true) {
|
||||||
counter++;
|
counter++;
|
||||||
|
|
||||||
if (counter >= 5) { // div =15
|
if (counter >= 15) { // div =15/15 => 1 update per second
|
||||||
counter = 0;
|
counter = 0;
|
||||||
|
|
||||||
//if (!arena.IsEmpty()) {
|
//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;
|
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);
|
MessagePosition *msgp = new MessagePosition(MESSAGE_CAM_POSITION, pos);
|
||||||
monitor.Write(msgp);
|
monitor.Write(msgp);
|
||||||
cout << "Position sent" << endl << flush;
|
//cout << "Position sent" << endl << flush;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sendImage == true) {
|
if (sendImage == true) {
|
||||||
counter_img++;
|
counter_img++;
|
||||||
|
|
||||||
if (counter_img >= 1) {
|
if (counter_img >= 1) { // Div = 15/1 => 15 images per sec
|
||||||
counter_img = 0;
|
counter_img = 0;
|
||||||
|
|
||||||
if (showArena) {
|
if (showArena) {
|
||||||
|
|
|
@ -35,12 +35,7 @@ Camera::Camera():Camera(sm, 10){
|
||||||
*/
|
*/
|
||||||
Camera::Camera(int size, int fps) {
|
Camera::Camera(int size, int fps) {
|
||||||
this->SetSize(size);
|
this->SetSize(size);
|
||||||
#ifndef __FOR_PC__
|
this->fps = fps;
|
||||||
this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
|
||||||
this->cap.set(CV_CAP_PROP_FPS, fps);
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,23 +45,13 @@ Camera::Camera(int size, int fps) {
|
||||||
bool Camera::Open() {
|
bool Camera::Open() {
|
||||||
bool status = false;
|
bool status = false;
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
if (this->cap.open(0)) {
|
if (this->cap.open(0)) {
|
||||||
//this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
//this->cap.set(CV_CAP_PROP_FORMAT, CV_8UC3);
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
this->cap.set(CV_CAP_PROP_FRAME_WIDTH, width);
|
||||||
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
this->cap.set(CV_CAP_PROP_FRAME_HEIGHT, height);
|
||||||
|
this->cap.set(CV_CAP_PROP_FPS, fps);
|
||||||
status = true;
|
status = true;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
if (this->cap.open()) {
|
|
||||||
cout << "Camera warmup 2sec" << endl << flush;
|
|
||||||
sleep(2);
|
|
||||||
cout << "Start capture" << endl << flush;
|
|
||||||
|
|
||||||
status = true;
|
|
||||||
}
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@ -87,24 +72,24 @@ void Camera::SetSize(int size) {
|
||||||
|
|
||||||
switch (size) {
|
switch (size) {
|
||||||
case xs:
|
case xs:
|
||||||
this->width = 480;
|
this->width = 320;
|
||||||
this->height = 360;
|
this->height = 240;
|
||||||
break;
|
break;
|
||||||
case sm:
|
case sm:
|
||||||
this->width = 640;
|
this->width = 640;
|
||||||
this->height = 480;
|
this->height = 480;
|
||||||
break;
|
break;
|
||||||
case md:
|
case md:
|
||||||
|
this->width = 800;
|
||||||
|
this->height = 600;
|
||||||
|
break;
|
||||||
|
case lg:
|
||||||
this->width = 1024;
|
this->width = 1024;
|
||||||
this->height = 768;
|
this->height = 768;
|
||||||
break;
|
break;
|
||||||
case lg:
|
|
||||||
this->width = 1280;
|
|
||||||
this->height = 960;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
this->width = 480;
|
this->width = 320;
|
||||||
this->height = 360;
|
this->height = 240;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,19 +100,8 @@ void Camera::SetSize(int size) {
|
||||||
Img Camera::Grab() {
|
Img Camera::Grab() {
|
||||||
ImageMat frame;
|
ImageMat frame;
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
cap >> frame;
|
cap >> frame;
|
||||||
Img capture = Img(frame);
|
Img capture = Img(frame);
|
||||||
#else
|
|
||||||
cap.grab();
|
|
||||||
cap.retrieve(frame);
|
|
||||||
|
|
||||||
#ifdef __INVERSE_COLOR__
|
|
||||||
cvtColor(frame, frame, CV_BGR2RGB);
|
|
||||||
#endif // __INVERSE_COLOR__
|
|
||||||
|
|
||||||
Img capture = Img(frame);
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
return capture;
|
return capture;
|
||||||
}
|
}
|
||||||
|
@ -156,3 +130,11 @@ int Camera::GetHeight() const {
|
||||||
return height;
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get fps of sampled image
|
||||||
|
* @return fps of sampled picture
|
||||||
|
*/
|
||||||
|
int Camera::GetFPS() const {
|
||||||
|
return fps;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,6 @@
|
||||||
#include <opencv2/imgproc/imgproc.hpp>
|
#include <opencv2/imgproc/imgproc.hpp>
|
||||||
#include <opencv2/videoio/legacy/constants_c.h>
|
#include <opencv2/videoio/legacy/constants_c.h>
|
||||||
|
|
||||||
#ifndef __FOR_PC__
|
|
||||||
#include "raspicam/raspicam_cv.h"
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
#include "img.h"
|
#include "img.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,6 +73,12 @@ public:
|
||||||
*/
|
*/
|
||||||
int GetHeight() const;
|
int GetHeight() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get fps of sampled image
|
||||||
|
* @return fps of sampled picture
|
||||||
|
*/
|
||||||
|
int GetFPS() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get opening status for camera
|
* Get opening status for camera
|
||||||
* @return true if camera is open, false otherwise
|
* @return true if camera is open, false otherwise
|
||||||
|
@ -95,14 +98,10 @@ public:
|
||||||
Img Grab();
|
Img Grab();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef __FOR_PC__
|
|
||||||
/**
|
/**
|
||||||
* Camera descriptor
|
* Camera descriptor
|
||||||
*/
|
*/
|
||||||
cv::VideoCapture cap;
|
cv::VideoCapture cap;
|
||||||
#else
|
|
||||||
raspicam::RaspiCam_Cv cap;
|
|
||||||
#endif /* __FOR_PC__ */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Size for image (default= small)
|
* Size for image (default= small)
|
||||||
|
@ -118,6 +117,11 @@ private:
|
||||||
* Height of image
|
* Height of image
|
||||||
*/
|
*/
|
||||||
int height;
|
int height;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fps of image
|
||||||
|
*/
|
||||||
|
int fps;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //__CAMERA_H__
|
#endif //__CAMERA_H__
|
||||||
|
|
|
@ -26,11 +26,9 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
#ifdef __FOR_PC__
|
|
||||||
#define USART_FILENAME "/dev/ttyUSB0"
|
|
||||||
#else
|
|
||||||
#define USART_FILENAME "/dev/ttyS0"
|
#define USART_FILENAME "/dev/ttyS0"
|
||||||
#endif /* __FOR_PC__ */
|
// Uncomment the following line when used on PC
|
||||||
|
//#define USART_FILENAME "/dev/ttyUSB0"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Constants to be used for communicating with robot. Contains command tag
|
* Constants to be used for communicating with robot. Contains command tag
|
||||||
|
|
|
@ -294,3 +294,14 @@ void Img::DrawArena(Arena arenaToDraw) {
|
||||||
ImageMat Img::CropArena(Arena arena) {
|
ImageMat Img::CropArena(Arena arena) {
|
||||||
return this->img(arena.arena);
|
return this->img(arena.arena);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Crop image around detected arena
|
||||||
|
* @param arena Coordinate of arena
|
||||||
|
* @return Reduced image, focused on arena
|
||||||
|
*/
|
||||||
|
Img Img::Resize() {
|
||||||
|
ImageMat newImage;
|
||||||
|
cv::resize(this->img, newImage, cv::Size(320,240), cv::INTER_LINEAR);
|
||||||
|
return Img(newImage);
|
||||||
|
}
|
|
@ -181,7 +181,8 @@ public:
|
||||||
* @return list of position, empty if no robot found
|
* @return list of position, empty if no robot found
|
||||||
*/
|
*/
|
||||||
std::list<Position> SearchRobot(Arena arena);
|
std::list<Position> SearchRobot(Arena arena);
|
||||||
|
|
||||||
|
Img Resize();
|
||||||
#ifdef __WITH_ARUCO__
|
#ifdef __WITH_ARUCO__
|
||||||
/**
|
/**
|
||||||
* Dictionary to be used for aruco recognition
|
* Dictionary to be used for aruco recognition
|
||||||
|
|
|
@ -47,7 +47,7 @@ OBJECTFILES= \
|
||||||
|
|
||||||
|
|
||||||
# C Compiler Flags
|
# 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
|
CFLAGS=-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy
|
||||||
|
|
||||||
# CC Compiler Flags
|
# CC Compiler Flags
|
||||||
CCFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy -Wno-pmf-conversions -std=gnu++11
|
CCFLAGS=-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy -Wno-pmf-conversions -std=gnu++11
|
||||||
|
@ -73,42 +73,42 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/superviseur-robot: ${OBJECTFILES}
|
||||||
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
${OBJECTDIR}/lib/base64/base64.o: lib/base64/base64.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
${MKDIR} -p ${OBJECTDIR}/lib/base64
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/base64/base64.o lib/base64/base64.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/camera.o: lib/camera.cpp
|
${OBJECTDIR}/lib/camera.o: lib/camera.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/camera.o lib/camera.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
|
${OBJECTDIR}/lib/commonitor.o: lib/commonitor.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/commonitor.o lib/commonitor.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
|
${OBJECTDIR}/lib/comrobot.o: lib/comrobot.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/comrobot.o lib/comrobot.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/img.o: lib/img.cpp
|
${OBJECTDIR}/lib/img.o: lib/img.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/img.o lib/img.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/lib/messages.o: lib/messages.cpp
|
${OBJECTDIR}/lib/messages.o: lib/messages.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}/lib
|
${MKDIR} -p ${OBJECTDIR}/lib
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/lib/messages.o lib/messages.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/main.o: main.cpp
|
${OBJECTDIR}/main.o: main.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/tasks.o: tasks.cpp
|
${OBJECTDIR}/tasks.o: tasks.cpp
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
${RM} "$@.d"
|
${RM} "$@.d"
|
||||||
$(COMPILE.cc) -g -D_WITH_TRACE_ -D__FOR_PC__ -D__WITH_ARUCO__ -I./ -I./lib -I/usr/xenomai/include -I/usr/xenomai/include/cobalt `pkg-config --cflags opencv4` -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/cobalt `pkg-config --cflags opencv4` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/tasks.o tasks.cpp
|
||||||
|
|
||||||
${OBJECTDIR}/wrapper.o: wrapper.c
|
${OBJECTDIR}/wrapper.o: wrapper.c
|
||||||
${MKDIR} -p ${OBJECTDIR}
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
|
|
@ -131,7 +131,7 @@
|
||||||
<pElem>/usr/xenomai/include</pElem>
|
<pElem>/usr/xenomai/include</pElem>
|
||||||
<pElem>/usr/xenomai/include/mercury</pElem>
|
<pElem>/usr/xenomai/include/mercury</pElem>
|
||||||
</incDir>
|
</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>
|
<commandLine>-I/usr/xenomai/include/mercury -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy</commandLine>
|
||||||
</cTool>
|
</cTool>
|
||||||
<ccTool>
|
<ccTool>
|
||||||
<incDir>
|
<incDir>
|
||||||
|
@ -143,7 +143,6 @@
|
||||||
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy -Wno-pmf-conversions -std=gnu++11</commandLine>
|
<commandLine>-D_GNU_SOURCE -D_REENTRANT -fasynchronous-unwind-tables -D__COBALT__ -I/usr/xenomai/include/alchemy -Wno-pmf-conversions -std=gnu++11</commandLine>
|
||||||
<preprocessorList>
|
<preprocessorList>
|
||||||
<Elem>_WITH_TRACE_</Elem>
|
<Elem>_WITH_TRACE_</Elem>
|
||||||
<Elem>__FOR_PC__</Elem>
|
|
||||||
<Elem>__WITH_ARUCO__</Elem>
|
<Elem>__WITH_ARUCO__</Elem>
|
||||||
</preprocessorList>
|
</preprocessorList>
|
||||||
</ccTool>
|
</ccTool>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#Tue Oct 18 16:27:07 CEST 2022
|
#Thu Oct 20 14:09:18 CEST 2022
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/search.css=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/robot-icon.resized.png=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_string__coll__graph.pdf=c1547560340000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor-members.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1554978722000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/Makefile=c1554978722000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1666083174932
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/messages.cpp=c1666083174932
|
||||||
|
@ -42,30 +42,30 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_b.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1549890874000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/README.md=c1549890874000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/classes.html=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1666267752164
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.md5=c1547564860000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.md5=c1547564860000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/nbproject/Makefile-Debug__RPI_.mk=c1666103200662
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/files_1.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560338000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_1.js=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__dep__incl.pdf=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_f.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565562000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_a.html=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_string.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.md5=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreeindex0.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/navtreeindex0.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.png=c1547564768000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_1.png=c1547564768000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_camera.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/refman.tex=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560338000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_6.html=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/base64_8h__incl.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/struct_position-members.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_14.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.md5=c1547560338000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565562000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/classes_3.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.js=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__inherit__graph.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_e.html=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int-members.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/splitbar.png=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/splitbar.png=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_10.js=c1547565562000
|
||||||
|
@ -81,8 +81,8 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_5.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/tabs.css=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_5.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565562000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_arena.js=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/folderopen.png=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_2.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_battery__inherit__graph.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.html=c1547565562000
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_4.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img-members.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_img-members.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1554978722000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/.gitignore=c1554978722000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1666083174932
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.cpp=c1666267250425
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.png=c1547564862000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/inherit_graph_0.png=c1547564862000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/doxygen.sty=c1547565562000
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_a.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1554974530000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/README.md=c1554974530000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/messages_8h__incl.pdf=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1549890874000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/comrobot.cpp=c1666267283341
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_9.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_com_monitor.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_f.html=c1547565562000
|
||||||
|
@ -127,10 +127,10 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/functions_8.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_battery.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dynsections.js=c1547565562000
|
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1549890874000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/base64/LICENSE=c1549890874000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.png=c1547564862000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/dynsections.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/variables_b.js=c1547565562000
|
||||||
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position__coll__graph.png=c1547564862000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_d.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_com_monitor.tex=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.png=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/comrobot_8h__incl.png=c1547560338000
|
||||||
|
@ -178,7 +178,7 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/img_8h.tex=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.png=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/messages_8h__incl.png=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/annotated.tex=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1666102495240
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/camera.h=c1666267590725
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enumvalues_2.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563912000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_img__coll__graph.png=c1547563912000
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/enums_2.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_position.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_camera.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_camera.tex=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1549890874000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.h=c1666267381241
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bdwn.png=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_img__inherit__graph.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.md5=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/class_message_int__inherit__graph.md5=c1547560338000
|
||||||
|
@ -333,7 +333,7 @@
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1666083174936
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/tasks.cpp=c1666083174936
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/bc_s.png=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/all_11.js=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1666102495240
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/lib/img.cpp=c1666267351773
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.html=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/search/defines_1.html=c1547565562000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.md5=c1547560338000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/html/class_message_int__coll__graph.md5=c1547560338000
|
||||||
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h.tex=c1547565562000
|
/home/dimercur/Travail/git/dumber/software/raspberry/superviseur-robot/doc/latex/commonitor_8h.tex=c1547565562000
|
||||||
|
|
Loading…
Add table
Reference in a new issue