-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpayloads.py
156 lines (95 loc) · 3.34 KB
/
payloads.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
"""Payloads of can bus messages."""
from dataclasses import dataclass
from .. import utils
@dataclass
class ResponsePayload(utils.BinarySerializable):
"""A response payload."""
node_id: utils.UInt8Field
@dataclass
class EmptyPayload(utils.BinarySerializable):
"""An empty payload."""
pass
@dataclass
class DeviceInfoResponsePayload(ResponsePayload):
"""Device info response."""
version: utils.UInt32Field
@dataclass
class GetStatusResponsePayload(ResponsePayload):
"""Get status response."""
status: utils.UInt8Field
data: utils.UInt32Field
@dataclass
class MoveRequestPayload(utils.BinarySerializable):
"""Move request."""
steps: utils.UInt32Field
@dataclass
class GetSpeedResponsePayload(ResponsePayload):
"""Get speed response."""
mm_sec: utils.UInt32Field
@dataclass
class WriteToEEPromRequestPayload(utils.BinarySerializable):
"""Write to eeprom request."""
serial_number: utils.UInt8Field
@dataclass
class ReadFromEEPromResponsePayload(ResponsePayload):
"""Read from ee prom response."""
serial_number: utils.UInt8Field
@dataclass
class MoveGroupRequestPayload(utils.BinarySerializable):
"""A payload with a group id."""
group_id: utils.UInt8Field
@dataclass
class MoveGroupResponsePayload(ResponsePayload):
"""A response payload with a group id."""
group_id: utils.UInt8Field
@dataclass
class AddToMoveGroupRequestPayload(MoveGroupRequestPayload):
"""Base of add to move group request to a message group."""
seq_id: utils.UInt8Field
duration: utils.UInt32Field
@dataclass
class AddLinearMoveRequestPayload(AddToMoveGroupRequestPayload):
"""Add a linear move request to a message group."""
acceleration: utils.Int32Field
velocity: utils.Int32Field
@dataclass
class GetMoveGroupResponsePayload(MoveGroupResponsePayload):
"""Response to request to get a move group."""
num_moves: utils.UInt8Field
total_duration: utils.UInt32Field
@dataclass
class ExecuteMoveGroupRequestPayload(MoveGroupRequestPayload):
"""Start executing a move group."""
start_trigger: utils.UInt8Field
cancel_trigger: utils.UInt8Field
@dataclass
class MoveCompletedPayload(MoveGroupResponsePayload):
"""Notification of a completed move group."""
seq_id: utils.UInt8Field
current_position: utils.UInt32Field
ack_id: utils.UInt8Field
node_id: utils.UInt8Field
@dataclass
class MotionConstraintsPayload(utils.BinarySerializable):
"""The min and max velocity and acceleration of a motion system."""
min_velocity: utils.Int32Field
max_velocity: utils.Int32Field
min_acceleration: utils.Int32Field
max_acceleration: utils.Int32Field
@dataclass
class MotionConstraintsResponsePayload(MotionConstraintsPayload):
"""The min and max velocity and acceleration of a motion system."""
node_id: utils.UInt8Field
@dataclass
class MotorDriverRegisterPayload(utils.BinarySerializable):
"""Read motor driver register request payload."""
reg_addr: utils.UInt8Field
@dataclass
class MotorDriverRegisterDataPayload(MotorDriverRegisterPayload):
"""Write motor driver register request payload."""
data: utils.UInt32Field
@dataclass
class ReadMotorDriverRegisterResponsePayload(ResponsePayload):
"""Read motor driver register response payload."""
reg_addr: utils.UInt8Field
data: utils.UInt32Field