ros2_interfaces_rolling/canopen_interfaces/srv/
co_read_id.rs

1use 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}