|
@@ -25,15 +25,16 @@ def get_serial_ports():
|
|
|
|
|
|
class FuboPneumaticFingerClient:
|
|
|
"""富伯客户端"""
|
|
|
-
|
|
|
- FLEX_CMD = b"F"
|
|
|
- EXTEND_CMD = b"E"
|
|
|
- BALL_CMD = b"B"
|
|
|
- CYLINDER_CMD = b"C"
|
|
|
- DOUBLE_CMD = b"D"
|
|
|
- TREBLE_CMD = b"T"
|
|
|
- RELEASE_CMD = b"R"
|
|
|
-
|
|
|
+
|
|
|
+ COMMAND_TABLE = {
|
|
|
+ 'release': b"R",
|
|
|
+ 'cylinder': b"C",
|
|
|
+ 'ball': b"B",
|
|
|
+ 'flex': b"F",
|
|
|
+ 'double': b"D",
|
|
|
+ 'treble': b"T",
|
|
|
+ 'extend': b"E",
|
|
|
+ }
|
|
|
def __init__(self, init_params=None):
|
|
|
self.baud_rate = 9600
|
|
|
self.data_bite = 8
|
|
@@ -71,40 +72,10 @@ class FuboPneumaticFingerClient:
|
|
|
logger.warning(warning_info)
|
|
|
return 0
|
|
|
|
|
|
- def release(self):
|
|
|
- self.ser.write(self.RELEASE_CMD)
|
|
|
- return self.ser.read()
|
|
|
-
|
|
|
- def extend(self):
|
|
|
- self.ser.write(self.EXTEND_CMD)
|
|
|
- return self.ser.read()
|
|
|
-
|
|
|
- def reconnect(self):
|
|
|
- self.close()
|
|
|
- return self.connect()
|
|
|
-
|
|
|
- def start(self, model=None):
|
|
|
- if (model == "flex") or (model is None):
|
|
|
- self.ser.write(self.FLEX_CMD)
|
|
|
- elif model == "ball":
|
|
|
- self.ser.write(self.BALL_CMD)
|
|
|
- elif model == "cylinder":
|
|
|
- self.ser.write(self.CYLINDER_CMD)
|
|
|
- elif model == "double":
|
|
|
- self.ser.write(self.DOUBLE_CMD)
|
|
|
- elif model == "treble":
|
|
|
- self.ser.write(self.TREBLE_CMD)
|
|
|
+ def start(self, command):
|
|
|
+ self.ser.write(self.COMMAND_TABLE[command])
|
|
|
return self.ser.read()
|
|
|
|
|
|
- def start_round(self, model=None, time_interval=5):
|
|
|
- self.start(model)
|
|
|
- time.sleep(time_interval)
|
|
|
- self.extend()
|
|
|
- return 1
|
|
|
-
|
|
|
- def stop(self):
|
|
|
- return 1
|
|
|
-
|
|
|
def status(self):
|
|
|
status = {"is_connected": self.is_connected}
|
|
|
return status
|