niryo_robot_hardware_stack
ttl_driver
include
ttl_driver
fake_ttl_data.hpp
Go to the documentation of this file.
1
/*
2
fake_ttl_data.hpp
3
Copyright (C) 2020 Niryo
4
All rights reserved.
5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
You should have received a copy of the GNU General Public License
14
along with this program. If not, see <http:// www.gnu.org/licenses/>.
15
*/
16
17
#ifndef FAKE_TTL_DATA_HPP
18
#define FAKE_TTL_DATA_HPP
19
20
#include <cstdint>
21
#include <string>
22
#include <map>
23
#include <vector>
24
25
namespace
ttl_driver
26
{
27
28
class
FakeTtlData
29
{
30
public
:
31
FakeTtlData
() =
default
;
32
33
void
updateFullIdList
();
34
35
public
:
36
struct
AbstractFakeRegister
37
{
38
uint8_t
id
{ 0 };
39
uint16_t
model_number
{ 0 };
40
41
uint32_t
position
{ 0 };
42
uint32_t
velocity
{ 0 };
43
44
uint32_t
min_position
{ 0 };
45
uint32_t
max_position
{ 0 };
46
47
uint8_t
temperature
{ 0 };
48
double
voltage
{ 0 };
49
std::string
firmware
{};
50
};
51
52
struct
FakeStepperRegister
:
public
AbstractFakeRegister
53
{
54
uint8_t
torque
{ 0 };
55
uint32_t
v_start
{ 1 };
56
uint32_t
a_1
{ 0 };
57
uint32_t
v_1
{ 0 };
58
uint32_t
a_max
{ 6000 };
59
uint32_t
v_max
{ 6 };
60
uint32_t
d_max
{ 6000 };
61
uint32_t
d_1
{ 0 };
62
uint32_t
v_stop
{ 2 };
63
int32_t
homing_abs_position
{ 0 };
64
uint8_t
operating_mode
{ 0 };
65
;
66
};
67
68
struct
FakeDxlRegister
:
public
AbstractFakeRegister
69
{
70
uint8_t
torque
{ 0 };
71
uint16_t
position_p_gain
{ 0 };
72
uint16_t
position_i_gain
{ 0 };
73
uint16_t
position_d_gain
{ 0 };
74
75
uint16_t
velocity_p_gain
{ 0 };
76
uint16_t
velocity_i_gain
{ 0 };
77
78
uint16_t
ff1_gain
{ 0 };
79
uint16_t
ff2_gain
{ 0 };
80
};
81
82
struct
FakeEndEffector
:
public
AbstractFakeRegister
83
{
84
uint32_t
button0_action
{ 1 };
85
uint32_t
button1_action
{ 2 };
86
uint32_t
button2_action
{ 8 };
87
88
uint32_t
x_value
{ 1 };
89
uint32_t
y_value
{ 1 };
90
uint32_t
z_value
{ 1 };
91
92
bool
digital_input
=
false
;
93
bool
digital_output
=
false
;
94
};
95
96
// dxl by id
97
std::map<uint8_t, FakeDxlRegister>
dxl_registers
;
98
99
// stepper by id
100
std::map<uint8_t, FakeStepperRegister>
stepper_registers
;
101
102
// all ids
103
std::vector<uint8_t>
full_id_list
;
104
105
// end_effector
106
FakeEndEffector
end_effector
;
107
};
108
109
inline
void
FakeTtlData::updateFullIdList
()
110
{
111
full_id_list
.clear();
112
for
(
auto
const
&it :
dxl_registers
)
113
{
114
full_id_list
.emplace_back(it.first);
115
}
116
117
for
(
auto
const
&it :
stepper_registers
)
118
{
119
full_id_list
.emplace_back(it.first);
120
}
121
122
if
(!
end_effector
.
firmware
.empty())
123
full_id_list
.emplace_back(
end_effector
.
id
);
124
}
125
126
}
// namespace ttl_driver
127
#endif // FAKE_TTL_DATA_HPP
ttl_driver::FakeTtlData::FakeEndEffector::button0_action
uint32_t button0_action
Definition:
fake_ttl_data.hpp:84
ttl_driver::FakeTtlData::AbstractFakeRegister::id
uint8_t id
Definition:
fake_ttl_data.hpp:38
ttl_driver::FakeTtlData::FakeDxlRegister::position_p_gain
uint16_t position_p_gain
Definition:
fake_ttl_data.hpp:71
ttl_driver::FakeTtlData::AbstractFakeRegister::voltage
double voltage
Definition:
fake_ttl_data.hpp:48
ttl_driver::FakeTtlData::updateFullIdList
void updateFullIdList()
Definition:
fake_ttl_data.hpp:109
ttl_driver::FakeTtlData::FakeDxlRegister::velocity_i_gain
uint16_t velocity_i_gain
Definition:
fake_ttl_data.hpp:76
ttl_driver::FakeTtlData::FakeDxlRegister::position_d_gain
uint16_t position_d_gain
Definition:
fake_ttl_data.hpp:73
ttl_driver::FakeTtlData::FakeStepperRegister::v_1
uint32_t v_1
Definition:
fake_ttl_data.hpp:57
ttl_driver::FakeTtlData::AbstractFakeRegister::temperature
uint8_t temperature
Definition:
fake_ttl_data.hpp:47
ttl_driver::FakeTtlData::end_effector
FakeEndEffector end_effector
Definition:
fake_ttl_data.hpp:106
ttl_driver::FakeTtlData::FakeStepperRegister
Definition:
fake_ttl_data.hpp:52
ttl_driver::FakeTtlData::AbstractFakeRegister::max_position
uint32_t max_position
Definition:
fake_ttl_data.hpp:45
ttl_driver::FakeTtlData::FakeStepperRegister::operating_mode
uint8_t operating_mode
Definition:
fake_ttl_data.hpp:64
ttl_driver::FakeTtlData::FakeDxlRegister
Definition:
fake_ttl_data.hpp:68
ttl_driver::FakeTtlData::FakeDxlRegister::ff1_gain
uint16_t ff1_gain
Definition:
fake_ttl_data.hpp:78
ttl_driver::FakeTtlData::FakeEndEffector
Definition:
fake_ttl_data.hpp:82
ttl_driver::FakeTtlData::FakeStepperRegister::v_max
uint32_t v_max
Definition:
fake_ttl_data.hpp:59
ttl_driver::FakeTtlData::FakeDxlRegister::torque
uint8_t torque
Definition:
fake_ttl_data.hpp:70
ttl_driver::FakeTtlData::dxl_registers
std::map< uint8_t, FakeDxlRegister > dxl_registers
Definition:
fake_ttl_data.hpp:97
ttl_driver::FakeTtlData::AbstractFakeRegister::min_position
uint32_t min_position
Definition:
fake_ttl_data.hpp:44
ttl_driver::FakeTtlData::AbstractFakeRegister
Definition:
fake_ttl_data.hpp:36
ttl_driver::FakeTtlData::stepper_registers
std::map< uint8_t, FakeStepperRegister > stepper_registers
Definition:
fake_ttl_data.hpp:100
ttl_driver::FakeTtlData
Definition:
fake_ttl_data.hpp:28
ttl_driver::FakeTtlData::AbstractFakeRegister::velocity
uint32_t velocity
Definition:
fake_ttl_data.hpp:42
ttl_driver::FakeTtlData::FakeEndEffector::y_value
uint32_t y_value
Definition:
fake_ttl_data.hpp:89
ttl_driver::FakeTtlData::FakeEndEffector::digital_input
bool digital_input
Definition:
fake_ttl_data.hpp:92
ttl_driver::FakeTtlData::FakeEndEffector::x_value
uint32_t x_value
Definition:
fake_ttl_data.hpp:88
ttl_driver::FakeTtlData::FakeEndEffector::button1_action
uint32_t button1_action
Definition:
fake_ttl_data.hpp:85
ttl_driver::FakeTtlData::FakeStepperRegister::d_1
uint32_t d_1
Definition:
fake_ttl_data.hpp:61
ttl_driver::FakeTtlData::FakeEndEffector::z_value
uint32_t z_value
Definition:
fake_ttl_data.hpp:90
ttl_driver::FakeTtlData::FakeDxlRegister::velocity_p_gain
uint16_t velocity_p_gain
Definition:
fake_ttl_data.hpp:75
ttl_driver::FakeTtlData::FakeDxlRegister::position_i_gain
uint16_t position_i_gain
Definition:
fake_ttl_data.hpp:72
ttl_driver::FakeTtlData::FakeStepperRegister::a_max
uint32_t a_max
Definition:
fake_ttl_data.hpp:58
ttl_driver
Definition:
abstract_dxl_driver.hpp:30
ttl_driver::FakeTtlData::FakeEndEffector::digital_output
bool digital_output
Definition:
fake_ttl_data.hpp:93
ttl_driver::FakeTtlData::FakeStepperRegister::d_max
uint32_t d_max
Definition:
fake_ttl_data.hpp:60
ttl_driver::FakeTtlData::FakeStepperRegister::torque
uint8_t torque
Definition:
fake_ttl_data.hpp:54
ttl_driver::FakeTtlData::FakeStepperRegister::a_1
uint32_t a_1
Definition:
fake_ttl_data.hpp:56
ttl_driver::FakeTtlData::full_id_list
std::vector< uint8_t > full_id_list
Definition:
fake_ttl_data.hpp:103
ttl_driver::FakeTtlData::FakeTtlData
FakeTtlData()=default
ttl_driver::FakeTtlData::AbstractFakeRegister::firmware
std::string firmware
Definition:
fake_ttl_data.hpp:49
ttl_driver::FakeTtlData::FakeEndEffector::button2_action
uint32_t button2_action
Definition:
fake_ttl_data.hpp:86
ttl_driver::FakeTtlData::AbstractFakeRegister::model_number
uint16_t model_number
Definition:
fake_ttl_data.hpp:39
ttl_driver::FakeTtlData::FakeDxlRegister::ff2_gain
uint16_t ff2_gain
Definition:
fake_ttl_data.hpp:79
ttl_driver::FakeTtlData::FakeStepperRegister::v_stop
uint32_t v_stop
Definition:
fake_ttl_data.hpp:62
ttl_driver::FakeTtlData::AbstractFakeRegister::position
uint32_t position
Definition:
fake_ttl_data.hpp:41
ttl_driver::FakeTtlData::FakeStepperRegister::v_start
uint32_t v_start
Definition:
fake_ttl_data.hpp:55
ttl_driver::FakeTtlData::FakeStepperRegister::homing_abs_position
int32_t homing_abs_position
Definition:
fake_ttl_data.hpp:63
ttl_driver
Author(s): Clement Cocquempot
autogenerated on Fri Mar 6 2026 15:24:15