Skip to main content

Data Structures

1 xCoreSDK Error Code ErrorCode

int value_                              # Error code value
String^ message_ # Error message

2 Robot Basic Information, Loaded After Establishing Robot Connection Info

String^ id                              # Robot uid, can be used to distinguish connected robots
String^ mac # Mac address
String^ version # Controller version
String^ type # Robot model name
Int32 joint_num # Number of axes

3 Coordinate System Frame

array<double>^ trans                    # Translation [X, Y, Z], unit: meters
array<double>^ rpy # Euler angles [Rx, Ry, Rz], unit: radians
array<double>^ quat # Quaternion [x, y, z, w], read-only

4 Cartesian Point CartesianPosition

Type type                               # Offset type
Frame^ frame # Offset relative to specified tool/workpiece coordinate system
double elbow # Elbow angle, applicable to 7-axis robots, unit: radians
List<int>^ confData # Axis configuration data, [cf1, cf2, cf3, cf4, cf5, cf6, cf7, cfx]
List<double>^ external # External joint values, unit: radians|meters. Rail unit is meters

5 Joint Point JointPosition

List<double>^ joints                    # Joint angle values, unit: radians
List<double>^ external # External joint values, unit: radians|meters. Rail unit is meters

6 Non-real-time Motion Command MoveCommand

CartesianPosition^ cartTarget           # Target Cartesian point
JointPosition^ jointTarget # Target joint point
CartesianPosition^ auxPoint # Auxiliary point
double speed # Robot end maximum linear speed, unit mm/s. See setDefaultSpeed
double jointSpeed # Effective when >=0; when <0, still use joint speed percentage calculated from speed, used for joint type commands, range [0, 1].
double rotSpeed # Effective when >=0; when <0, rotation speed defaults to 200°/s spatial rotation speed, used for end type commands, unit rad/s.
double zone # Turn zone radius size, unit mm. See setDefaultZone
String^ customInfo # Custom information, can be returned in motion information feedback
List<double>^ args # Other motion command parameters

7 Load Information Load

double mass                             # Load mass, unit: kilograms
array<double>^ cog # Center of mass [x, y, z], unit: meters
array<double>^ inertia # Inertia [ix, iy, iz, ixy, ixz, iyz], unit: kg·m²

8 State List StateList

JointPosition^ jointPos                 # Joint position
CartesianPosition^ cartPos # Cartesian position
List<bool>^ di # Digital input signals
List<bool>^ do # Digital output signals
List<double>^ ai # Analog input signals
List<double>^ ao # Analog output signals
OperateMode opMode # Operation mode
PowerState pwrState # Power state
OperationState opState # Operation state
StopLevel stopLevel # Stop level
float speedRatio # Speed ratio
float curJntSpeed # Current joint speed
array<double>^ jointVel # Joint velocities
array<double>^ jointTorque # Joint torques
array<double>^ extJoints # External joint positions
array<double>^ extJointsVel # External joint velocities
array<double>^ extJointsTorque # External joint torques

9 Tool/Workpiece Set Toolset

WorkToolInfo^ tool                      # Tool information
WorkToolInfo^ wobj # Workpiece information

10 Coordinate System Calibration Result FrameCalibrationResult

Frame^ frame                            # Calibration result
array<double>^ error # Calibration error

11 Log Information LogInfo

initonly int id                         # Log ID
String^ timestamp # Date and time
String^ logText # Log content
String^ repairHint # Repair hint

12 RL Project Information RLProjectInfo

String^ name                            # Project name
List<String^>^ taskList # Task name list

13 Tool/Workpiece Information WorkToolInfo

String^ name                            # Name
String^ alias # Description
bool robotHeld # Whether held by robot
Frame^ pos # Pose
Load^ load # Load

14 Keypad State KeyPadState

bool key1_state ~ key7_state            # End keypad keys 1~7

15 CAN Frame CANFrame

int frame_id                            # Frame ID
int frame_format # Frame format
int frame_type # Frame type
array<UInt16>^ data # Payload (interpreted as uint8/uint16 by data_type)
int frame_valid_length # Valid length

16 EtherCAT Slave Info SlaveInfo

UInt32 vendorId
UInt32 productCode
UInt32 reversionNumber
UInt16 slaveAddr
UInt32 slaveId
UInt16 alStatus
String^ slaveName

17 SDO Data SDOData

int index
int sub_index
int length
int over_time
int wait_time # ms, default 0
int print_data # 1 to print on controller, default 0
array<Byte>^ data # Payload up to 50 bytes