bug fix (missing return value) in PythonAPI
This commit is contained in:
parent
3be961eecf
commit
1ec86364de
1 changed files with 29 additions and 3 deletions
|
|
@ -305,9 +305,21 @@ class OpenMicroStageInterface:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def calibrate_joint(self, joint_index: int, save_result: bool):
|
def calibrate_joint(self, joint_index: int, save_result: bool):
|
||||||
cmd = f"M56 J{joint_index}"+(" S" if save_result else "")
|
"""
|
||||||
|
Calibrates the given joint and returns the measured data as three lists containing:
|
||||||
|
data[0]: list of motor angles
|
||||||
|
data[1]: list of electric field angles
|
||||||
|
data[2]: list of raw encoder counts
|
||||||
|
:param joint_index:
|
||||||
|
:param save_result:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
cmd = f"M56 J{joint_index} P"
|
||||||
|
if save_result: cmd += ' S'
|
||||||
res, msg = self.serial.send_command(cmd, 30)
|
res, msg = self.serial.send_command(cmd, 30)
|
||||||
return res
|
|
||||||
|
calibration_data = self._parse_table_data(msg, 3)
|
||||||
|
return res, calibration_data
|
||||||
|
|
||||||
def move_to(self, x, y, z, f, move_immediately=False, blocking=True, timeout=1):
|
def move_to(self, x, y, z, f, move_immediately=False, blocking=True, timeout=1):
|
||||||
"""
|
"""
|
||||||
|
|
@ -409,5 +421,19 @@ class OpenMicroStageInterface:
|
||||||
|
|
||||||
def send_command(self, cmd: str, timeout_s: float=5):
|
def send_command(self, cmd: str, timeout_s: float=5):
|
||||||
res, msg = self.serial.send_command(cmd, timeout_s)
|
res, msg = self.serial.send_command(cmd, timeout_s)
|
||||||
return res
|
return res, msg
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _parse_table_data(data_string, cols):
|
||||||
|
# Parse the data
|
||||||
|
data = [[] for _ in range(cols)]
|
||||||
|
|
||||||
|
for line in data_string.strip().splitlines():
|
||||||
|
parts = line.strip().split(',')
|
||||||
|
if len(parts) != cols:
|
||||||
|
continue # skip malformed lines
|
||||||
|
numbers = map(float, parts)
|
||||||
|
for i, n in enumerate(numbers):
|
||||||
|
data[i].append(n)
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue