Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
b
c
d
e
f
i
m
n
o
p
s
t
v
w
Functions
Variables
Typedefs
Enumerations
Enumerator
b
c
f
i
m
o
s
t
v
w
Classes
Class List
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
y
~
Functions
a
c
d
e
f
g
i
n
o
p
r
s
u
v
~
Variables
a
b
c
d
e
f
h
i
m
n
p
r
s
t
v
w
x
y
Typedefs
Enumerations
Enumerator
Files
File List
File Members
All
a
b
c
g
m
s
t
Functions
m
t
Macros
src
data.cpp
Go to the documentation of this file.
1
#include "
create/data.h
"
2
3
#define ADD_PACKET(id,nbytes,info,enabledVersion) if ((enabledVersion) & version) packets[id]=std::make_shared<Packet>(nbytes,info)
4
5
namespace
create
{
6
7
Data::Data
(
ProtocolVersion
version) {
8
// Populate data map
9
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
10
* WARNING: Adding too many packets will flood the serial *
11
* buffer and corrupt the stream. *
12
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
13
ADD_PACKET
(
ID_BUMP_WHEELDROP
, 1,
"bumps_wheeldrops"
,
V_ALL
);
14
ADD_PACKET
(
ID_WALL
, 1,
"wall"
,
V_ALL
);
15
ADD_PACKET
(
ID_CLIFF_LEFT
, 1,
"cliff_left"
,
V_ALL
);
16
ADD_PACKET
(
ID_CLIFF_FRONT_LEFT
, 1,
"cliff_front_left"
,
V_ALL
);
17
ADD_PACKET
(
ID_CLIFF_FRONT_RIGHT
, 1,
"cliff_front_right"
,
V_ALL
);
18
ADD_PACKET
(
ID_CLIFF_RIGHT
, 1,
"cliff_right"
,
V_ALL
);
19
ADD_PACKET
(
ID_VIRTUAL_WALL
, 1,
"virtual_wall"
,
V_ALL
);
20
ADD_PACKET
(
ID_OVERCURRENTS
, 1,
"overcurrents"
,
V_ALL
);
21
ADD_PACKET
(
ID_DIRT_DETECT_LEFT
, 1,
"dirt_detect_left"
,
V_ALL
);
22
ADD_PACKET
(
ID_DIRT_DETECT_RIGHT
, 1,
"dirt_detect_right"
,
V_1
);
23
ADD_PACKET
(
ID_IR_OMNI
, 1,
"ir_opcode"
,
V_ALL
);
24
ADD_PACKET
(
ID_BUTTONS
, 1,
"buttons"
,
V_ALL
);
25
ADD_PACKET
(
ID_DISTANCE
, 2,
"distance"
,
V_1
|
V_2
);
26
ADD_PACKET
(
ID_ANGLE
, 2,
"angle"
,
V_1
|
V_2
);
27
ADD_PACKET
(
ID_CHARGE_STATE
, 1,
"charging_state"
,
V_ALL
);
28
ADD_PACKET
(
ID_VOLTAGE
, 2,
"voltage"
,
V_ALL
);
29
ADD_PACKET
(
ID_CURRENT
, 2,
"current"
,
V_ALL
);
30
ADD_PACKET
(
ID_TEMP
, 1,
"temperature"
,
V_ALL
);
31
ADD_PACKET
(
ID_CHARGE
, 2,
"battery_charge"
,
V_ALL
);
32
ADD_PACKET
(
ID_CAPACITY
, 2,
"battery_capacity"
,
V_ALL
);
33
ADD_PACKET
(
ID_OI_MODE
, 1,
"oi_mode"
,
V_2
|
V_3
);
34
ADD_PACKET
(
ID_LEFT_ENC
, 2,
"enc_counts_left"
,
V_3
);
35
ADD_PACKET
(
ID_RIGHT_ENC
, 2,
"enc_counts_right"
,
V_3
);
36
ADD_PACKET
(
ID_LIGHT
, 1,
"light_bumper"
,
V_3
);
37
ADD_PACKET
(
ID_LIGHT_LEFT
, 2,
"light_bumper_left"
,
V_3
);
38
ADD_PACKET
(
ID_LIGHT_FRONT_LEFT
, 2,
"light_bumper_front_left"
,
V_3
);
39
ADD_PACKET
(
ID_LIGHT_CENTER_LEFT
, 2,
"light_bumper_center_left"
,
V_3
);
40
ADD_PACKET
(
ID_LIGHT_CENTER_RIGHT
, 2,
"light_bumper_center_right"
,
V_3
);
41
ADD_PACKET
(
ID_LIGHT_FRONT_RIGHT
, 2,
"light_bumper_front_right"
,
V_3
);
42
ADD_PACKET
(
ID_LIGHT_RIGHT
, 2,
"light_bumper_right"
,
V_3
);
43
ADD_PACKET
(
ID_IR_LEFT
, 1,
"ir_opcode_left"
,
V_3
);
44
ADD_PACKET
(
ID_IR_RIGHT
, 1,
"ir_opcode_right"
,
V_3
);
45
ADD_PACKET
(
ID_STASIS
, 1,
"stasis"
,
V_3
);
46
47
totalDataBytes
= 0;
48
for
(std::map<uint8_t, std::shared_ptr<Packet> >::iterator it =
packets
.begin();
49
it !=
packets
.end();
50
++it) {
51
ids
.push_back(it->first);
52
totalDataBytes
+= it->second->nbytes;
53
}
54
}
55
56
Data::~Data
() { }
57
58
bool
Data::isValidPacketID
(uint8_t
id
)
const
{
59
if
(
packets
.count(
id
)) {
60
return
true
;
61
}
62
return
false
;
63
}
64
65
std::shared_ptr<Packet>
Data::getPacket
(uint8_t
id
) {
66
if
(
isValidPacketID
(
id
)) {
67
return
packets
[id];
68
}
69
return
std::shared_ptr<Packet>();
70
}
71
72
void
Data::validateAll
() {
73
for
(std::map<uint8_t, std::shared_ptr<Packet> >::iterator it =
packets
.begin();
74
it !=
packets
.end();
75
++it) {
76
it->second->validate();
77
}
78
}
79
80
unsigned
int
Data::getTotalDataBytes
()
const
{
81
return
totalDataBytes
;
82
}
83
84
uint8_t
Data::getNumPackets
()
const
{
85
return
packets
.size();
86
}
87
88
std::vector<uint8_t>
Data::getPacketIDs
() {
89
return
ids
;
90
}
91
92
}
// namespace create
create::Data::ids
std::vector< uint8_t > ids
Definition:
data.h:47
create::ID_DISTANCE
@ ID_DISTANCE
Definition:
types.h:113
create::ID_LIGHT_LEFT
@ ID_LIGHT_LEFT
Definition:
types.h:140
create::ID_CLIFF_LEFT
@ ID_CLIFF_LEFT
Definition:
types.h:101
create::V_3
@ V_3
Definition:
types.h:44
create::ID_CLIFF_FRONT_RIGHT
@ ID_CLIFF_FRONT_RIGHT
Definition:
types.h:103
create::ID_CLIFF_RIGHT
@ ID_CLIFF_RIGHT
Definition:
types.h:104
create::ID_RIGHT_ENC
@ ID_RIGHT_ENC
Definition:
types.h:138
create::ID_VIRTUAL_WALL
@ ID_VIRTUAL_WALL
Definition:
types.h:105
create::ID_LEFT_ENC
@ ID_LEFT_ENC
Definition:
types.h:137
create::Data::isValidPacketID
bool isValidPacketID(const uint8_t id) const
Definition:
data.cpp:58
ADD_PACKET
#define ADD_PACKET(id, nbytes, info, enabledVersion)
Definition:
data.cpp:3
create::ID_DIRT_DETECT_LEFT
@ ID_DIRT_DETECT_LEFT
Definition:
types.h:107
create::ID_LIGHT_FRONT_RIGHT
@ ID_LIGHT_FRONT_RIGHT
Definition:
types.h:144
create::ID_LIGHT_RIGHT
@ ID_LIGHT_RIGHT
Definition:
types.h:145
create::ID_IR_RIGHT
@ ID_IR_RIGHT
Definition:
types.h:111
create::ID_OI_MODE
@ ID_OI_MODE
Definition:
types.h:129
create::Data::packets
std::map< uint8_t, std::shared_ptr< Packet > > packets
Definition:
data.h:45
create::ID_CAPACITY
@ ID_CAPACITY
Definition:
types.h:120
create::ID_LIGHT
@ ID_LIGHT
Definition:
types.h:139
create::ID_CLIFF_FRONT_LEFT
@ ID_CLIFF_FRONT_LEFT
Definition:
types.h:102
create::ID_OVERCURRENTS
@ ID_OVERCURRENTS
Definition:
types.h:106
create::ID_ANGLE
@ ID_ANGLE
Definition:
types.h:114
create::ID_CHARGE_STATE
@ ID_CHARGE_STATE
Definition:
types.h:115
create::ID_BUMP_WHEELDROP
@ ID_BUMP_WHEELDROP
Definition:
types.h:99
create::V_1
@ V_1
Definition:
types.h:42
create::V_2
@ V_2
Definition:
types.h:43
create::V_ALL
@ V_ALL
Definition:
types.h:45
create::Data::getPacketIDs
std::vector< uint8_t > getPacketIDs()
Definition:
data.cpp:88
create::Data::Data
Data(ProtocolVersion version=V_3)
Definition:
data.cpp:7
create::ID_IR_OMNI
@ ID_IR_OMNI
Definition:
types.h:109
create::ID_LIGHT_CENTER_RIGHT
@ ID_LIGHT_CENTER_RIGHT
Definition:
types.h:143
create::Data::getPacket
std::shared_ptr< Packet > getPacket(const uint8_t id)
Definition:
data.cpp:65
create::ID_CURRENT
@ ID_CURRENT
Definition:
types.h:117
create::Data::getTotalDataBytes
uint32_t getTotalDataBytes() const
Definition:
data.cpp:80
create::ID_LIGHT_CENTER_LEFT
@ ID_LIGHT_CENTER_LEFT
Definition:
types.h:142
create::ID_BUTTONS
@ ID_BUTTONS
Definition:
types.h:112
create::ID_TEMP
@ ID_TEMP
Definition:
types.h:118
create::ID_STASIS
@ ID_STASIS
Definition:
types.h:150
create::ID_CHARGE
@ ID_CHARGE
Definition:
types.h:119
data.h
create::ID_VOLTAGE
@ ID_VOLTAGE
Definition:
types.h:116
create::ID_LIGHT_FRONT_LEFT
@ ID_LIGHT_FRONT_LEFT
Definition:
types.h:141
create::ID_DIRT_DETECT_RIGHT
@ ID_DIRT_DETECT_RIGHT
Definition:
types.h:108
create::Data::validateAll
void validateAll()
Definition:
data.cpp:72
create::Data::totalDataBytes
uint32_t totalDataBytes
Definition:
data.h:46
create::ID_WALL
@ ID_WALL
Definition:
types.h:100
create::Data::~Data
~Data()
Definition:
data.cpp:56
create::Data::getNumPackets
uint8_t getNumPackets() const
Definition:
data.cpp:84
create
Definition:
create.h:48
create::ProtocolVersion
ProtocolVersion
Definition:
types.h:41
create::ID_IR_LEFT
@ ID_IR_LEFT
Definition:
types.h:110
libcreate
Author(s): Jacob Perron
autogenerated on Wed May 24 2023 02:24:57