API Documentation for dma03_driver
Class: DMA03Driver
Serial port I/O class for DMA-03 for Robot amplifier.
_close
()
_close(self)
Close the serial port.
_find_port_by_id
()
_find_port_by_id(self, vendor_id, product_id)
Find a serial port by a vendor ID and a product ID.
Args:
vendor_id
(str): The device vendor IDproduct_id
(str): The device product ID
Returns:
Union[str, None]
:str: The port device string like ‘/dev/ttyUSB0’.
None: VID or PID did not match the actual devoce connected.
_find_port_by_name
()
_find_port_by_name(self, product_name, serial_number=None, location=None)
Find a serial port by a device name and optionally by a device location.
Args:
product_name
(str): The product name of the amplifier.serial_number
(str, optional): The device serial number. Defaults to None.location
(str, optional): The device location like ‘1-2’. Defaults to None.
Returns:
Union[str, None]
:str: The port device string like ‘/dev/ttyUSB0’.
None: The args did not match the actual device connected.
_is_connected
()
_is_connected(self)
Return the serial port is connected or not.
Returns:
bool
: True if connected, False otherwise.
_open
()
_open(self, port='/dev/ttyUSB0', product_name='DMA-03B', timeout=1.0)
Open a serial port.
Args:
port
(str, optional): The device port. Defaults to ‘/dev/ttyUSB0’.product_name
(str, optional): Amplifier product name. Defaults to “DMA-03B”.timeout
(float, optional): Set a read timeout value in seconds. Defaults to 1.0.
_print_info
()
_print_info(self)
Print the serial port informations.
_recv_command
()
_recv_command(self, terminator=b'\n')
Read the serial port input buffer until the terminator.
Args:
terminator
(bytes, optional): The terminator to end reading. Defaults to b’ ‘.
Returns:
str
: The received and UTF-8 decoded data.
_reset_input_buffer
()
_reset_input_buffer(self)
Reset the serial port input buffer.
_send_command
()
_send_command(self, command_string)
Send command to the serial port write buffer with the command string.
Args:
command_string
(str): The command to write.
Returns:
int
: Number of bytes written.
Class: DMA03DriverForRobot
Command I/O class for DMA-03 for Robot amplifier.
__del__
()
__del__(self)
Destructor of this class instance.
__init__
()
__init__(self, debug=False, frequency=1000, init_zero=False, timeout=1.0, serial_number=None, location=None)
Construct DMA03DriverForRobot class instance.
Args:
debug
(bool, optional): True is for Debug mode, False is not. Defaults to False.frequency
(int, optional): Sensing frequency. Defaults to 1000.init_zero
(bool, optional): True to initialize as Zero forces. Defaults to False.timeout
(float, optional): The max time [sec] to wait data during read operation. Defaults to 1.0.serial_number
(str, optional): The device serial number to distinguish between multiple amplifiers. Defaults to None.location
(str, optional): The device location like ‘1-2’ to distinguish between multiple amplifiers. Defaults to None.
_calculate_eng_data
()
_calculate_eng_data(self, ad1, ad2, ad3)
Calculate the engineering data from signed int data with FS values.
Args:
ad1
(int): Channel 1 integer valuead2
(int): Channel 2 integer valuead3
(int): Channel 3 integer value
Returns:
Tuple[float, float, float]
:float: Channel 1 engineering data.
float: Channel 2 engineering data.
float: Channel 3 engineering data.
_data_conversion
()
_data_conversion(self)
Aquire and convert sensing data with thread.
_get_reply
()
_get_reply(self, command_string: str)
Send a command to the amplifier and get a reply for it.
Args:
command_string
(str): Command to send.
Returns:
str
: Reply for the command.
_ros_publish
()
_ros_publish(self)
Be overrided in a ROS node.
An empty function to override in a ROS node to publish a ROS topic after the data conversion.
Returns:
bool
: False
_to_signedint
()
_to_signedint(self, value: int, bits=16)
Convert an unsigned int to a signed int.
Converts an unsigned integer to its signed integer representation using two’s complement.
Args:
value
(int): The unsigned integer to convertbits
(int, optional): The bit width to interpret the value with. Defaults to 16.
Returns:
int
: The signed integer representation of the input value.
close
()
close(self)
Close the serial port.
Close the serial port after stopping the amplifier and the data conversion process.
get_data
()
get_data(self)
Get engineering data.
Returns:
Tuple[float, float, float, float]
:float: Time of reading data from the serial port.
float: Value of X-axis force.
float: Value of Y-axis force.
float: Value of Z-axis force.
get_for_robot
()
get_for_robot(self)
Get the amplifier has functions for robot usage or not.
Returns:
Tuple[str, bool]
:str: Reply for the command.
bool: True if for Robot, False if not for robot.
get_fs
()
get_fs(self)
Get a list of 3 int data of FS (Full Scale) from the amplifier.
Returns:
List[int]
: List of 3 int FS [X,Y,Z] data.
get_itf
()
get_itf(self)
Get a list of 3x3 float data of ITF from the amplifier.
ITF means Interference coefficients.
Returns:
list float
: List of 3x3 float ITF data
is_connected
()
is_connected(self)
Return the serial port is connected or not.
Returns:
bool
: True if connected, False otherwise.
set_for_robot
()
set_for_robot(self)
Set the amplifier to robot mode if available or to non-robot mode.
Returns:
str
: Reply for the command or error message if failure.
set_frequency
()
set_frequency(self, frequency: int)
Set sensing frequency to the amplifier.
Args:
frequency
(int): Freqency [Hz] of the amplifier sensing.
Returns:
bool
: True on success, False on failure.
Note:
The set data are Stored in non-volatile memory in the amplifier.
set_fs
()
set_fs(self, val_list: list[int])
Set 3 int data of FS (Full Scale) to the amplifier.
Args:
val_list
(list[int]): List of 3 float FS [X,Y,Z] data.
Returns:
bool
: True on success, False on failure.
Note:
The set data are stored in non-volatile memory in the amplifier.
set_itf
()
set_itf(self, val_list: list[float])
Set 3x3 float data for ITF in the amplifier.
ITF means Interference coefficients.
Args:
val_list
(list[float]): list of 3x3 float for ITF to set in the amplifier.
Returns:
bool
: True on success, False on failure.
Note:
The set data are stored in non-volatile memory in the amplifier.
set_zero
()
set_zero(self)
Start zero force adjustment and store them.
Returns:
str
: Reply for the command.
Note:
The adjustment takes around 2 seconds after sending the command.
The adjustment data are stored in non-volatile memory in the amplifier.
start
()
start(self)
Send START command to the amplifire and start the data conversion.
Returns:
str
: Reply for the command.
stop
()
stop(self)
Send STOP command to the amplifier and stop the data conversion.
Returns:
str
: Reply for the command.