motion-master-client 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.babelrc +3 -0
  2. package/.eslintrc.json +18 -0
  3. package/jest.config.ts +16 -0
  4. package/motion-master.proto +1822 -0
  5. package/package.json +2 -17
  6. package/project.json +45 -0
  7. package/src/lib/cia402.spec.ts +77 -0
  8. package/src/lib/cia402.ts +414 -0
  9. package/src/lib/config-file.spec.ts +114 -0
  10. package/src/lib/config-file.ts +63 -0
  11. package/src/lib/device-log-line.ts +5 -0
  12. package/src/lib/device-parameter.spec.ts +85 -0
  13. package/src/lib/device-parameter.ts +79 -0
  14. package/src/lib/device.ts +10 -0
  15. package/src/lib/hardware-description.spec.ts +253 -0
  16. package/src/lib/hardware-description.ts +129 -0
  17. package/src/lib/logger.ts +5 -0
  18. package/src/lib/monitoring-config.ts +6 -0
  19. package/src/lib/{monitoring-entry.d.ts → monitoring-entry.ts} +5 -4
  20. package/src/lib/motion-master-client.ts +221 -0
  21. package/src/lib/motion-master-pub-sub-client.ts +95 -0
  22. package/src/lib/motion-master-pub-sub-socket.ts +40 -0
  23. package/src/lib/motion-master-pub-sub-web-socket.ts +78 -0
  24. package/src/lib/motion-master-pub-sub-worker-socket.ts +51 -0
  25. package/src/lib/motion-master-req-res-client.spec.ts +740 -0
  26. package/src/lib/motion-master-req-res-client.ts +2120 -0
  27. package/src/lib/motion-master-req-res-socket.ts +62 -0
  28. package/src/lib/motion-master-req-res-web-socket.ts +124 -0
  29. package/src/lib/motion-master-req-res-worker-socket.ts +87 -0
  30. package/src/lib/motion-master.proto.js +2 -2
  31. package/src/lib/operators.ts +90 -0
  32. package/src/lib/options.ts +12 -0
  33. package/src/lib/parameter.spec.ts +160 -0
  34. package/src/lib/parameter.ts +170 -0
  35. package/src/lib/product-id-range.ts +8 -0
  36. package/src/lib/request-status-resolver.ts +403 -0
  37. package/src/lib/system-log-line.ts +9 -0
  38. package/src/lib/{types.d.ts → types.ts} +74 -143
  39. package/src/lib/urls.ts +6 -0
  40. package/src/lib/util.ts +305 -0
  41. package/tsconfig.json +23 -0
  42. package/tsconfig.lib.json +10 -0
  43. package/tsconfig.spec.json +20 -0
  44. package/typedoc.json +10 -0
  45. package/src/index.js +0 -29
  46. package/src/index.js.map +0 -1
  47. package/src/lib/cia402.d.ts +0 -182
  48. package/src/lib/cia402.js +0 -392
  49. package/src/lib/cia402.js.map +0 -1
  50. package/src/lib/config-file.d.ts +0 -13
  51. package/src/lib/config-file.js +0 -50
  52. package/src/lib/config-file.js.map +0 -1
  53. package/src/lib/device-log-line.d.ts +0 -5
  54. package/src/lib/device-log-line.js +0 -3
  55. package/src/lib/device-log-line.js.map +0 -1
  56. package/src/lib/device-parameter.d.ts +0 -56
  57. package/src/lib/device-parameter.js +0 -39
  58. package/src/lib/device-parameter.js.map +0 -1
  59. package/src/lib/device.d.ts +0 -9
  60. package/src/lib/device.js +0 -3
  61. package/src/lib/device.js.map +0 -1
  62. package/src/lib/hardware-description.d.ts +0 -41
  63. package/src/lib/hardware-description.js +0 -94
  64. package/src/lib/hardware-description.js.map +0 -1
  65. package/src/lib/logger.d.ts +0 -1
  66. package/src/lib/logger.js +0 -8
  67. package/src/lib/logger.js.map +0 -1
  68. package/src/lib/monitoring-config.d.ts +0 -6
  69. package/src/lib/monitoring-config.js +0 -3
  70. package/src/lib/monitoring-config.js.map +0 -1
  71. package/src/lib/monitoring-entry.js +0 -3
  72. package/src/lib/monitoring-entry.js.map +0 -1
  73. package/src/lib/motion-master-client.d.ts +0 -52
  74. package/src/lib/motion-master-client.js +0 -151
  75. package/src/lib/motion-master-client.js.map +0 -1
  76. package/src/lib/motion-master-pub-sub-client.d.ts +0 -16
  77. package/src/lib/motion-master-pub-sub-client.js +0 -68
  78. package/src/lib/motion-master-pub-sub-client.js.map +0 -1
  79. package/src/lib/motion-master-pub-sub-socket.d.ts +0 -34
  80. package/src/lib/motion-master-pub-sub-socket.js +0 -3
  81. package/src/lib/motion-master-pub-sub-socket.js.map +0 -1
  82. package/src/lib/motion-master-pub-sub-web-socket.d.ts +0 -14
  83. package/src/lib/motion-master-pub-sub-web-socket.js +0 -67
  84. package/src/lib/motion-master-pub-sub-web-socket.js.map +0 -1
  85. package/src/lib/motion-master-pub-sub-worker-socket.d.ts +0 -14
  86. package/src/lib/motion-master-pub-sub-worker-socket.js +0 -42
  87. package/src/lib/motion-master-pub-sub-worker-socket.js.map +0 -1
  88. package/src/lib/motion-master-req-res-client.d.ts +0 -920
  89. package/src/lib/motion-master-req-res-client.js +0 -1680
  90. package/src/lib/motion-master-req-res-client.js.map +0 -1
  91. package/src/lib/motion-master-req-res-socket.d.ts +0 -52
  92. package/src/lib/motion-master-req-res-socket.js +0 -3
  93. package/src/lib/motion-master-req-res-socket.js.map +0 -1
  94. package/src/lib/motion-master-req-res-web-socket.d.ts +0 -24
  95. package/src/lib/motion-master-req-res-web-socket.js +0 -99
  96. package/src/lib/motion-master-req-res-web-socket.js.map +0 -1
  97. package/src/lib/motion-master-req-res-worker-socket.d.ts +0 -20
  98. package/src/lib/motion-master-req-res-worker-socket.js +0 -69
  99. package/src/lib/motion-master-req-res-worker-socket.js.map +0 -1
  100. package/src/lib/operators.d.ts +0 -18
  101. package/src/lib/operators.js +0 -76
  102. package/src/lib/operators.js.map +0 -1
  103. package/src/lib/options.d.ts +0 -10
  104. package/src/lib/options.js +0 -14
  105. package/src/lib/options.js.map +0 -1
  106. package/src/lib/parameter.d.ts +0 -72
  107. package/src/lib/parameter.js +0 -119
  108. package/src/lib/parameter.js.map +0 -1
  109. package/src/lib/product-id-range.d.ts +0 -7
  110. package/src/lib/product-id-range.js +0 -12
  111. package/src/lib/product-id-range.js.map +0 -1
  112. package/src/lib/request-status-resolver.d.ts +0 -4
  113. package/src/lib/request-status-resolver.js +0 -345
  114. package/src/lib/request-status-resolver.js.map +0 -1
  115. package/src/lib/system-log-line.d.ts +0 -9
  116. package/src/lib/system-log-line.js +0 -3
  117. package/src/lib/system-log-line.js.map +0 -1
  118. package/src/lib/types.js +0 -28
  119. package/src/lib/types.js.map +0 -1
  120. package/src/lib/urls.d.ts +0 -3
  121. package/src/lib/urls.js +0 -10
  122. package/src/lib/urls.js.map +0 -1
  123. package/src/lib/util.d.ts +0 -40
  124. package/src/lib/util.js +0 -316
  125. package/src/lib/util.js.map +0 -1
  126. /package/src/{index.d.ts → index.ts} +0 -0
@@ -0,0 +1,1822 @@
1
+ syntax = "proto3";
2
+
3
+ package motionmaster;
4
+
5
+ option optimize_for = SPEED;
6
+ option java_package = "com.synapticon.motionmaster"; // Use separate package names for C++ and Java
7
+
8
+ // The message identifier is generated by the Client and MUST be a String.
9
+ // If it is not included, the message is assumed to be a notification.
10
+ message MotionMasterMessage {
11
+ reserved 2 to 100, 103 to 1000; // Synapticon reserved
12
+ string id = 1;
13
+
14
+ oneof type {
15
+ Request request = 101;
16
+ Status status = 102;
17
+ }
18
+
19
+ message Request {
20
+ reserved 2 to 100, 148 to 1000; // Synapticon reserved
21
+ string topic = 1;
22
+
23
+ oneof type {
24
+ PingSystem ping_system = 101;
25
+ GetSystemVersion get_system_version = 102;
26
+ GetDeviceInfo get_device_info = 103;
27
+ GetDeviceParameterInfo get_device_parameter_info = 104;
28
+ GetDeviceParameterValues get_device_parameter_values = 105;
29
+ GetMultiDeviceParameterValues get_multi_device_parameter_values = 106;
30
+ SetDeviceParameterValues set_device_parameter_values = 107;
31
+ SetMultiDeviceParameterValues set_multi_device_parameter_values = 108;
32
+ GetDeviceFileList get_device_file_list = 109;
33
+ GetDeviceFile get_device_file = 110;
34
+ SetDeviceFile set_device_file = 111;
35
+ DeleteDeviceFile delete_device_file = 112;
36
+ ResetDeviceFault reset_device_fault = 113;
37
+ StopDevice stop_device = 114;
38
+ StartDeviceFirmwareInstallation start_device_firmware_installation = 115;
39
+ GetDeviceLog get_device_log = 116;
40
+ StartCoggingTorqueRecording start_cogging_torque_recording = 117;
41
+ GetCoggingTorqueData get_cogging_torque_data = 118;
42
+ StartOffsetDetection start_offset_detection = 119;
43
+ StartPlantIdentification start_plant_identification = 120 [deprecated=true];
44
+ ComputeAutoTuningGains compute_auto_tuning_gains = 121;
45
+ SetMotionControllerParameters set_motion_controller_parameters = 122;
46
+ EnableMotionController enable_motion_controller = 123;
47
+ DisableMotionController disable_motion_controller = 124;
48
+ SetSignalGeneratorParameters set_signal_generator_parameters = 125;
49
+ StartSignalGenerator start_signal_generator = 126;
50
+ StopSignalGenerator stop_signal_generator = 127;
51
+ StartMonitoringDeviceParameterValues start_monitoring_device_parameter_values = 128;
52
+ StopMonitoringDeviceParameterValues stop_monitoring_device_parameter_values = 129;
53
+ GetEthercatNetworkState get_ethercat_network_state = 130;
54
+ SetEthercatNetworkState set_ethercat_network_state = 131;
55
+ StartNarrowAngleCalibration start_narrow_angle_calibration = 132 [deprecated=true];
56
+ SetSystemClientTimeout set_system_client_timeout = 133;
57
+ StartSystemIdentification start_system_identification = 134;
58
+ GetCirculoEncoderMagnetDistance get_circulo_encoder_magnet_distance = 135;
59
+ StartCirculoEncoderNarrowAngleCalibrationProcedure start_circulo_encoder_narrow_angle_calibration_procedure = 136;
60
+ GetDeviceCiA402State get_device_cia402_state = 137;
61
+ SetDeviceCiA402State set_device_cia402_state = 138;
62
+ GetSystemLog get_system_log = 139;
63
+ StartDeviceSiiRestore start_device_sii_restore = 140;
64
+ StartOpenLoopFieldControl start_open_loop_field_control = 141;
65
+ ComputeFullAutoTuningGains compute_full_auto_tuning_gains = 142 [deprecated = true];
66
+ StartFullAutoTuning start_full_auto_tuning = 143;
67
+ StopFullAutoTuning stop_full_auto_tuning = 144;
68
+ StartCirculoEncoderConfiguration start_circulo_encoder_configuration = 145;
69
+ StopCirculoEncoderNarrowAngleCalibrationProcedure stop_circulo_encoder_narrow_angle_calibration_procedure = 146;
70
+ StartOsCommand start_os_command = 147;
71
+ }
72
+
73
+ // Used by the client to notify Motion Master that it is present and alive if no other messages need to be transmitted
74
+ message PingSystem {}
75
+
76
+ // Get the version of Motion Master
77
+ message GetSystemVersion {}
78
+
79
+ // Request the list of all available devices Motion Master has access to, with some essential information about those devices
80
+ message GetDeviceInfo {}
81
+
82
+ // Request the list of all available parameters of a device (all info, without the values)
83
+ message GetDeviceParameterInfo {
84
+ uint32 device_address = 1;
85
+ }
86
+
87
+ // Request the list of parameter values for a device
88
+ message GetDeviceParameterValues {
89
+ message Parameter {
90
+ uint32 index = 1;
91
+ uint32 subindex = 2; // Relies on the CANopen standard
92
+ bool load_from_cache = 3;
93
+ }
94
+
95
+ uint32 device_address = 1;
96
+ repeated Parameter parameters = 2;
97
+ bool send_progress = 3;
98
+ }
99
+
100
+ // Request the list of parameter values for multiple devices
101
+ message GetMultiDeviceParameterValues {
102
+ repeated GetDeviceParameterValues collection = 1;
103
+ }
104
+
105
+ // Request changing of parameter values foa a device
106
+ message SetDeviceParameterValues {
107
+ message ParameterValue {
108
+ uint32 index = 1;
109
+ uint32 subindex = 2;
110
+ oneof type_value {
111
+ sint64 int_value = 3;
112
+ uint64 uint_value = 4;
113
+ float float_value = 5;
114
+ string string_value = 6;
115
+ bytes raw_value = 7;
116
+ }
117
+ }
118
+
119
+ uint32 device_address = 1;
120
+ repeated ParameterValue parameter_values = 3;
121
+ }
122
+
123
+ // Request changing of parameter values for a device
124
+ message SetMultiDeviceParameterValues {
125
+ repeated SetDeviceParameterValues collection = 1;
126
+ }
127
+
128
+ // Request the list of available files on a device
129
+ message GetDeviceFileList {
130
+ uint32 device_address = 1;
131
+ }
132
+
133
+ // Request a file from a device
134
+ message GetDeviceFile {
135
+ uint32 device_address = 1;
136
+ string name = 2;
137
+ }
138
+
139
+ // Request changing or adding a file to a device
140
+ message SetDeviceFile {
141
+ uint32 device_address = 1;
142
+ string name = 2;
143
+ bytes content = 3;
144
+ bool overwrite = 4;
145
+ }
146
+
147
+ // Request deletion of a file from a device
148
+ message DeleteDeviceFile {
149
+ uint32 device_address = 1;
150
+ string name = 2;
151
+ }
152
+
153
+ // Request fault reset for a device
154
+ message ResetDeviceFault {
155
+ uint32 device_address = 1;
156
+ }
157
+
158
+ // Request a device to stop (e.g. quick stop for CiA402 devices)
159
+ message StopDevice {
160
+ uint32 device_address = 1;
161
+ }
162
+
163
+ // Request installation of a firmware package for a device
164
+ message StartDeviceFirmwareInstallation {
165
+ uint32 device_address = 1;
166
+ bytes firmware_package_content = 2; // Original Synapticon firmware zipped package expected
167
+ bool skip_sii_installation = 3;
168
+ }
169
+
170
+ // Request the internal log file from a device
171
+ message GetDeviceLog {
172
+ uint32 device_address = 1;
173
+ }
174
+
175
+ // Start the cogging torque recording procedure for a device
176
+ message StartCoggingTorqueRecording {
177
+ uint32 device_address = 1;
178
+ bool skip_auto_tuning = 2;
179
+ }
180
+
181
+ // Request the cogging torque data for a device
182
+ message GetCoggingTorqueData {
183
+ uint32 device_address = 1;
184
+ }
185
+
186
+ // Start the offset detection procedure for a device
187
+ message StartOffsetDetection {
188
+ uint32 device_address = 1;
189
+ }
190
+
191
+ // Start the plant identification procedure for a device
192
+ // DEPRECATED - use StartSystemIdentification
193
+ message StartPlantIdentification {
194
+ uint32 device_address = 1;
195
+ float duration_seconds = 2;
196
+ uint32 torque_amplitude = 3;
197
+ uint32 start_frequency = 4;
198
+ uint32 end_frequency = 5;
199
+ uint32 cutoff_frequency = 6;
200
+ }
201
+
202
+ // Start the system identification procedure for a device
203
+ message StartSystemIdentification {
204
+ uint32 device_address = 1;
205
+ float duration_seconds = 2;
206
+ uint32 torque_amplitude = 3;
207
+ float start_frequency = 4;
208
+ float end_frequency = 5;
209
+ }
210
+
211
+ // Compute the auto-tuning gains for a device
212
+ message ComputeAutoTuningGains {
213
+ message PositionParameters {
214
+ enum ControllerType {
215
+ UNSPECIFIED = 0;
216
+ PI_P = 1;
217
+ P_PI = 2;
218
+ }
219
+
220
+ ControllerType controller_type = 1;
221
+ float settling_time = 2;
222
+ float position_damping = 3;
223
+ int32 alpha_mult = 4;
224
+ uint32 order = 5;
225
+
226
+ float lb = 6;
227
+ float ub = 7;
228
+ }
229
+
230
+ message VelocityParameters {
231
+ float velocity_loop_bandwidth = 1;
232
+ float velocity_damping = 2;
233
+ }
234
+
235
+ uint32 device_address = 1;
236
+ oneof type {
237
+ PositionParameters position_parameters = 2;
238
+ VelocityParameters velocity_parameters = 3;
239
+ }
240
+ }
241
+
242
+ // Set a new target for the currently enabled controller on a device
243
+ message SetMotionControllerParameters {
244
+ uint32 device_address = 1;
245
+ int32 target = 2;
246
+ }
247
+
248
+ // Request enabling of a controller on a device
249
+ message EnableMotionController {
250
+ enum ControllerType {
251
+ UNSPECIFIED = 0;
252
+ POSITION = 1;
253
+ VELOCITY = 2;
254
+ TORQUE = 3;
255
+ }
256
+
257
+ uint32 device_address = 1;
258
+ ControllerType controller_type = 2;
259
+ bool filter = 3;
260
+ }
261
+
262
+ // Request disabling a controller on a device
263
+ message DisableMotionController {
264
+ uint32 device_address = 1;
265
+ }
266
+
267
+ // Configure the signal generator on a device (that will be started using the StartSignalGenerator request)
268
+ message SetSignalGeneratorParameters {
269
+ message PositionStepResponse {
270
+ int64 target = 1;
271
+ uint32 sustain_time = 2;
272
+ bool absolute_target = 3;
273
+ }
274
+
275
+ message PositionAdvancedStepResponse {
276
+ int64 target = 1;
277
+ uint32 sustain_time = 2;
278
+ bool repeat = 3;
279
+ bool absolute_target = 4;
280
+ }
281
+
282
+ message PositionRamp {
283
+ int64 target = 1;
284
+ uint32 profile_velocity = 2;
285
+ uint32 profile_acceleration = 3;
286
+ uint32 profile_deceleration = 4;
287
+ uint32 sustain_time = 5;
288
+ bool master_generated = 6;
289
+ bool absolute_target = 7;
290
+ }
291
+
292
+ message PositionTrapezoidal {
293
+ int64 target = 1;
294
+ uint32 profile_velocity = 2;
295
+ uint32 profile_acceleration = 3;
296
+ uint32 profile_deceleration = 4;
297
+ uint32 sustain_time = 5;
298
+ bool repeat = 6;
299
+ bool master_generated = 7;
300
+ bool absolute_target = 8;
301
+ }
302
+
303
+ message PositionBidirectional {
304
+ int64 target = 1;
305
+ uint32 profile_velocity = 2;
306
+ uint32 profile_acceleration = 3;
307
+ uint32 profile_deceleration = 4;
308
+ uint32 sustain_time = 5;
309
+ bool repeat = 6;
310
+ bool master_generated = 7;
311
+ bool absolute_target = 8;
312
+ }
313
+
314
+ message PositionSineWave {
315
+ int64 amplitude = 1;
316
+ float frequency = 2;
317
+ bool repeat = 3;
318
+ bool absolute_target = 4;
319
+ }
320
+
321
+ message VelocityStepResponse {
322
+ int32 target = 1;
323
+ uint32 sustain_time = 2;
324
+ }
325
+
326
+ message VelocityAdvancedStepResponse {
327
+ int32 target = 1;
328
+ uint32 sustain_time = 2;
329
+ bool repeat = 3;
330
+ }
331
+
332
+ message VelocityRamp {
333
+ int32 target = 1;
334
+ uint32 profile_acceleration = 2;
335
+ uint32 profile_deceleration = 3;
336
+ uint32 sustain_time = 4;
337
+ bool master_generated = 5;
338
+ }
339
+
340
+ message VelocityTrapezoidal {
341
+ int32 target = 1;
342
+ uint32 profile_acceleration = 2;
343
+ uint32 profile_deceleration = 3;
344
+ uint32 sustain_time = 4;
345
+ bool repeat = 5;
346
+ bool master_generated = 6;
347
+ }
348
+
349
+ message VelocityBidirectional {
350
+ int32 target = 1;
351
+ uint32 profile_acceleration = 2;
352
+ uint32 profile_deceleration = 3;
353
+ uint32 sustain_time = 4;
354
+ bool repeat = 5;
355
+ bool master_generated = 6;
356
+ }
357
+
358
+ message VelocitySineWave {
359
+ int32 amplitude = 1;
360
+ float frequency = 2;
361
+ bool repeat = 3;
362
+ }
363
+
364
+ message TorqueStepResponse {
365
+ int32 target = 1;
366
+ uint32 sustain_time = 2;
367
+ }
368
+
369
+ message TorqueAdvancedStepResponse {
370
+ int32 target = 1;
371
+ uint32 sustain_time = 2;
372
+ bool repeat = 3;
373
+ }
374
+
375
+ message TorqueRamp {
376
+ int32 target = 1;
377
+ uint32 torque_slope = 2;
378
+ uint32 sustain_time = 3;
379
+ bool master_generated = 4;
380
+ }
381
+
382
+ message TorqueTrapezoidal {
383
+ int32 target = 1;
384
+ uint32 torque_slope = 2;
385
+ uint32 sustain_time = 3;
386
+ bool repeat = 4;
387
+ bool master_generated = 5;
388
+ }
389
+
390
+ message TorqueBidirectional {
391
+ int32 target = 1;
392
+ uint32 torque_slope = 2;
393
+ uint32 sustain_time = 3;
394
+ bool repeat = 4;
395
+ bool master_generated = 5;
396
+ }
397
+
398
+ message TorqueSineWave {
399
+ int32 amplitude = 1;
400
+ float frequency = 2;
401
+ bool repeat = 3;
402
+ }
403
+
404
+ uint32 device_address = 1;
405
+ oneof signal {
406
+ PositionStepResponse position_step_response = 2;
407
+ PositionAdvancedStepResponse position_advanced_step_response = 3;
408
+ PositionRamp position_ramp = 4;
409
+ PositionTrapezoidal position_trapezoidal = 5;
410
+ PositionBidirectional position_bidirectional = 6;
411
+ PositionSineWave position_sine_wave = 7;
412
+ VelocityStepResponse velocity_step_response = 8;
413
+ VelocityAdvancedStepResponse velocity_advanced_step_response = 9;
414
+ VelocityRamp velocity_ramp = 10;
415
+ VelocityTrapezoidal velocity_trapezoidal = 11;
416
+ VelocityBidirectional velocity_bidirectional = 12;
417
+ VelocitySineWave velocity_sine_wave = 13;
418
+ TorqueStepResponse torque_step_response = 14;
419
+ TorqueAdvancedStepResponse torque_advanced_step_response = 15;
420
+ TorqueRamp torque_ramp = 16;
421
+ TorqueTrapezoidal torque_trapezoidal = 17;
422
+ TorqueBidirectional torque_bidirectional = 18;
423
+ TorqueSineWave torque_sine_wave = 19;
424
+ }
425
+ }
426
+
427
+ // Request starting a preset signal generator on a device
428
+ message StartSignalGenerator {
429
+ uint32 device_address = 1;
430
+ }
431
+
432
+ // Request stopping a signal generator on a device
433
+ message StopSignalGenerator {
434
+ uint32 device_address = 1;
435
+ }
436
+
437
+ // Request monitoring a set of parameters on a device
438
+ message StartMonitoringDeviceParameterValues {
439
+ GetDeviceParameterValues get_device_parameter_values = 1;
440
+ uint32 interval = 2;
441
+ string topic = 3;
442
+ }
443
+
444
+ // Request stopping a monitoring process on a device
445
+ message StopMonitoringDeviceParameterValues {
446
+ string start_monitoring_request_id = 1;
447
+ }
448
+
449
+ // Request the current EtherCAT network state of a device
450
+ message GetEthercatNetworkState {
451
+ uint32 device_address = 1;
452
+ }
453
+
454
+ // Request setting an EtherCAT network state for a device
455
+ message SetEthercatNetworkState {
456
+ enum State {
457
+ UNSPECIFIED = 0;
458
+ INIT = 1;
459
+ PREOP = 2;
460
+ BOOT = 3;
461
+ SAFEOP = 4;
462
+ OP = 5;
463
+ }
464
+
465
+ uint32 device_address = 1;
466
+ State state = 2;
467
+ }
468
+
469
+ // Request starting a narrow angle calibration procedure on a device
470
+ // DEPRECATED - use StartCirculoEncoderNarrowAngleCalibrationProcedure instead
471
+ message StartNarrowAngleCalibration {
472
+ uint32 device_address = 1;
473
+ }
474
+
475
+ // Set a desired timeout before disconnecting a non-responsive client
476
+ message SetSystemClientTimeout {
477
+ uint32 timeout_ms = 1; // Default 1000ms; 50ms increments; minimum 50ms
478
+ }
479
+
480
+ message GetCirculoEncoderMagnetDistance {
481
+ uint32 device_address = 1;
482
+ uint32 encoder_ordinal = 2;
483
+ uint32 ring_revision = 3;
484
+ }
485
+
486
+ message StartCirculoEncoderNarrowAngleCalibrationProcedure {
487
+ uint32 device_address = 1;
488
+ uint32 encoder_ordinal = 2;
489
+ }
490
+
491
+ // Request the current CiA402 state of a device
492
+ message GetDeviceCiA402State {
493
+ uint32 device_address = 1;
494
+ }
495
+
496
+ // Request setting a CiA402 state for a device
497
+ message SetDeviceCiA402State {
498
+ enum State {
499
+ UNSPECIFIED = 0;
500
+ NOT_READY = 1;
501
+ SWITCH_ON_DISABLED = 2;
502
+ READY_SWITCH_ON = 3;
503
+ SWITCHED_ON = 4;
504
+ OP_ENABLED = 5;
505
+ QUICK_STOP_ACTIVE = 6;
506
+ FAULT_REACTION_ACTIVE = 7;
507
+ FAULT = 8;
508
+ }
509
+
510
+ uint32 device_address = 1;
511
+ State state = 2;
512
+ }
513
+
514
+ message GetSystemLog {}
515
+
516
+ message StartDeviceSiiRestore {
517
+ uint32 device_position = 1; // Device position in the ECAT chain
518
+ bytes sii_content = 2;
519
+ }
520
+
521
+ message StartOpenLoopFieldControl {
522
+ uint32 device_address = 1;
523
+ int64 angle = 2; // Target angle in degrees of rotation
524
+ uint32 velocity = 3; // Max profile velocity in RPM
525
+ uint32 acceleration = 4; // RPM/s
526
+ uint32 torque = 5; // Permilles of nominal torque
527
+ uint32 torque_speed = 6; // Permille/s
528
+ }
529
+
530
+ // DEPRECATED - use StartFullAutoTuning
531
+ message ComputeFullAutoTuningGains {
532
+ enum Type {
533
+ POSITION = 0;
534
+ VELOCITY = 1;
535
+ }
536
+
537
+ enum ControllerType {
538
+ UNSPECIFIED = 0;
539
+ PI_P = 1;
540
+ P_PI = 2;
541
+ }
542
+
543
+ uint32 device_address = 1;
544
+ Type type = 2;
545
+ ControllerType controller_type = 3; // Used for full position AT only
546
+ }
547
+
548
+ message StartFullAutoTuning {
549
+ enum Type {
550
+ POSITION = 0;
551
+ VELOCITY = 1;
552
+ }
553
+
554
+ enum ControllerType {
555
+ UNSPECIFIED = 0;
556
+ PI_P = 1;
557
+ P_PI = 2;
558
+ }
559
+
560
+ uint32 device_address = 1;
561
+ Type type = 2;
562
+ ControllerType controller_type = 3; // Used for full position AT only
563
+ }
564
+
565
+ message StopFullAutoTuning {
566
+ uint32 device_address = 1;
567
+ }
568
+
569
+ message StartCirculoEncoderConfiguration {
570
+ uint32 device_address = 1;
571
+ uint32 encoder_ordinal = 2;
572
+ }
573
+
574
+ message StopCirculoEncoderNarrowAngleCalibrationProcedure {
575
+ uint32 device_address = 1;
576
+ uint32 encoder_ordinal = 2;
577
+ }
578
+
579
+ message StartOsCommand {
580
+ uint32 device_address = 1;
581
+ uint32 timeout_ms = 2;
582
+ bytes command = 3;
583
+ }
584
+ }
585
+
586
+ // Message used for Motion Master -> client communication
587
+ message Status {
588
+ reserved 1 to 100, 135 to 1000; // Synapticon reserved
589
+ oneof type {
590
+ SystemPong system_pong = 101;
591
+ SystemVersion system_version = 102;
592
+ SystemEvent system_event = 103;
593
+ DeviceInfo device_info = 104;
594
+ DeviceParameterInfo device_parameter_info = 105;
595
+ DeviceParameterValues device_parameter_values = 106;
596
+ MultiDeviceParameterValues multi_device_parameter_values = 107;
597
+ DeviceFileList device_file_list = 108;
598
+ DeviceFile device_file = 109;
599
+ DeviceEvent device_event = 110;
600
+ DeviceFirmwareInstallation device_firmware_installation = 111;
601
+ DeviceLog device_log = 112;
602
+ DeviceFaultReset device_fault_reset = 113;
603
+ CoggingTorqueRecording cogging_torque_recording = 114;
604
+ CoggingTorqueData cogging_torque_data = 115;
605
+ OffsetDetection offset_detection = 116;
606
+ PlantIdentification plant_identification = 117 [deprecated=true];
607
+ AutoTuning auto_tuning = 118;
608
+ MotionController motion_controller = 119;
609
+ SignalGenerator signal_generator = 120;
610
+ MonitoringParameterValues monitoring_parameter_values = 121;
611
+ DeviceStop device_stop = 122;
612
+ EthercatNetworkState ethercat_network_state = 123;
613
+ NarrowAngleCalibration narrow_angle_calibration = 124 [deprecated=true];
614
+ SystemIdentification system_identification = 125;
615
+ CirculoEncoderMagnetDistance circulo_encoder_magnet_distance = 126;
616
+ CirculoEncoderNarrowAngleCalibrationProcedure circulo_encoder_narrow_angle_calibration_procedure = 127;
617
+ DeviceCiA402State device_cia402_state = 128;
618
+ SystemLog system_log = 129;
619
+ DeviceSiiRestore device_sii_restore = 130;
620
+ OpenLoopFieldControl open_loop_field_control = 131;
621
+ FullAutoTuning full_auto_tuning = 132;
622
+ CirculoEncoderConfiguration circulo_encoder_configuration = 133;
623
+ OsCommand os_command = 134;
624
+ }
625
+
626
+ // RESPONSE MESSAGES
627
+ // Used by Motion Master to notify its clients that it is present and alive
628
+ message SystemPong {}
629
+
630
+ // Returns the current Motion Master version
631
+ message SystemVersion {
632
+ string version = 1;
633
+ }
634
+
635
+ // Notifies the clients about certain system (Motion Master) events
636
+ message SystemEvent {
637
+ message Info {
638
+ enum Code {
639
+ UNSPECIFIED = 0;
640
+ SLAVE_NUMBER_CHANGED = 1;
641
+ }
642
+
643
+ Code code = 1;
644
+ string message = 2;
645
+ }
646
+
647
+ message Success {
648
+ enum Code {
649
+ UNSPECIFIED = 0;
650
+ }
651
+
652
+ Code code = 1;
653
+ string message = 2;
654
+ }
655
+
656
+ message Warning {
657
+ enum Code {
658
+ UNSPECIFIED = 0;
659
+ DROPPING_CONNECTION = 1; // Notify a client that Motion Master will drop its connection
660
+ }
661
+
662
+ Code code = 1;
663
+ string message = 2;
664
+ }
665
+
666
+ message Error {
667
+ enum Code {
668
+ UNSPECIFIED = 0;
669
+ UNKNOWN_MESSAGE_TYPE = 1;
670
+ CANNOT_DETECT_SLAVES = 2;
671
+ INVALID_DEVICE_ADDRESS = 3;
672
+ CONFIGURATION_RELOAD_FAILED = 4;
673
+ HARDWARE_DESCRIPTION_MISSING = 5;
674
+ }
675
+
676
+ Code code = 1;
677
+ string message = 2;
678
+ }
679
+
680
+ // Notify clients about the current Motion Master state
681
+ enum State {
682
+ UNSPECIFIED = 0;
683
+ WAITING_FOR_SLAVES = 1;
684
+ SLAVES_FOUND = 2;
685
+ INITIALIZING = 3;
686
+ INITIALIZED = 4;
687
+ DEINITIALIZING = 5;
688
+ DEINITIALIZED = 6;
689
+ TERMINATING = 7;
690
+ }
691
+
692
+ uint32 device_address = 1;
693
+ oneof status {
694
+ Info info = 2;
695
+ Success success = 3;
696
+ Warning warning = 4;
697
+ Error error = 5;
698
+ State state = 6;
699
+ }
700
+ }
701
+
702
+ // Returns some basic data about currently available devices
703
+ message DeviceInfo {
704
+ message Device {
705
+ enum Type {
706
+ UNSPECIFIED = 0;
707
+ SOMANET_CIA401_ETHERCAT = 1;
708
+ SOMANET_CIA402_ETHERCAT = 2;
709
+ }
710
+
711
+ uint32 device_address = 1;
712
+ Type type = 2;
713
+ uint32 position = 3;
714
+ uint32 alias = 4;
715
+ }
716
+
717
+ repeated Device devices = 1;
718
+ }
719
+
720
+ // Returns a list with information about all available parameters on a device
721
+ message DeviceParameterInfo {
722
+ message Parameter {
723
+ enum ValueType {
724
+ UNSPECIFIED = 0;
725
+ BOOLEAN = 1; // 1: BOOL/BIT - Boolean - 1 bit
726
+ INTEGER8 = 2; // 2: SINT - Short integer - 8 bits
727
+ INTEGER16 = 3; // 3: INT - Integer - 16 bits
728
+ INTEGER32 = 4; // 4: DINT - Double integer - 32 bits
729
+ UNSIGNED8 = 5; // 5: USINT - Unsigned short integer - 8 bits
730
+ UNSIGNED16 = 6; // 6: UINT - Unsigned integer - 16 bits
731
+ UNSIGNED32 = 7; // 7: UDINT - Unsigned double integer - 32 bits
732
+ REAL32 = 8; // 8: REAL32 - Floating point - 32 bits
733
+ VISIBLE_STRING = 9; // 9: STRING(n) - Visible string - 8^n bits
734
+ OCTET_STRING = 10; // 10: ARRAY[0..n] OF BYTE - Sequence of octets - 8^(n+1) bits
735
+ UNICODE_STRING = 11; // 11: ARRAY[0..n] OF UINT - Sequence of UINT - 16^(n+1) bits
736
+ TIME_OF_DAY = 12; // 12: Time of day - 48 bits
737
+ }
738
+
739
+ uint32 index = 1;
740
+ uint32 subindex = 2; // Relies on the CANopen standard
741
+ string name = 3;
742
+ string unit = 4;
743
+ string group = 5;
744
+ bool read_access = 6;
745
+ bool write_access = 7;
746
+ int32 min = 8;
747
+ int32 max = 9;
748
+ ValueType value_type = 10;
749
+ }
750
+
751
+ uint32 device_address = 1;
752
+ repeated Parameter parameters = 2;
753
+ }
754
+
755
+ // Returns the values of requested parameters and/or statuses of requested actions on them
756
+ message DeviceParameterValues {
757
+ message ParameterValue {
758
+ message Success {
759
+ enum Code {
760
+ UNSPECIFIED = 0;
761
+ DONE = 1;
762
+ CHANGED = 2;
763
+ }
764
+
765
+ Code code = 1;
766
+ string message = 2;
767
+ }
768
+
769
+ message Error {
770
+ enum Code {
771
+ UNSPECIFIED = 0;
772
+ NOT_FOUND = 1;
773
+ CANNOT_REFRESH_VALUE = 2;
774
+ NOT_CHANGED = 3;
775
+ }
776
+
777
+ Code code = 1;
778
+ string message = 2;
779
+ }
780
+
781
+ uint32 index = 1;
782
+ uint32 subindex = 2; // Relies on the CANopen standard
783
+ oneof type_value {
784
+ sint64 int_value = 3;
785
+ uint64 uint_value = 4;
786
+ float float_value = 5;
787
+ string string_value = 6;
788
+ bytes raw_value = 7;
789
+ }
790
+
791
+ oneof status {
792
+ Success success = 8;
793
+ Error error = 9;
794
+ }
795
+ }
796
+
797
+ message Progress {
798
+ uint32 percentage = 1;
799
+ string message = 2;
800
+ }
801
+
802
+ uint32 device_address = 1;
803
+ repeated ParameterValue parameter_values = 2;
804
+ Progress progress = 3;
805
+ }
806
+
807
+ // Returns DeviceParameterValues responses for multiple devices
808
+ message MultiDeviceParameterValues {
809
+ repeated DeviceParameterValues collection = 1;
810
+ }
811
+
812
+ // Returns a list of files for a device
813
+ message DeviceFileList {
814
+ message FileList {
815
+ repeated string files = 1;
816
+ }
817
+
818
+ message Error {
819
+ enum Code {
820
+ UNSPECIFIED = 0;
821
+ NOT_SUPPORTED = 1;
822
+ }
823
+
824
+ Code code = 1;
825
+ string message = 2;
826
+ }
827
+
828
+ uint32 device_address = 1;
829
+ oneof data {
830
+ FileList file_list = 2; // Wrapped in a nested message because "repeated" is not allowed in oneof
831
+ Error error = 3;
832
+ }
833
+ }
834
+
835
+ // Returns a file from a device and/or the status of a requested file operation
836
+ message DeviceFile {
837
+ message Success {
838
+ enum Code {
839
+ UNSPECIFIED = 0;
840
+ SET = 1;
841
+ DELETED = 2;
842
+ }
843
+
844
+ Code code = 1;
845
+ string message = 2;
846
+ }
847
+
848
+ message Error {
849
+ enum Code {
850
+ UNSPECIFIED = 0;
851
+ NOT_FOUND = 1;
852
+ FAILED = 2;
853
+ NOT_SUPPORTED = 3;
854
+ }
855
+
856
+ Code code = 1;
857
+ string message = 2;
858
+ }
859
+
860
+ uint32 device_address = 1;
861
+ string name = 2;
862
+ oneof data {
863
+ bytes content = 3;
864
+ Success success = 4;
865
+ Error error = 5;
866
+ }
867
+ }
868
+
869
+ // Notifies the clients about device events
870
+ message DeviceEvent {
871
+ message Info {
872
+ uint32 code = 1;
873
+ string message = 2;
874
+ }
875
+
876
+ message Success {
877
+ uint32 code = 1;
878
+ string message = 2;
879
+ }
880
+
881
+ message Warning {
882
+ uint32 code = 1;
883
+ string message = 2;
884
+ }
885
+
886
+ message Error {
887
+ uint32 code = 1;
888
+ string message = 2;
889
+ }
890
+
891
+ uint32 device_address = 1;
892
+ oneof status {
893
+ Info info = 2;
894
+ Success success = 3;
895
+ Warning warning = 4;
896
+ Error error = 5;
897
+ }
898
+ }
899
+
900
+ // Returns the status of a device firmware installation
901
+ message DeviceFirmwareInstallation {
902
+ message Success {
903
+ enum Code {
904
+ UNSPECIFIED = 0;
905
+ STARTED = 1;
906
+ DONE = 2;
907
+ }
908
+
909
+ Code code = 1;
910
+ string message = 2;
911
+ }
912
+
913
+ message Error {
914
+ enum Code {
915
+ UNSPECIFIED = 0;
916
+ PACKAGE_CORRUPTED = 1;
917
+ SII_CORRUPTED = 2;
918
+ IMAGE_NOT_FOUND = 3;
919
+ REFUSED = 4;
920
+ NOT_SUPPORTED = 5;
921
+ SII_WRITE_FAILED = 6;
922
+ FILE_WRITE_FAILED = 7;
923
+ FILE_DELETE_FAILED = 8;
924
+ DEVICE_NOT_FOUND = 9;
925
+ }
926
+
927
+ Code code = 1;
928
+ string message = 2;
929
+ }
930
+
931
+ message Progress {
932
+ uint32 percentage = 1;
933
+ string message = 2;
934
+ }
935
+
936
+ uint32 device_address = 1;
937
+ oneof status {
938
+ Success success = 2;
939
+ Error error = 3;
940
+ Progress progress = 4;
941
+ }
942
+ }
943
+
944
+ // Returns the log file from a device
945
+ message DeviceLog {
946
+ message Error {
947
+ enum Code {
948
+ UNSPECIFIED = 0;
949
+ NOT_FOUND = 1;
950
+ NOT_SUPPORTED = 2;
951
+ }
952
+
953
+ Code code = 1;
954
+ string message = 2;
955
+ }
956
+
957
+ uint32 device_address = 1;
958
+ oneof data {
959
+ string content = 2;
960
+ Error error = 3;
961
+ }
962
+ }
963
+
964
+ // Returns the status of a device fault reset
965
+ message DeviceFaultReset {
966
+ message Success {
967
+ enum Code {
968
+ UNSPECIFIED = 0;
969
+ DONE = 1;
970
+ }
971
+
972
+ Code code = 1;
973
+ string message = 2;
974
+ }
975
+
976
+ message Warning {
977
+ enum Code {
978
+ UNSPECIFIED = 0;
979
+ NO_FAULT = 1;
980
+ }
981
+
982
+ Code code = 1;
983
+ string message = 2;
984
+ }
985
+
986
+ message Error {
987
+ enum Code {
988
+ UNSPECIFIED = 0;
989
+ FAILED = 1;
990
+ TIMED_OUT = 2;
991
+ NOT_SUPPORTED = 3;
992
+ }
993
+
994
+ Code code = 1;
995
+ string message = 2;
996
+ }
997
+
998
+ uint32 device_address = 1;
999
+ oneof status {
1000
+ Success success = 2;
1001
+ Warning warning = 3;
1002
+ Error error = 4;
1003
+ }
1004
+ }
1005
+
1006
+ // Returns the status of the cogging torque recording procedure
1007
+ message CoggingTorqueRecording {
1008
+ message Success {
1009
+ enum Code {
1010
+ UNSPECIFIED = 0;
1011
+ STARTED = 1;
1012
+ DONE = 2;
1013
+ }
1014
+
1015
+ Code code = 1;
1016
+ string message = 2;
1017
+ }
1018
+
1019
+ message Error {
1020
+ enum Code {
1021
+ UNSPECIFIED = 0;
1022
+ FAILED_HALL_SENSOR = 1;
1023
+ INVALID_RESOLUTION = 2;
1024
+ NO_COMMUTATION_SENSOR = 3;
1025
+ NO_COMMUTATION_AND_MOTION_SENSOR = 4;
1026
+ POSITION_CONTROLLER_NOT_TUNED = 5;
1027
+ INIT_FAILED = 6;
1028
+ FAILED = 7;
1029
+ ABORTED = 8;
1030
+ TIMEOUT = 9;
1031
+ SAVING_FAILED = 10;
1032
+ SAVING_ABORTED = 11;
1033
+ SAVING_TIMEOUT = 12;
1034
+ NO_POSITION_CONTROL_FUNCTION = 13;
1035
+ NOT_SUPPORTED = 14;
1036
+ }
1037
+
1038
+ Code code = 1;
1039
+ string message = 2;
1040
+ }
1041
+
1042
+ uint32 device_address = 1;
1043
+ oneof status {
1044
+ Success success = 2;
1045
+ Error error = 3;
1046
+ }
1047
+ }
1048
+
1049
+ // Returns the cogging torque data from a device
1050
+ message CoggingTorqueData {
1051
+ message Table {
1052
+ repeated int32 data = 1;
1053
+ }
1054
+
1055
+ message Error {
1056
+ enum Code {
1057
+ UNSPECIFIED = 0;
1058
+ NOT_FOUND = 1;
1059
+ CORRUPTED = 2;
1060
+ NOT_SUPPORTED = 3;
1061
+ }
1062
+
1063
+ Code code = 1;
1064
+ string message = 2;
1065
+ }
1066
+
1067
+ uint32 device_address = 1;
1068
+ oneof data {
1069
+ Table table = 4;
1070
+ Error error = 5;
1071
+ }
1072
+ }
1073
+
1074
+ // Returns the status of the offset detection procedure
1075
+ message OffsetDetection {
1076
+ message Success {
1077
+ enum Code {
1078
+ UNSPECIFIED = 0;
1079
+ STARTED = 1;
1080
+ DONE = 2;
1081
+ }
1082
+
1083
+ Code code = 1;
1084
+ string message = 2;
1085
+ }
1086
+
1087
+ message Error {
1088
+ enum Code {
1089
+ UNSPECIFIED = 0;
1090
+ INIT_FAILED = 1;
1091
+ TIMEOUT = 2;
1092
+ FAILED = 3;
1093
+ ABORTED = 4;
1094
+ NOT_SUPPORTED = 5;
1095
+ }
1096
+
1097
+ Code code = 1;
1098
+ string message = 2;
1099
+ }
1100
+
1101
+ uint32 device_address = 1;
1102
+ oneof status {
1103
+ Success success = 2;
1104
+ Error error = 3;
1105
+ }
1106
+ }
1107
+
1108
+ // Returns the status of the plant identification procedure
1109
+ // DEPRECATED - use SystemIdentification instead
1110
+ message PlantIdentification {
1111
+ message Success {
1112
+ enum Code {
1113
+ UNSPECIFIED = 0;
1114
+ STARTED = 1;
1115
+ DONE = 2; }
1116
+
1117
+ Code code = 1;
1118
+ string message = 2;
1119
+ }
1120
+
1121
+ message Error {
1122
+ enum Code {
1123
+ UNSPECIFIED = 0;
1124
+ NO_POSITION_CONTROL_SENSOR = 1;
1125
+ INIT_FAILED = 2;
1126
+ FAILED = 3;
1127
+ ABORTED = 4;
1128
+ TIMED_OUT = 5;
1129
+ ZERO_TORQUE_AMPLITUDE = 6;
1130
+ ZERO_VELOCITY_AMPLITUDE = 7;
1131
+ WRONG_SENSOR_POLARITY = 8;
1132
+ SMALL_MOTION_AMPLITUDE = 9;
1133
+ NOT_SUPPORTED = 10;
1134
+ }
1135
+
1136
+ Code code = 1;
1137
+ string message = 2;
1138
+ }
1139
+
1140
+ uint32 device_address = 1;
1141
+ oneof status {
1142
+ Success success = 2;
1143
+ Error error = 3;
1144
+ }
1145
+ }
1146
+
1147
+ // Returns the status of the system identification procedure
1148
+ message SystemIdentification {
1149
+ message Success {
1150
+ enum Code {
1151
+ UNSPECIFIED = 0;
1152
+ STARTED = 1;
1153
+ DONE = 2; }
1154
+
1155
+ Code code = 1;
1156
+ string message = 2;
1157
+ }
1158
+
1159
+ message Error {
1160
+ enum Code {
1161
+ UNSPECIFIED = 0;
1162
+ NO_POSITION_CONTROL_SENSOR = 1;
1163
+ INIT_FAILED = 2;
1164
+ FAILED = 3;
1165
+ ABORTED = 4;
1166
+ TIMED_OUT = 5;
1167
+ ZERO_TORQUE_AMPLITUDE = 6;
1168
+ ZERO_VELOCITY_AMPLITUDE = 7;
1169
+ WRONG_SENSOR_POLARITY = 8;
1170
+ SMALL_MOTION_AMPLITUDE = 9;
1171
+ NOT_SUPPORTED = 10;
1172
+ INSUFFICIENT_VELOCITY_RESOLUTION = 11;
1173
+ BAD_DATA_QUALITY = 12;
1174
+ }
1175
+
1176
+ Code code = 1;
1177
+ string message = 2;
1178
+ }
1179
+
1180
+ message Warning {
1181
+ enum Code {
1182
+ UNSPECIFIED = 0;
1183
+ SMALL_VELOCITY_AMPLITUDE = 1;
1184
+ LOW_DATA_QUALITY = 2;
1185
+ }
1186
+
1187
+ Code code = 1;
1188
+ string message = 2;
1189
+ }
1190
+
1191
+ uint32 device_address = 1;
1192
+ oneof status {
1193
+ Success success = 2;
1194
+ Error error = 3;
1195
+ Warning warning = 4;
1196
+ }
1197
+ }
1198
+
1199
+ // Returns the status of the auto-tuning procedure
1200
+ message AutoTuning {
1201
+ message Success {
1202
+ enum Code {
1203
+ UNSPECIFIED = 0;
1204
+ POSITION_STARTED = 1;
1205
+ POSITION_DONE = 2;
1206
+ VELOCITY_STARTED = 3;
1207
+ VELOCITY_DONE = 4;
1208
+ }
1209
+
1210
+ Code code = 1;
1211
+ string message = 2;
1212
+ }
1213
+
1214
+ message Warning {
1215
+ enum Code {
1216
+ UNSPECIFIED = 0;
1217
+ SETTLING_TIME_NOT_REACHED = 1;
1218
+ VELOCITY_UNSTABLE = 2;
1219
+ SMALL_VELOCITY_AMPLITUDE = 3 [deprecated=true];
1220
+ }
1221
+
1222
+ Code code = 1;
1223
+ string message = 2;
1224
+ }
1225
+
1226
+ message Error {
1227
+ enum Code {
1228
+ UNSPECIFIED = 0;
1229
+ PLANT_MODEL_INVALID = 1;
1230
+ PLANT_MODEL_NOT_FOUND = 2;
1231
+ CANNOT_ACHIEVE_SETTLING_TIME = 3;
1232
+ POSITION_FAILED = 4;
1233
+ VELOCITY_FAILED = 5;
1234
+ NOT_SUPPORTED = 6;
1235
+ }
1236
+
1237
+ Code code = 1;
1238
+ string message = 2;
1239
+ }
1240
+
1241
+ uint32 device_address = 1;
1242
+ oneof status {
1243
+ Success success = 2;
1244
+ Warning warning = 3;
1245
+ Error error = 4;
1246
+ }
1247
+ }
1248
+
1249
+ // Returns the current status of a controller for a device
1250
+ message MotionController {
1251
+ enum ControllerType {
1252
+ UNSPECIFIED = 0;
1253
+ POSITION = 1;
1254
+ VELOCITY = 2;
1255
+ TORQUE = 3;
1256
+ }
1257
+
1258
+ message Success {
1259
+ enum Code {
1260
+ UNSPECIFIED = 0;
1261
+ DONE = 1;
1262
+ }
1263
+
1264
+ Code code = 1;
1265
+ string message = 2;
1266
+ }
1267
+
1268
+ message Error {
1269
+ enum Code {
1270
+ UNSPECIFIED = 0;
1271
+ CANNOT_GET_STATE = 1;
1272
+ CANNOT_GET_OP_MODE = 2;
1273
+ CANNOT_SET_STATE = 3;
1274
+ CANNOT_SET_OP_MODE = 4;
1275
+ CANNOT_SET_STATE_OP_MODE = 5;
1276
+ FAULT_STATE = 6;
1277
+ NOT_SUPPORTED = 7;
1278
+ IN_PROGRESS = 8;
1279
+ ABORTED = 9;
1280
+ }
1281
+
1282
+ Code code = 1;
1283
+ string message = 2;
1284
+ }
1285
+
1286
+ uint32 device_address = 1;
1287
+ ControllerType controller_type = 2;
1288
+ bool enabled = 3;
1289
+ bool filter = 4;
1290
+ oneof status {
1291
+ Success success = 5;
1292
+ Error error = 6;
1293
+ }
1294
+ }
1295
+
1296
+ // Returns the status of a currently active signal generator on a device
1297
+ message SignalGenerator {
1298
+ message Success {
1299
+ enum Code {
1300
+ UNSPECIFIED = 0;
1301
+ STARTED = 1;
1302
+ DONE = 2;
1303
+ PARAMETERS_SET = 3;
1304
+ }
1305
+
1306
+ Code code = 1;
1307
+ string message = 2;
1308
+ }
1309
+
1310
+ message Warning {
1311
+ enum Code {
1312
+ UNSPECIFIED = 0;
1313
+ ACC_DEC_VEL_CONSTRAINT = 1; // Will continue with the signal generator execution, but with reduced velocity because of the acc/dec constraint
1314
+ }
1315
+
1316
+ Code code = 1;
1317
+ string message = 2;
1318
+ }
1319
+
1320
+ message Error {
1321
+ enum Code {
1322
+ UNSPECIFIED = 0;
1323
+ CANNOT_GET_STATE = 1;
1324
+ CANNOT_GET_OP_MODE = 2;
1325
+ CANNOT_SET_STATE = 3;
1326
+ CANNOT_SET_OP_MODE = 4;
1327
+ CANNOT_SET_STATE_OP_MODE = 5;
1328
+ FAULT_STATE = 6;
1329
+ NOT_SUPPORTED = 7;
1330
+ NOT_DEFINED = 8;
1331
+ ALREADY_RUNNING = 9;
1332
+ ABORTED = 10;
1333
+ }
1334
+
1335
+ Code code = 1;
1336
+ string message = 2;
1337
+ }
1338
+
1339
+ uint32 device_address = 1;
1340
+ oneof status {
1341
+ Success success = 2;
1342
+ Warning warning = 3;
1343
+ Error error = 4;
1344
+ }
1345
+ }
1346
+
1347
+ // Returns the list of monitored parameter values for a device, as well as the status of the requested monitoring
1348
+ message MonitoringParameterValues {
1349
+ message Success {
1350
+ enum Code {
1351
+ UNSPECIFIED = 0;
1352
+ DONE = 1;
1353
+ }
1354
+
1355
+ Code code = 1;
1356
+ string message = 2;
1357
+ }
1358
+
1359
+ message Warning {
1360
+ enum Code {
1361
+ UNSPECIFIED = 0;
1362
+ PARAMETERS_MISSING = 1; // Some of the requested parameters are missing, but the request has been accepted
1363
+ }
1364
+
1365
+ Code code = 1;
1366
+ string message = 2;
1367
+ }
1368
+
1369
+ message Error {
1370
+ enum Code {
1371
+ UNSPECIFIED = 0;
1372
+ REFUSED = 1;
1373
+ NOT_SUPPORTED = 2;
1374
+ INVALID = 3; // Invalid monitoring request - none of the requested parameters are available
1375
+ }
1376
+
1377
+ Code code = 1;
1378
+ string message = 2;
1379
+ }
1380
+
1381
+ DeviceParameterValues device_parameter_values = 1;
1382
+ uint32 timestamp = 2;
1383
+ oneof status {
1384
+ Success success = 3;
1385
+ Warning warning = 4;
1386
+ Error error = 5;
1387
+ }
1388
+ }
1389
+
1390
+ // Returns the status of the device stop request
1391
+ message DeviceStop {
1392
+ message Success {
1393
+ enum Code {
1394
+ UNSPECIFIED = 0;
1395
+ DONE = 1;
1396
+ }
1397
+
1398
+ Code code = 1;
1399
+ string message = 2;
1400
+ }
1401
+
1402
+ message Error {
1403
+ enum Code {
1404
+ UNSPECIFIED = 0;
1405
+ TIMED_OUT = 1;
1406
+ NOT_SUPPORTED = 2;
1407
+ FAILED = 3;
1408
+ }
1409
+
1410
+ Code code = 1;
1411
+ string message = 2;
1412
+ }
1413
+
1414
+ uint32 device_address = 1;
1415
+ oneof status {
1416
+ Success success = 2;
1417
+ Error error = 3;
1418
+ }
1419
+ }
1420
+
1421
+ // Returns the current EtherCAT network state of a device, or the status of the requested EtherCAT network state change
1422
+ message EthercatNetworkState {
1423
+ enum State {
1424
+ UNSPECIFIED = 0;
1425
+ INIT = 1;
1426
+ PREOP = 2;
1427
+ BOOT = 3;
1428
+ SAFEOP = 4;
1429
+ OP = 5;
1430
+ }
1431
+
1432
+ message Success {
1433
+ enum Code {
1434
+ UNSPECIFIED = 0;
1435
+ DONE = 1;
1436
+ }
1437
+
1438
+ Code code = 1;
1439
+ string message = 2;
1440
+ }
1441
+
1442
+ message Error {
1443
+ enum Code {
1444
+ UNSPECIFIED = 0;
1445
+ TIMED_OUT = 1;
1446
+ NOT_SUPPORTED = 2;
1447
+ UNKNOWN_STATE = 3;
1448
+ }
1449
+
1450
+ Code code = 1;
1451
+ string message = 2;
1452
+ }
1453
+
1454
+ uint32 device_address = 1;
1455
+ oneof status {
1456
+ State state = 2;
1457
+ Success success = 3;
1458
+ Error error = 4;
1459
+ }
1460
+ }
1461
+
1462
+ // Returns the status of the narrow angle calibration procedure
1463
+ // DEPRECATED - use CirculoEncoderNarrowAngleCalibrationProcedure instead
1464
+ message NarrowAngleCalibration {
1465
+ message Success {
1466
+ enum Code {
1467
+ UNSPECIFIED = 0;
1468
+ STARTED = 1;
1469
+ DONE = 2;
1470
+ }
1471
+
1472
+ Code code = 1;
1473
+ string message = 2;
1474
+ }
1475
+
1476
+ message Error {
1477
+ enum Code {
1478
+ UNSPECIFIED = 0;
1479
+ INIT_FAILED = 1;
1480
+ FAILED = 2;
1481
+ ABORTED = 3;
1482
+ TIMED_OUT = 4;
1483
+ NOT_SUPPORTED = 5;
1484
+ }
1485
+
1486
+ Code code = 1;
1487
+ string message = 2;
1488
+ }
1489
+
1490
+ uint32 device_address = 1;
1491
+ oneof status {
1492
+ Success success = 2;
1493
+ Error error = 3;
1494
+ }
1495
+ }
1496
+
1497
+ message CirculoEncoderMagnetDistance {
1498
+ uint32 device_address = 1;
1499
+ uint32 encoder_ordinal = 2;
1500
+ float distance = 3;
1501
+ sint64 position = 4;
1502
+ }
1503
+
1504
+ message CirculoEncoderNarrowAngleCalibrationProcedure {
1505
+ message Success {
1506
+ enum Code {
1507
+ UNSPECIFIED = 0;
1508
+ STARTED = 1;
1509
+ DONE = 2;
1510
+ STOPPING = 3;
1511
+ STOPPED = 4;
1512
+ }
1513
+
1514
+ Code code = 1;
1515
+ string message = 2;
1516
+ }
1517
+
1518
+ message Error {
1519
+ enum Code {
1520
+ UNSPECIFIED = 0;
1521
+ INIT_FAILED = 1;
1522
+ FAILED = 2;
1523
+ ABORTED = 3;
1524
+ TIMED_OUT = 4;
1525
+ NOT_SUPPORTED = 5;
1526
+ ALREADY_RUNNING = 6;
1527
+ NOT_RUNNING = 7;
1528
+ OUTSIDE_POSITION_LIMITS = 8;
1529
+ ABSOLUTE_POSITION_RESET_FAILED = 9;
1530
+ }
1531
+
1532
+ Code code = 1;
1533
+ string message = 2;
1534
+ }
1535
+
1536
+ message Progress {
1537
+ uint32 iteration = 1;
1538
+ repeated int64 phase_error = 2;
1539
+ repeated double position = 3;
1540
+ bool final = 4;
1541
+ }
1542
+
1543
+ message Warning {
1544
+ enum Code {
1545
+ UNSPECIFIED = 0;
1546
+ MAX_MOTOR_SPEED_TOO_LOW = 1;
1547
+ AUTO_COMMUTATION_OFFSET_MEASUREMENT_FAILED = 2;
1548
+ NARROW_MOTION_RANGE = 3;
1549
+ ABSOLUTE_POSITION_CHANGED = 4;
1550
+ }
1551
+
1552
+ Code code = 1;
1553
+ string message = 2;
1554
+ }
1555
+
1556
+ uint32 device_address = 1;
1557
+ uint32 encoder_ordinal = 2;
1558
+ oneof status {
1559
+ Success success = 3;
1560
+ Error error = 4;
1561
+ Progress progress = 5;
1562
+ Warning warning = 6;
1563
+ }
1564
+ }
1565
+
1566
+ // Returns the current CiA402 state of a device, or the status of the requested CiA402 state change
1567
+ message DeviceCiA402State {
1568
+ enum State {
1569
+ UNSPECIFIED = 0;
1570
+ NOT_READY = 1;
1571
+ SWITCH_ON_DISABLED = 2;
1572
+ READY_SWITCH_ON = 3;
1573
+ SWITCHED_ON = 4;
1574
+ OP_ENABLED = 5;
1575
+ QUICK_STOP_ACTIVE = 6;
1576
+ FAULT_REACTION_ACTIVE = 7;
1577
+ FAULT = 8;
1578
+ }
1579
+
1580
+ message Success {
1581
+ enum Code {
1582
+ UNSPECIFIED = 0;
1583
+ DONE = 1;
1584
+ }
1585
+
1586
+ Code code = 1;
1587
+ string message = 2;
1588
+ }
1589
+
1590
+ message Error {
1591
+ enum Code {
1592
+ UNSPECIFIED = 0;
1593
+ TIMED_OUT = 1;
1594
+ FAILED = 2;
1595
+ FAULT = 3;
1596
+ NOT_SUPPORTED = 4;
1597
+ UNKNOWN_STATE = 5;
1598
+ ABORTED = 6;
1599
+ }
1600
+
1601
+ Code code = 1;
1602
+ string message = 2;
1603
+ }
1604
+
1605
+ uint32 device_address = 1;
1606
+ oneof status {
1607
+ State state = 2;
1608
+ Success success = 3;
1609
+ Error error = 4;
1610
+ }
1611
+ }
1612
+
1613
+ message SystemLog {
1614
+ string content = 1;
1615
+ string run_env = 2;
1616
+ }
1617
+
1618
+ message DeviceSiiRestore {
1619
+ message Success {
1620
+ enum Code {
1621
+ UNSPECIFIED = 0;
1622
+ STARTED = 1;
1623
+ DONE = 2;
1624
+ }
1625
+
1626
+ Code code = 1;
1627
+ string message = 2;
1628
+ }
1629
+
1630
+ message Error {
1631
+ enum Code {
1632
+ UNSPECIFIED = 0;
1633
+ SII_CORRUPTED = 1;
1634
+ REFUSED = 2;
1635
+ NOT_SUPPORTED = 3;
1636
+ SII_WRITE_FAILED = 4;
1637
+ DEVICE_NOT_FOUND = 5;
1638
+ }
1639
+
1640
+ Code code = 1;
1641
+ string message = 2;
1642
+ }
1643
+
1644
+ uint32 device_position = 1; // Device position in the ECAT chain
1645
+ oneof status {
1646
+ Success success = 2;
1647
+ Error error = 3;
1648
+ }
1649
+ }
1650
+
1651
+ message OpenLoopFieldControl {
1652
+ message Success {
1653
+ enum Code {
1654
+ UNSPECIFIED = 0;
1655
+ STARTED = 1;
1656
+ DONE = 2;
1657
+ }
1658
+
1659
+ Code code = 1;
1660
+ string message = 2;
1661
+ }
1662
+
1663
+ message Error {
1664
+ enum Code {
1665
+ UNSPECIFIED = 0;
1666
+ CANNOT_GET_STATE = 1;
1667
+ CANNOT_GET_OP_MODE = 2;
1668
+ CANNOT_SET_STATE = 3;
1669
+ CANNOT_SET_OP_MODE = 4;
1670
+ CANNOT_SET_STATE_OP_MODE = 5;
1671
+ FAULT_STATE = 6;
1672
+ NOT_SUPPORTED = 7;
1673
+ ALREADY_RUNNING = 8;
1674
+ ABORTED = 9;
1675
+ }
1676
+
1677
+ Code code = 1;
1678
+ string message = 2;
1679
+ }
1680
+
1681
+ uint32 device_address = 1;
1682
+ oneof status {
1683
+ Success success = 2;
1684
+ Error error = 3;
1685
+ }
1686
+ }
1687
+
1688
+ message FullAutoTuning {
1689
+ message Success {
1690
+ enum Code {
1691
+ UNSPECIFIED = 0;
1692
+ POSITION_STARTED = 1;
1693
+ POSITION_DONE = 2;
1694
+ VELOCITY_STARTED = 3;
1695
+ VELOCITY_DONE = 4;
1696
+ POSITION_STOPPING = 5;
1697
+ VELOCITY_STOPPING = 6;
1698
+ POSITION_STOPPED = 7;
1699
+ VELOCITY_STOPPED = 8;
1700
+ }
1701
+
1702
+ Code code = 1;
1703
+ string message = 2;
1704
+ }
1705
+
1706
+ message Error {
1707
+ enum Code {
1708
+ UNSPECIFIED = 0;
1709
+ PLANT_MODEL_INVALID = 1;
1710
+ PLANT_MODEL_NOT_FOUND = 2;
1711
+ POSITION_FAILED = 3;
1712
+ VELOCITY_FAILED = 4;
1713
+ NOT_SUPPORTED = 5;
1714
+ ALREADY_RUNNING = 6;
1715
+ NOT_RUNNING = 7;
1716
+ }
1717
+
1718
+ Code code = 1;
1719
+ string message = 2;
1720
+ }
1721
+
1722
+ message Progress {
1723
+ uint32 percentage = 1;
1724
+ string message = 2;
1725
+ }
1726
+
1727
+ uint32 device_address = 1;
1728
+ double damping_ratio = 2;
1729
+
1730
+ oneof settling_time_or_bandwidth {
1731
+ double settling_time = 3;
1732
+ double bandwidth = 4;
1733
+ }
1734
+
1735
+ oneof status {
1736
+ Success success = 5;
1737
+ Error error = 6;
1738
+ Progress progress = 7;
1739
+ }
1740
+ }
1741
+
1742
+ message CirculoEncoderConfiguration {
1743
+ message Success {
1744
+ enum Code {
1745
+ UNSPECIFIED = 0;
1746
+ STARTED = 1;
1747
+ DONE = 2;
1748
+ }
1749
+
1750
+ Code code = 1;
1751
+ string message = 2;
1752
+ }
1753
+
1754
+ message Error {
1755
+ enum Code {
1756
+ UNSPECIFIED = 0;
1757
+ ALREADY_RUNNING = 1;
1758
+ FAILED = 2;
1759
+ NOT_SUPPORTED = 3;
1760
+ }
1761
+
1762
+ Code code = 1;
1763
+ string message = 2;
1764
+ }
1765
+
1766
+ message Progress {
1767
+ uint32 percentage = 1;
1768
+ string message = 2;
1769
+ }
1770
+
1771
+ uint32 device_address = 1;
1772
+ uint32 encoder_ordinal = 2;
1773
+ oneof status {
1774
+ Success success = 3;
1775
+ Error error = 4;
1776
+ Progress progress = 5;
1777
+ }
1778
+ }
1779
+
1780
+ message OsCommand {
1781
+ message Success {
1782
+ enum Code {
1783
+ UNSPECIFIED = 0;
1784
+ STARTED = 1;
1785
+ DONE = 2;
1786
+ }
1787
+
1788
+ Code code = 1;
1789
+ string message = 2;
1790
+ }
1791
+
1792
+ message Error {
1793
+ enum Code {
1794
+ UNSPECIFIED = 0;
1795
+ NOT_ALLOWED = 1;
1796
+ ABORTED = 2;
1797
+ TIMEOUT = 3;
1798
+ UNSUPPORTED_OS_COMMAND = 4;
1799
+ ALREADY_RUNNING = 5;
1800
+ FAILED = 6;
1801
+ NOT_SUPPORTED = 7;
1802
+ }
1803
+
1804
+ Code code = 1;
1805
+ string message = 2;
1806
+ }
1807
+
1808
+ message Progress {
1809
+ uint32 percentage = 1;
1810
+ string message = 2;
1811
+ }
1812
+
1813
+ uint32 device_address = 1;
1814
+ bytes response = 2;
1815
+ oneof status {
1816
+ Success success = 3;
1817
+ Error error = 4;
1818
+ Progress progress = 5;
1819
+ }
1820
+ }
1821
+ }
1822
+ }