symetrie-hexapod 0.17.3__tar.gz → 0.17.4__tar.gz

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 (34) hide show
  1. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/PKG-INFO +1 -1
  2. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/pyproject.toml +1 -1
  3. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/dynalpha.py +1 -1
  4. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/hexapod.py +47 -45
  5. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/joran.py +2 -2
  6. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/joran_cs.py +1 -1
  7. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/joran_protocol.py +1 -1
  8. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/puna_cs.py +1 -1
  9. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/puna_ui.py +3 -2
  10. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda_cs.py +1 -1
  11. symetrie_hexapod-0.17.4/src/symetrie_hexapod/settings.yaml +60 -0
  12. symetrie_hexapod-0.17.3/src/symetrie_hexapod/settings.yaml +0 -15
  13. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/.gitignore +0 -0
  14. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/README.md +0 -0
  15. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/__init__.py +0 -0
  16. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/__init__.py +0 -0
  17. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/alpha.py +0 -0
  18. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/hexapod_ui.py +0 -0
  19. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/joran.yaml +0 -0
  20. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/joran_ui.py +0 -0
  21. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/pmac.py +0 -0
  22. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/pmac_regex.py +0 -0
  23. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/puna.py +0 -0
  24. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/puna.yaml +0 -0
  25. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/puna_protocol.py +0 -0
  26. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/punaplus.py +0 -0
  27. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda.py +0 -0
  28. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda.yaml +0 -0
  29. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda_devif.py +0 -0
  30. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda_protocol.py +0 -0
  31. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/egse/hexapod/symetrie/zonda_ui.py +0 -0
  32. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/symetrie_hexapod/__init__.py +0 -0
  33. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/symetrie_hexapod/cgse_explore.py +0 -0
  34. {symetrie_hexapod-0.17.3 → symetrie_hexapod-0.17.4}/src/symetrie_hexapod/cgse_services.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: symetrie-hexapod
3
- Version: 0.17.3
3
+ Version: 0.17.4
4
4
  Summary: Symetrie Hexapod implementation for CGSE
5
5
  Author: IvS KU Leuven
6
6
  Maintainer-email: Rik Huygen <rik.huygen@kuleuven.be>, Sara Regibo <sara.regibo@kuleuven.be>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "symetrie-hexapod"
3
- version = "0.17.3"
3
+ version = "0.17.4"
4
4
  description = "Symetrie Hexapod implementation for CGSE"
5
5
  authors = [
6
6
  {name = "IvS KU Leuven"}
@@ -39,7 +39,7 @@ from egse.system import Timer
39
39
  from egse.system import wait_until
40
40
 
41
41
  LOGGER = logging.getLogger(__name__)
42
- PUNA_PLUS = Settings.load("PUNA Alpha+ Controller")
42
+ PUNA_PLUS = Settings.load("Hexapod Controller")["PUNA_PLUS"]
43
43
 
44
44
  # The following constants represent the index into the GENERAL_STATE list and are used in the code
45
45
  # to match the name of a flag in the general_state.
@@ -29,7 +29,7 @@ class HexapodSimulator:
29
29
  self.rot_config = "sxyz"
30
30
 
31
31
  # Configure the Master Reference Frame
32
- self.cs_master = ReferenceFrame.createMaster()
32
+ self.cs_master = ReferenceFrame.create_master()
33
33
 
34
34
  # Configure the Machine Coordinate System, i.e. cs_mec [ref:cs_master]
35
35
  self.cs_machine = ReferenceFrame(
@@ -69,7 +69,7 @@ class HexapodSimulator:
69
69
  # and we define this
70
70
  # from the transformation user -> object.
71
71
 
72
- tf_user_to_object = self.cs_user.getActiveTransformationTo(self.cs_object)
72
+ tf_user_to_object = self.cs_user.get_active_transformation_to(self.cs_object)
73
73
  self.cs_object_in_user = ReferenceFrame(
74
74
  tf_user_to_object, rot_config=self.rot_config, ref=self.cs_user, name="Object[User]"
75
75
  )
@@ -81,15 +81,15 @@ class HexapodSimulator:
81
81
  # We link this cs_object_in_user to cs_object with the identity transformation,
82
82
  # which connects them together
83
83
 
84
- self.cs_object_in_user.addLink(self.cs_object, transformation=identity)
84
+ self.cs_object_in_user.add_link(self.cs_object, transformation=identity)
85
85
 
86
86
  # The User Coordinate System is linked to the Machine Coordinate System
87
87
 
88
- self.cs_machine.addLink(self.cs_user, transformation=self.cs_user.transformation)
88
+ self.cs_machine.add_link(self.cs_user, transformation=self.cs_user.transformation)
89
89
 
90
90
  # The Object Coordinate System is linked to the Platform Coordinate System
91
91
 
92
- self.cs_platform.addLink(self.cs_object, transformation=self.cs_object.transformation)
92
+ self.cs_platform.add_link(self.cs_object, transformation=self.cs_object.transformation)
93
93
 
94
94
  # Keep a record if the homing() command has been executed.
95
95
 
@@ -104,10 +104,10 @@ class HexapodSimulator:
104
104
 
105
105
  # Print out some debugging information
106
106
 
107
- logger.debug(f"Linked to cs_object_in_user {[i.name for i in self.cs_object_in_user.linkedTo]}")
108
- logger.debug(f"Linked to cs_object {[i.name for i in self.cs_object.linkedTo]}")
109
- logger.debug(f"Linked to cs_platform {[i.name for i in self.cs_platform.linkedTo]}")
110
- logger.debug(f"Linked to cs_machine {[i.name for i in self.cs_machine.linkedTo or {}]}")
107
+ logger.debug(f"Linked to cs_object_in_user {[i.name for i in self.cs_object_in_user.linked_to]}")
108
+ logger.debug(f"Linked to cs_object {[i.name for i in self.cs_object.linked_to]}")
109
+ logger.debug(f"Linked to cs_platform {[i.name for i in self.cs_platform.linked_to]}")
110
+ logger.debug(f"Linked to cs_machine {[i.name for i in self.cs_machine.linked_to or {}]}")
111
111
 
112
112
  def is_simulator(self):
113
113
  return True
@@ -177,23 +177,23 @@ class HexapodSimulator:
177
177
 
178
178
  # Remove the old links between user and machine CS, and between Object in User and Object CS
179
179
 
180
- self.cs_machine.removeLink(self.cs_user)
181
- self.cs_object_in_user.removeLink(self.cs_object)
180
+ self.cs_machine.remove_link(self.cs_user)
181
+ self.cs_object_in_user.remove_link(self.cs_object)
182
182
 
183
183
  # Redefine the User Coordinate System
184
184
 
185
- self.cs_user = ReferenceFrame.fromTranslationRotation(
185
+ self.cs_user = ReferenceFrame.from_translation_rotation(
186
186
  translation,
187
187
  rotation,
188
- rot_config=self.rot_config,
189
- ref=self.cs_machine,
188
+ rotation_config=self.rot_config,
189
+ reference_frame=self.cs_machine,
190
190
  name="User[Machine]",
191
191
  degrees=degrees,
192
192
  )
193
193
 
194
194
  # Redefine the Object in User Coordinate System
195
195
 
196
- tf_user_to_object = self.cs_user.getActiveTransformationTo(self.cs_object)
196
+ tf_user_to_object = self.cs_user.get_active_transformation_to(self.cs_object)
197
197
  self.cs_object_in_user = ReferenceFrame(
198
198
  tf_user_to_object, rot_config=self.rot_config, ref=self.cs_user, name="Object[User]"
199
199
  )
@@ -205,8 +205,8 @@ class HexapodSimulator:
205
205
  # User and Machine CS are invariant, reset the transformation. User in Object is
206
206
  # identical to Object
207
207
 
208
- self.cs_machine.addLink(self.cs_user, transformation=self.cs_user.transformation)
209
- self.cs_object_in_user.addLink(self.cs_object, transformation=identity)
208
+ self.cs_machine.add_link(self.cs_user, transformation=self.cs_user.transformation)
209
+ self.cs_object_in_user.add_link(self.cs_object, transformation=identity)
210
210
 
211
211
  # Redefine the Object Coordinates System
212
212
 
@@ -216,21 +216,21 @@ class HexapodSimulator:
216
216
 
217
217
  # Remove the old links between user and machine CS, and between Object in User and Object CS
218
218
 
219
- self.cs_platform.removeLink(self.cs_object)
220
- self.cs_object_in_user.removeLink(self.cs_object)
219
+ self.cs_platform.remove_link(self.cs_object)
220
+ self.cs_object_in_user.remove_link(self.cs_object)
221
221
 
222
- self.cs_object = ReferenceFrame.fromTranslationRotation(
222
+ self.cs_object = ReferenceFrame.from_translation_rotation(
223
223
  translation,
224
224
  rotation,
225
- rot_config=self.rot_config,
226
- ref=self.cs_platform,
225
+ rotation_config=self.rot_config,
226
+ reference_frame=self.cs_platform,
227
227
  name="Object[Platform]",
228
228
  degrees=degrees,
229
229
  )
230
230
 
231
231
  # Redefine the Object in User Coordinate System
232
232
 
233
- tf_user_to_object = self.cs_user.getActiveTransformationTo(self.cs_object)
233
+ tf_user_to_object = self.cs_user.get_active_transformation_to(self.cs_object)
234
234
  self.cs_object_in_user = ReferenceFrame(
235
235
  tf_user_to_object, rot_config=self.rot_config, ref=self.cs_user, name="Object[User]"
236
236
  )
@@ -238,16 +238,16 @@ class HexapodSimulator:
238
238
  # Object CS and Platform CS are invariant, reset the transformation. User in Object is
239
239
  # identical to Object
240
240
 
241
- self.cs_platform.addLink(self.cs_object, transformation=self.cs_object.transformation)
242
- self.cs_object_in_user.addLink(self.cs_object, transformation=identity)
241
+ self.cs_platform.add_link(self.cs_object, transformation=self.cs_object.transformation)
242
+ self.cs_object_in_user.add_link(self.cs_object, transformation=identity)
243
243
 
244
244
  return 0
245
245
 
246
246
  def get_coordinates_systems(self):
247
247
  degrees = True
248
248
 
249
- t_user, r_user = self.cs_user.getTranslationRotationVectors(degrees=degrees)
250
- t_object, r_object = self.cs_object.getTranslationRotationVectors(degrees=degrees)
249
+ t_user, r_user = self.cs_user.get_translation_rotation_vectors(degrees=degrees)
250
+ t_object, r_object = self.cs_object.get_translation_rotation_vectors(degrees=degrees)
251
251
 
252
252
  return list(np.concatenate((t_user, r_user, t_object, r_object)))
253
253
 
@@ -264,13 +264,13 @@ class HexapodSimulator:
264
264
  # We set a new transformation for cs_object_in_user which will update our model,
265
265
  # because cs_object and cs_object_in_user are linked.
266
266
 
267
- self.cs_object_in_user.setTranslationRotation(
267
+ self.cs_object_in_user.set_translation_rotation(
268
268
  translation,
269
269
  rotation,
270
- rot_config=self.rot_config,
270
+ rotation_config=self.rot_config,
271
271
  active=True,
272
272
  degrees=True,
273
- preserveLinks=True,
273
+ preserve_links=True,
274
274
  )
275
275
 
276
276
  return 0
@@ -279,13 +279,13 @@ class HexapodSimulator:
279
279
  tr_rel = np.array([tx, ty, tz])
280
280
  rot_rel = np.array([rx, ry, rz])
281
281
 
282
- self.cs_object.applyTranslationRotation(
282
+ self.cs_object.apply_translation_rotation(
283
283
  tr_rel,
284
284
  rot_rel,
285
- rot_config=self.rot_config,
285
+ rotation_config=self.rot_config,
286
286
  active=True,
287
287
  degrees=True,
288
- preserveLinks=True,
288
+ preserve_links=True,
289
289
  )
290
290
 
291
291
  def move_relative_user(self, tx, ty, tz, rx, ry, rz):
@@ -306,7 +306,7 @@ class HexapodSimulator:
306
306
 
307
307
  # Derotation of cs_object --> cs_user
308
308
 
309
- derotation = self.cs_object.getActiveTransformationTo(self.cs_user)
309
+ derotation = self.cs_object.get_active_transformation_to(self.cs_user)
310
310
  derotation[:3, 3] = [0, 0, 0]
311
311
 
312
312
  # Reverse rotation
@@ -322,13 +322,15 @@ class HexapodSimulator:
322
322
 
323
323
  import egse.coordinates.transform3d_addon as t3add
324
324
 
325
- rotation = t3add.translationRotationToTransformation([0, 0, 0], [rx, ry, rz], rot_config=self.rot_config)
325
+ rotation = t3add.translation_rotation_to_transformation(
326
+ [0, 0, 0], [rx, ry, rz], rotation_config=self.rot_config
327
+ )
326
328
 
327
329
  transformation = derotation @ translation @ rerotation @ rotation
328
330
 
329
331
  # Adapt our model
330
332
 
331
- self.cs_object.applyTransformation(transformation)
333
+ self.cs_object.apply_transformation(transformation)
332
334
 
333
335
  def check_absolute_movement(self, tx, ty, tz, rx, ry, rz):
334
336
  rc = 0
@@ -360,15 +362,15 @@ class HexapodSimulator:
360
362
  return 0, {}
361
363
 
362
364
  def get_user_positions(self):
363
- t, r = self.cs_user.getActiveTranslationRotationVectorsTo(self.cs_object_in_user)
365
+ t, r = self.cs_user.get_active_translation_rotation_vectors_to(self.cs_object_in_user)
364
366
 
365
367
  pos = list(np.concatenate((t, r)))
366
368
 
367
369
  return pos
368
370
 
369
371
  def get_machine_positions(self):
370
- t, r = self.cs_platform.getTranslationRotationVectors()
371
- t, r = self.cs_machine.getActiveTranslationRotationVectorsTo(self.cs_platform)
372
+ t, r = self.cs_platform.get_translation_rotation_vectors()
373
+ t, r = self.cs_machine.get_active_translation_rotation_vectors_to(self.cs_platform)
372
374
 
373
375
  pos = list(np.concatenate((t, r)))
374
376
 
@@ -398,13 +400,13 @@ class HexapodSimulator:
398
400
  translation = np.array([0, 0, -20])
399
401
  rotation = np.array([0, 0, 0])
400
402
 
401
- self.cs_platform.setTranslationRotation(
403
+ self.cs_platform.set_translation_rotation(
402
404
  translation,
403
405
  rotation,
404
- rot_config=self.rot_config,
406
+ rotation_config=self.rot_config,
405
407
  active=True,
406
408
  degrees=True,
407
- preserveLinks=True,
409
+ preserve_links=True,
408
410
  )
409
411
 
410
412
  return 0
@@ -418,13 +420,13 @@ class HexapodSimulator:
418
420
  translation = np.array([0, 0, 0])
419
421
  rotation = np.array([0, 0, 0])
420
422
 
421
- self.cs_platform.setTranslationRotation(
423
+ self.cs_platform.set_translation_rotation(
422
424
  translation,
423
425
  rotation,
424
- rot_config=self.rot_config,
426
+ rotation_config=self.rot_config,
425
427
  active=True,
426
428
  degrees=True,
427
- preserveLinks=True,
429
+ preserve_links=True,
428
430
  )
429
431
 
430
432
  # As a work around for the bug in issue #58, we determine the transformation from
@@ -19,8 +19,8 @@ from egse.zmq_ser import connect_address
19
19
 
20
20
  logger = logging.getLogger(__name__)
21
21
 
22
- JORAN_SETTINGS = Settings.load("JORAN Controller")
23
- CTRL_SETTINGS = Settings.load("Hexapod JORAN Control Server")
22
+ JORAN_SETTINGS = Settings.load("Hexapod Controller")["JORAN"]
23
+ CTRL_SETTINGS = Settings.load("Hexapod Control Server")["JORAN"]
24
24
  DEVICE_SETTINGS = Settings.load(filename="joran.yaml")
25
25
 
26
26
 
@@ -40,7 +40,7 @@ from prometheus_client import start_http_server
40
40
 
41
41
  logger = logging.getLogger(__name__)
42
42
 
43
- CTRL_SETTINGS = Settings.load("Hexapod JORAN Control Server")
43
+ CTRL_SETTINGS = Settings.load("Hexapod Control Server")["JORAN"]
44
44
 
45
45
 
46
46
  class JoranControlServer(ControlServer):
@@ -15,7 +15,7 @@ from egse.zmq_ser import bind_address
15
15
 
16
16
  logger = logging.getLogger(__name__)
17
17
 
18
- ctrl_settings = Settings.load("Hexapod JORAN Control Server")
18
+ ctrl_settings = Settings.load("Hexapod Control Server")["JORAN"]
19
19
  joran_settings = Settings.load(filename="joran.yaml")
20
20
 
21
21
 
@@ -36,7 +36,7 @@ from egse.settings import Settings
36
36
  from egse.storage import store_housekeeping_information
37
37
  from egse.zmq_ser import connect_address
38
38
 
39
- CTRL_SETTINGS = Settings.load("Hexapod Control Server")
39
+ CTRL_SETTINGS = Settings.load("Hexapod Control Server")["PUNA"]
40
40
 
41
41
 
42
42
  class PunaControlServer(ControlServer):
@@ -29,6 +29,8 @@ from PyQt5.QtWidgets import QFrame
29
29
  from PyQt5.QtWidgets import QHBoxLayout
30
30
  from PyQt5.QtWidgets import QMessageBox
31
31
  from PyQt5.QtWidgets import QVBoxLayout
32
+ from dotenv import find_dotenv
33
+ from dotenv import load_dotenv
32
34
 
33
35
  from egse.gui import show_warning_message
34
36
  from egse.gui.led import Indic
@@ -48,11 +50,10 @@ from egse.process import ProcessStatus
48
50
  from egse.resource import get_resource
49
51
  from egse.settings import Settings
50
52
  from egse.system import do_every
51
- from dotenv import load_dotenv
52
53
 
53
54
  MODULE_LOGGER = logging.getLogger(__name__)
54
55
 
55
- load_dotenv(override=True)
56
+ load_dotenv(find_dotenv(usecwd=True), override=True)
56
57
 
57
58
 
58
59
  class DeviceControllerType(IntEnum):
@@ -36,7 +36,7 @@ from egse.settings import Settings
36
36
  from egse.storage import store_housekeeping_information
37
37
  from egse.zmq_ser import connect_address
38
38
 
39
- CTRL_SETTINGS = Settings.load("Hexapod Control Server")
39
+ CTRL_SETTINGS = Settings.load("Hexapod Control Server")["ZONDA"]
40
40
 
41
41
 
42
42
  class ZondaControlServer(ControlServer):
@@ -0,0 +1,60 @@
1
+ PACKAGES:
2
+ SYMETRIE_HEXAPOD: Device driver for the Symétrie Hexapods PUNA, ZONDA, and JORAN
3
+
4
+ Hexapod Controller:
5
+ PUNA_PLUS:
6
+ HOSTNAME: localhost
7
+ PORT: 1025
8
+ CONTROLLER_TYPE: alpha_plus
9
+ DEVICE_NAME: Puna Hexapod
10
+ DEVICE_TYPE: PUNA
11
+ user_name: provide username in local settings
12
+ password: provide password in local settings
13
+
14
+ ZONDA:
15
+ HOSTNAME: localhost
16
+ PORT: 1025
17
+ CONTROLLER_TYPE: alpha_plus
18
+ DEVICE_NAME: Zonda Hexapod
19
+ DEVICE_TYPE: ZONDA
20
+
21
+ JORAN:
22
+ HOSTNAME: localhost
23
+ PORT: 1025
24
+ CONTROLLER_TYPE: alpha_plus
25
+ DEVICE_NAME: Joran Hexapod
26
+ DEVICE_TYPE: JORAN
27
+
28
+ Hexapod Control Server:
29
+ PUNA:
30
+ SERVICE_TYPE: puna
31
+ PROTOCOL: tcp
32
+ HOSTNAME: localhost
33
+ COMMANDING_PORT: 0
34
+ MONITORING_PORT: 0
35
+ SERVICE_PORT: 0
36
+ METRICS_PORT: 0
37
+ PUNA_PLUS:
38
+ SERVICE_TYPE: puna
39
+ PROTOCOL: tcp
40
+ HOSTNAME: localhost
41
+ COMMANDING_PORT: 0
42
+ MONITORING_PORT: 0
43
+ SERVICE_PORT: 0
44
+ METRICS_PORT: 0
45
+ ZONDA:
46
+ SERVICE_TYPE: zonda
47
+ PROTOCOL: tcp
48
+ HOSTNAME: localhost
49
+ COMMANDING_PORT: 0
50
+ MONITORING_PORT: 0
51
+ SERVICE_PORT: 0
52
+ METRICS_PORT: 0
53
+ JORAN:
54
+ SERVICE_TYPE: joran
55
+ PROTOCOL: tcp
56
+ HOSTNAME: localhost
57
+ COMMANDING_PORT: 0
58
+ MONITORING_PORT: 0
59
+ SERVICE_PORT: 0
60
+ METRICS_PORT: 0
@@ -1,15 +0,0 @@
1
- PACKAGES:
2
- SYMETRIE_HEXAPOD: Device driver for the Symétrie Hexapods PUNA, ZONDA, and JORAN
3
-
4
- PUNA Alpha+ Controller:
5
- user_name: provide username in local settings
6
- password: provide password in local settings
7
-
8
- Hexapod Control Server:
9
- SERVICE_TYPE: puna
10
- PROTOCOL: tcp
11
- HOSTNAME: localhost # The hostname that client shall connect to, e.g. on the same machine
12
- COMMANDING_PORT: 0 # The port on which the controller listens to commands - REQ-REP
13
- MONITORING_PORT: 0 # The port on which the controller sends periodic status information of the device - PUB-SUB
14
- SERVICE_PORT: 0 # The port on which the controller listens for configuration and administration - REQ-REP
15
- METRICS_PORT: 0 # The HTTP port where Prometheus will connect to for retrieving metrics