ros2_interfaces_rolling/canopen_interfaces/srv/
co_read_id.rs1use serde::{Deserialize, Serialize};
2
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct COReadIDRequest {
6 pub nodeid: u8,
7 pub index: u16,
8 pub subindex: u8,
9 pub canopen_datatype: u8,
10}
11
12impl COReadIDRequest {
13 pub const CANOPEN_DATATYPE_INT8: u8 = 0x02;
14 pub const CANOPEN_DATATYPE_INT16: u8 = 0x03;
15 pub const CANOPEN_DATATYPE_INT32: u8 = 0x04;
16 pub const CANOPEN_DATATYPE_UINT8: u8 = 0x05;
17 pub const CANOPEN_DATATYPE_UINT16: u8 = 0x06;
18 pub const CANOPEN_DATATYPE_UINT32: u8 = 0x07;
19}
20
21impl Default for COReadIDRequest {
22 fn default() -> Self {
23 COReadIDRequest {
24 nodeid: 0,
25 index: 0,
26 subindex: 0,
27 canopen_datatype: 0,
28 }
29 }
30}
31
32impl ros2_client::Message for COReadIDRequest {}
33
34
35
36#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
37pub struct COReadIDResponse {
38 pub success: bool,
39 pub data: u32,
40}
41
42impl Default for COReadIDResponse {
43 fn default() -> Self {
44 COReadIDResponse {
45 success: false,
46 data: 0,
47 }
48 }
49}
50
51impl ros2_client::Message for COReadIDResponse {}
52
53
54pub struct COReadID;
55impl ros2_client::Service for COReadID {
56 type Request = COReadIDRequest;
57 type Response = COReadIDResponse;
58
59 fn request_type_name(&self) -> &str { "COReadIDRequest" }
60 fn response_type_name(&self) -> &str { "COReadIDResponse" }
61}