passage au tout objet + messagerie

This commit is contained in:
Sébastien DI MERCURIO 2018-12-14 17:04:42 +01:00
parent c7929ff18c
commit a8b1fb8f44
358 changed files with 2526 additions and 19291 deletions

View file

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

Binary file not shown.

View file

@ -0,0 +1,86 @@
/*
* Copyright (C) 2018 dimercur
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "camera.h"
#include "img.h"
using namespace cv;
void Camera::setSize(int size) {
this->size = size;
switch (size){
case xs:
this->width = 480;
this->height = 360;
break;
case sm:
this->width = 640;
this->height = 480;
break;
case md:
this->width = 1024;
this->height = 768;
break;
case lg:
this->width = 1280;
this->height = 960;
break;
default:
this->width = 480;
this->height = 360;
}
}
int Camera::open_camera() {
this->cap.open(0);
}
Camera::Camera(int size) {
this->setSize(size);
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);
}
int Camera::close_camera() {
cap.release();
return 0;
}
Img Camera::grab_image() {
ImageMat frame;
cap >> frame;
Img capture = Img(frame);
return capture;
}
bool Camera::isOpen() {
return cap.isOpened();
}
int Camera::getWidth() const {
return width;
}
int Camera::getHeight() const {
return height;
}

View file

@ -0,0 +1,52 @@
/*
* Copyright (C) 2018 dimercur
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __CAMERA_H__
#define __CAMERA_H__
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include "img.h"
enum captureSize {xs, sm, md, lg};
class Camera {
public:
Camera(int size);
int open_camera();
int getWidth() const;
int getHeight() const;
bool isOpen();
void setSize(int size);
int close_camera();
Img grab_image();
private:
cv::VideoCapture cap;
int size = sm;
int width;
int height;
};
#endif //__CAMERA_H__

View file

@ -0,0 +1,189 @@
/*
* Copyright (C) 2018 dimercur
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "comgui.h"
#include <iostream>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <algorithm>
#include <stdexcept>
#include <string>
/*
* Constants used for sending commands to gui
*/
const string LABEL_GUI_ANGULAR_POSITION = "AngularPosition";
const string LABEL_GUI_ANGULAR_SPEED = "AngularSpeed";
const string LABEL_GUI_BATTERY_LEVEL = "Battery";
const string LABEL_GUI_LINEAR_SPEED = "LinearSpeed";
const string LABEL_GUI_USER_PRESENCE = "User";
const string LABEL_GUI_BETA_ANGLE = "Beta";
const string LABEL_GUI_TORQUE = "Torque";
const string LABEL_GUI_EMERGENCY_STOP = "Emergency";
const string LABEL_GUI_LOG = "Log";
/**
* Create a server and open a socket over TCP
*
* @param port Port used for communication
* @return Socket number
* @throw std::runtime_error if it fails
*/
int ComGui::Open(int port) {
struct sockaddr_in server;
socketFD = socket(AF_INET, SOCK_STREAM, 0);
if (socketFD < 0) {
throw std::runtime_error{"ComGui::Open : Can not create socket"};
}
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) {
throw std::runtime_error{"ComGui::Open : Can not bind socket on port " + std::to_string(port)};
}
listen(socketFD, 1);
return socketFD;
}
/**
* Close socket and server
*/
void ComGui::Close() {
close(socketFD);
socketFD = -1;
}
/**
* Wait for a client to connect
* @return Client number
* @throw std::runtime_error if it fails
*/
int ComGui::AcceptClient() {
struct sockaddr_in client;
int c = sizeof (struct sockaddr_in);
clientID = accept(socketFD, (struct sockaddr *) &client, (socklen_t*) & c);
if (clientID < 0)
throw std::runtime_error {
"ComGui::AcceptClient : Accept failed"
};
return clientID;
}
/**
* Send a message to GUI
*
* @param msg Message to send to GUI
* @attention Message given in parameter will be destroyed (delete) after being sent. No need for user to delete message after that.
* @warning Write is not thread safe : check that multiple tasks can't access this method simultaneously
*/
void ComGui::Write(Message* msg) {
string *str;
// Call user method before Write
Write_Pre();
/* Convert message to string to send to GUI */
str = MessageToString(msg);
//cout << "Message sent to GUI: " << str->c_str() << endl;
write(clientID, str->c_str(), str->length());
delete(str);
// Call user method after write
Write_Post();
}
/**
* Method used internally to convert a message content to a string that can be sent over TCP
* @param msg Message to be converted
* @return A string, image of the message
*/
string *ComGui::MessageToString(Message *msg) {
int id;
string *str;
if (msg != NULL) {
id = msg->GetID();
switch (id) {
case MESSAGE_ANGLE_POSITION:
str = new string(LABEL_GUI_ANGULAR_POSITION + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_ANGULAR_SPEED:
str = new string(LABEL_GUI_ANGULAR_SPEED + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_BATTERY:
str = new string(LABEL_GUI_BATTERY_LEVEL + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_BETA:
str = new string(LABEL_GUI_BETA_ANGLE + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_LINEAR_SPEED:
str = new string(LABEL_GUI_LINEAR_SPEED + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_TORQUE:
str = new string(LABEL_GUI_TORQUE + "=" + to_string(((MessageFloat*) msg)->GetValue()) + "\n");
replace(str->begin(), str->end(), '.', ','); // Mono C# require float to have a , instead of a .
break;
case MESSAGE_EMERGENCY_STOP:
str = new string(LABEL_GUI_EMERGENCY_STOP + "=");
if (((MessageBool*) msg)->GetState())
str->append("True\n");
else
str->append("False\n");
break;
case MESSAGE_USER_PRESENCE:
str = new string(LABEL_GUI_USER_PRESENCE + "=");
if (((MessageBool*) msg)->GetState())
str->append("True\n");
else
str->append("False\n");
break;
case MESSAGE_EMPTY:
str = new string(""); //empty string
break;
case MESSAGE_LOG:
str = new string(LABEL_GUI_LOG + "=" + ((MessageString*) msg)->GetString() + "\n");
break;
default:
str = new string(""); //empty string
break;
}
}
return str;
}

View file

@ -0,0 +1,104 @@
/*
* Copyright (C) 2018 dimercur
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __COMGUI_H__
#define __COMGUI_H__
#include "messages.h"
#include <string>
using namespace std;
/**
* Class used for generating a server and communicating through it with GUI
*
* @brief Communication class with GUI (server)
*
*/
class ComGui {
public:
/**
* Constructor
*/
ComGui() {}
/**
* Destructor
*/
virtual ~ComGui() {}
/**
* Create a server and open a socket over TCP
*
* @param port Port used for communication
* @return Socket number
* @throw std::runtime_error if it fails
*/
int Open(int port);
/**
* Close socket and server
*/
void Close();
/**
* Wait for a client to connect
* @return Client number
* @throw std::runtime_error if it fails
*/
int AcceptClient();
/**
* Send a message to GUI
*
* @param msg Message to send to GUI
* @attention Message given in parameter will be destroyed (delete) after being sent. No need for user to delete message after that.
* @warning Write is not thread safe : check that multiple tasks can't access this method simultaneously
*/
void Write(Message* msg);
/**
* Function called at beginning of Write method
* Use it to do some synchronization (call of mutex, for example)
*/
virtual void Write_Pre() {}
/**
* Function called at end of Write method
* Use it to do some synchronization (release of mutex, for example)
*/
virtual void Write_Post() {}
protected:
/**
* Socket descriptor
*/
int socketFD = -1;
/**
* Socket descriptor
*/
int clientID = -1;
/**
* Method used internally to convert a message content to a string that can be sent over TCP
* @param msg Message to be converted
* @return A string, image of the message
*/
string *MessageToString(Message *msg);
};
#endif /* __COMGUI_H__ */

View file

@ -1,108 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bibliotheques TP RT: Class List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="robot-icon.resized.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bibliotheques TP RT
&#160;<span id="projectnumber">1.0</span>
</div>
<div id="projectbrief">Bibliotheque de support pour TP/RT</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('annotated.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_message_from_mon.html" target="_self">MessageFromMon</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_message_to_mon.html" target="_self">MessageToMon</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_message_to_robot.html" target="_self">MessageToRobot</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_position.html" target="_self">Position</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var annotated_dup =
[
[ "MessageFromMon", "struct_message_from_mon.html", "struct_message_from_mon" ],
[ "MessageToMon", "struct_message_to_mon.html", "struct_message_to_mon" ],
[ "MessageToRobot", "struct_message_to_robot.html", "struct_message_to_robot" ],
[ "Position", "struct_position.html", "struct_position" ]
];

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

View file

@ -1,110 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bibliotheques TP RT: Class Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="robot-icon.resized.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bibliotheques TP RT
&#160;<span id="projectnumber">1.0</span>
</div>
<div id="projectbrief">Bibliotheque de support pour TP/RT</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classes.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="struct_message_to_mon.html">MessageToMon</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td valign="top"><a class="el" href="struct_message_to_robot.html">MessageToRobot</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="struct_message_from_mon.html">MessageFromMon</a>&#160;&#160;&#160;</td><td></td><td valign="top"><a class="el" href="struct_position.html">Position</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_m">m</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a></div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

View file

@ -1,723 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Bibliotheques TP RT: definitions.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="robot-icon.resized.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Bibliotheques TP RT
&#160;<span id="projectnumber">1.0</span>
</div>
<div id="projectbrief">Bibliotheque de support pour TP/RT</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('definitions_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">definitions.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Various constants used in destjil project.
<a href="#details">More...</a></p>
<div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="definitions_8h__dep__incl.png" border="0" usemap="#definitions_8hdep" alt=""/></div>
<map name="definitions_8hdep" id="definitions_8hdep">
<area shape="rect" id="node2" href="monitor_8h.html" title="Library for sending message to monitor or receiving message. " alt="" coords="5,80,81,107"/>
<area shape="rect" id="node3" href="robot_8h.html" title="Fonctions for communicating with robot. " alt="" coords="105,80,168,107"/>
</map>
</div>
</div>
<p><a href="definitions_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aac798eaf6994ddcadd8a38ad8aba234f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#aac798eaf6994ddcadd8a38ad8aba234f">OPEN_COM_DMB</a>&#160;&#160;&#160;'o'</td></tr>
<tr class="separator:aac798eaf6994ddcadd8a38ad8aba234f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b18773c1ce9068c4d38c2cbd2900263"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a1b18773c1ce9068c4d38c2cbd2900263">CLOSE_COM_DMB</a>&#160;&#160;&#160;'C'</td></tr>
<tr class="separator:a1b18773c1ce9068c4d38c2cbd2900263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf7d51360dcb103fc57604725ec2816d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#acf7d51360dcb103fc57604725ec2816d">DMB_PING</a>&#160;&#160;&#160;'p'</td></tr>
<tr class="separator:acf7d51360dcb103fc57604725ec2816d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82b279c49221d3cd3d875d521dfb97b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a82b279c49221d3cd3d875d521dfb97b9">DMB_IDLE</a>&#160;&#160;&#160;'r'</td></tr>
<tr class="separator:a82b279c49221d3cd3d875d521dfb97b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ebbd37042a6244b4f9d473ae7132780"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a5ebbd37042a6244b4f9d473ae7132780">DMB_START_WITHOUT_WD</a>&#160;&#160;&#160;'u'</td></tr>
<tr class="separator:a5ebbd37042a6244b4f9d473ae7132780"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adee1628bbc796ba55f4a349895f4e0fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#adee1628bbc796ba55f4a349895f4e0fa">DMB_START_WITH_WD</a>&#160;&#160;&#160;'W'</td></tr>
<tr class="separator:adee1628bbc796ba55f4a349895f4e0fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca219902014ffb39aab27cca08a948f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a2ca219902014ffb39aab27cca08a948f">DMB_RELOAD_WD</a>&#160;&#160;&#160;'w'</td></tr>
<tr class="separator:a2ca219902014ffb39aab27cca08a948f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1737e8fe4da4e8bc2d5db9d26c42462"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#af1737e8fe4da4e8bc2d5db9d26c42462">DMB_GET_VBAT</a>&#160;&#160;&#160;'v'</td></tr>
<tr class="separator:af1737e8fe4da4e8bc2d5db9d26c42462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58c241121e685f26a291aa4bd5f9c80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ad58c241121e685f26a291aa4bd5f9c80">DMB_IS_BUSY</a>&#160;&#160;&#160;'b'</td></tr>
<tr class="separator:ad58c241121e685f26a291aa4bd5f9c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac48dee90eb71d036d001321674abbb8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ac48dee90eb71d036d001321674abbb8b">DMB_MOVE</a>&#160;&#160;&#160;'M'</td></tr>
<tr class="separator:ac48dee90eb71d036d001321674abbb8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c5492c8100e73f8d30ed36072684db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ac6c5492c8100e73f8d30ed36072684db">DMB_TURN</a>&#160;&#160;&#160;'T'</td></tr>
<tr class="separator:ac6c5492c8100e73f8d30ed36072684db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae363a29a4961cd8a646a0ca9199bc6cf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ae363a29a4961cd8a646a0ca9199bc6cf">DMB_GO_FORWARD</a>&#160;&#160;&#160;'F'</td></tr>
<tr class="separator:ae363a29a4961cd8a646a0ca9199bc6cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a499f41cc19a4459de033687049cbbe71"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a499f41cc19a4459de033687049cbbe71">DMB_GO_BACK</a>&#160;&#160;&#160;'B'</td></tr>
<tr class="separator:a499f41cc19a4459de033687049cbbe71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefcb838e73a335f1a2a6c914ee2ff752"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#aefcb838e73a335f1a2a6c914ee2ff752">DMB_GO_LEFT</a>&#160;&#160;&#160;'L'</td></tr>
<tr class="separator:aefcb838e73a335f1a2a6c914ee2ff752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad681962f7b8cf4797ebd48be0405d1b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ad681962f7b8cf4797ebd48be0405d1b9">DMB_GO_RIGHT</a>&#160;&#160;&#160;'R'</td></tr>
<tr class="separator:ad681962f7b8cf4797ebd48be0405d1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7308179907a0a2989c162865e7a7979a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a7308179907a0a2989c162865e7a7979a">DMB_STOP_MOVE</a>&#160;&#160;&#160;'S'</td></tr>
<tr class="separator:a7308179907a0a2989c162865e7a7979a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a624686d3af63394ee02f0a197967d44a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a624686d3af63394ee02f0a197967d44a">ROBOT_TIMED_OUT</a>&#160;&#160;&#160;-3</td></tr>
<tr class="separator:a624686d3af63394ee02f0a197967d44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70a2d5db14b900843364adb7cfe53ac8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a70a2d5db14b900843364adb7cfe53ac8">ROBOT_UKNOWN_CMD</a>&#160;&#160;&#160;-2</td></tr>
<tr class="separator:a70a2d5db14b900843364adb7cfe53ac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aefbbdd5d35999aa0575ab7183148d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a4aefbbdd5d35999aa0575ab7183148d4">ROBOT_ERROR</a>&#160;&#160;&#160;-1</td></tr>
<tr class="separator:a4aefbbdd5d35999aa0575ab7183148d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1118b8a83d446b4965347bba126a488"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#af1118b8a83d446b4965347bba126a488">ROBOT_CHECKSUM</a>&#160;&#160;&#160;-4</td></tr>
<tr class="separator:af1118b8a83d446b4965347bba126a488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7b2f95c0b423fb9784acb897b910c36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ad7b2f95c0b423fb9784acb897b910c36">ROBOT_OK</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ad7b2f95c0b423fb9784acb897b910c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a7149bbe097fae8e799ce2ab6f69390"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a2a7149bbe097fae8e799ce2ab6f69390">CAM_OPEN</a>&#160;&#160;&#160;'A'</td></tr>
<tr class="separator:a2a7149bbe097fae8e799ce2ab6f69390"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675009273c3923e8ad1a6d2818063b61"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a675009273c3923e8ad1a6d2818063b61">CAM_CLOSE</a>&#160;&#160;&#160;'I'</td></tr>
<tr class="separator:a675009273c3923e8ad1a6d2818063b61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6418778d1f34e618aebd9ca1861ab500"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a6418778d1f34e618aebd9ca1861ab500">CAM_ASK_ARENA</a>&#160;&#160;&#160;'y'</td></tr>
<tr class="separator:a6418778d1f34e618aebd9ca1861ab500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15d9063cd3c60755685ceb75df4a7354"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a15d9063cd3c60755685ceb75df4a7354">CAM_ARENA_CONFIRM</a>&#160;&#160;&#160;'x'</td></tr>
<tr class="separator:a15d9063cd3c60755685ceb75df4a7354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac836c6abc7e32d2cf7f59ed2a8383ca7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ac836c6abc7e32d2cf7f59ed2a8383ca7">CAM_ARENA_INFIRM</a>&#160;&#160;&#160;'z'</td></tr>
<tr class="separator:ac836c6abc7e32d2cf7f59ed2a8383ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74fdb9d00556feb699d3c72bd7b5d5e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a74fdb9d00556feb699d3c72bd7b5d5e5">CAM_COMPUTE_POSITION</a>&#160;&#160;&#160;'p'</td></tr>
<tr class="separator:a74fdb9d00556feb699d3c72bd7b5d5e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae864cfaefbf5a210e67678b2144a289f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ae864cfaefbf5a210e67678b2144a289f">CAM_STOP_COMPUTE_POSITION</a>&#160;&#160;&#160;'s'</td></tr>
<tr class="separator:ae864cfaefbf5a210e67678b2144a289f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66c0c4960c1e81c8da8c8e1d4a202352"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a66c0c4960c1e81c8da8c8e1d4a202352">DMB_BAT_LOW</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a66c0c4960c1e81c8da8c8e1d4a202352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea6ef1c13db1a8a4a29b065d0c3f73e4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#aea6ef1c13db1a8a4a29b065d0c3f73e4">DMB_BAT_MEDIUM</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aea6ef1c13db1a8a4a29b065d0c3f73e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34c46794a9de6746a96752668c73754"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#ab34c46794a9de6746a96752668c73754">DMB_BAT_HIGH</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ab34c46794a9de6746a96752668c73754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3327443cd321f0c356a5d3d74377892b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a3327443cd321f0c356a5d3d74377892b">DMB_BUSY</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a3327443cd321f0c356a5d3d74377892b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07650c5f6647c5143bac535fdbeb77d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="definitions_8h.html#a07650c5f6647c5143bac535fdbeb77d5">DMB_DO_NOTHING</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a07650c5f6647c5143bac535fdbeb77d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Various constants used in destjil project. </p>
<dl class="section author"><dt>Author</dt><dd>PE.Hladik </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>06/06/2017 </dd></dl>
<p class="definition">Definition in file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a15d9063cd3c60755685ceb75df4a7354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15d9063cd3c60755685ceb75df4a7354">&#9670;&nbsp;</a></span>CAM_ARENA_CONFIRM</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_ARENA_CONFIRM&#160;&#160;&#160;'x'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00057">57</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ac836c6abc7e32d2cf7f59ed2a8383ca7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac836c6abc7e32d2cf7f59ed2a8383ca7">&#9670;&nbsp;</a></span>CAM_ARENA_INFIRM</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_ARENA_INFIRM&#160;&#160;&#160;'z'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00058">58</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a6418778d1f34e618aebd9ca1861ab500"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6418778d1f34e618aebd9ca1861ab500">&#9670;&nbsp;</a></span>CAM_ASK_ARENA</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_ASK_ARENA&#160;&#160;&#160;'y'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00056">56</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a675009273c3923e8ad1a6d2818063b61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a675009273c3923e8ad1a6d2818063b61">&#9670;&nbsp;</a></span>CAM_CLOSE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_CLOSE&#160;&#160;&#160;'I'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00055">55</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a74fdb9d00556feb699d3c72bd7b5d5e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74fdb9d00556feb699d3c72bd7b5d5e5">&#9670;&nbsp;</a></span>CAM_COMPUTE_POSITION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_COMPUTE_POSITION&#160;&#160;&#160;'p'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00059">59</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a2a7149bbe097fae8e799ce2ab6f69390"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a7149bbe097fae8e799ce2ab6f69390">&#9670;&nbsp;</a></span>CAM_OPEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_OPEN&#160;&#160;&#160;'A'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00054">54</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ae864cfaefbf5a210e67678b2144a289f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae864cfaefbf5a210e67678b2144a289f">&#9670;&nbsp;</a></span>CAM_STOP_COMPUTE_POSITION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CAM_STOP_COMPUTE_POSITION&#160;&#160;&#160;'s'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00060">60</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a1b18773c1ce9068c4d38c2cbd2900263"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b18773c1ce9068c4d38c2cbd2900263">&#9670;&nbsp;</a></span>CLOSE_COM_DMB</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLOSE_COM_DMB&#160;&#160;&#160;'C'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00031">31</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ab34c46794a9de6746a96752668c73754"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab34c46794a9de6746a96752668c73754">&#9670;&nbsp;</a></span>DMB_BAT_HIGH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_BAT_HIGH&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00064">64</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a66c0c4960c1e81c8da8c8e1d4a202352"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66c0c4960c1e81c8da8c8e1d4a202352">&#9670;&nbsp;</a></span>DMB_BAT_LOW</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_BAT_LOW&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00062">62</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="aea6ef1c13db1a8a4a29b065d0c3f73e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea6ef1c13db1a8a4a29b065d0c3f73e4">&#9670;&nbsp;</a></span>DMB_BAT_MEDIUM</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_BAT_MEDIUM&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00063">63</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a3327443cd321f0c356a5d3d74377892b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3327443cd321f0c356a5d3d74377892b">&#9670;&nbsp;</a></span>DMB_BUSY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_BUSY&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00066">66</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a07650c5f6647c5143bac535fdbeb77d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07650c5f6647c5143bac535fdbeb77d5">&#9670;&nbsp;</a></span>DMB_DO_NOTHING</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_DO_NOTHING&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00067">67</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="af1737e8fe4da4e8bc2d5db9d26c42462"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1737e8fe4da4e8bc2d5db9d26c42462">&#9670;&nbsp;</a></span>DMB_GET_VBAT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_GET_VBAT&#160;&#160;&#160;'v'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00038">38</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a499f41cc19a4459de033687049cbbe71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a499f41cc19a4459de033687049cbbe71">&#9670;&nbsp;</a></span>DMB_GO_BACK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_GO_BACK&#160;&#160;&#160;'B'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00043">43</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ae363a29a4961cd8a646a0ca9199bc6cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae363a29a4961cd8a646a0ca9199bc6cf">&#9670;&nbsp;</a></span>DMB_GO_FORWARD</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_GO_FORWARD&#160;&#160;&#160;'F'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00042">42</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="aefcb838e73a335f1a2a6c914ee2ff752"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefcb838e73a335f1a2a6c914ee2ff752">&#9670;&nbsp;</a></span>DMB_GO_LEFT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_GO_LEFT&#160;&#160;&#160;'L'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00044">44</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ad681962f7b8cf4797ebd48be0405d1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad681962f7b8cf4797ebd48be0405d1b9">&#9670;&nbsp;</a></span>DMB_GO_RIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_GO_RIGHT&#160;&#160;&#160;'R'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00045">45</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="a82b279c49221d3cd3d875d521dfb97b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82b279c49221d3cd3d875d521dfb97b9">&#9670;&nbsp;</a></span>DMB_IDLE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_IDLE&#160;&#160;&#160;'r'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00034">34</a> of file <a class="el" href="definitions_8h_source.html">definitions.h</a>.</p>
</div>
</div>
<a id="ad58c241121e685f26a291aa4bd5f9c80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad58c241121e685f26a291aa4bd5f9c80">&#9670;&nbsp;</a></span>DMB_IS_BUSY</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DMB_IS_BUSY&#160;&#160;&#160;'b'</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="definitions_8h_source.html#l00039">39</a> of file <a class="el" href="definitions_8h_source.html