libximc  2.9.8
ximc.h
См. документацию.
1 #ifndef INC_XIMC_H
2 #define INC_XIMC_H
3 
19 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
20  #define XIMC_API __stdcall
21 #else
22  #ifdef LIBXIMC_EXPORTS
23  #define XIMC_API __attribute__((visibility("default")))
24  #else
25  #define XIMC_API
26  #endif
27 #endif
28 
33 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
34  #define XIMC_CALLCONV __stdcall
35 #else
36  #define XIMC_CALLCONV
37 #endif
38 
43 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
44 #define XIMC_RETTYPE unsigned int
45 #else
46 #define XIMC_RETTYPE void*
47 #endif
48 
49 
50 #if !defined(XIMC_NO_STDINT)
51 
52 #if ( (defined(_MSC_VER) && (_MSC_VER < 1600)) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT)) && !defined(MATLAB_IMPORT)
53 // msvc types burden
54 typedef __int8 int8_t;
55 typedef __int16 int16_t;
56 typedef __int32 int32_t;
57 typedef __int64 int64_t;
58 typedef unsigned __int8 uint8_t;
59 typedef unsigned __int16 uint16_t;
60 typedef unsigned __int32 uint32_t;
61 typedef unsigned __int64 uint64_t;
62 #else
63 #include <stdint.h>
64 #endif
65 
66 /* labview doesn't speak C99 */
67 #if defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT)
68 typedef unsigned __int64 ulong_t;
69 typedef __int64 long_t;
70 #else
71 typedef unsigned long long ulong_t;
72 typedef long long long_t;
73 #endif
74 
75 #endif
76 
77 #include <time.h>
78 
79 #if defined(__cplusplus)
80 extern "C"
81 {
82 #endif
83 
84 
93  typedef int device_t;
94 
103  typedef int result_t;
104 
113  #if defined(_WIN64) || defined(__LP64__) || defined(LABVIEW64_IMPORT)
114  typedef uint64_t device_enumeration_t;
115  #else
116  typedef uint32_t device_enumeration_t;
117  #endif
118  //typedef device_enumeration_t* pdevice_enumeration_t;
119 
128 #define device_undefined -1
129 
138 
147 #define result_ok 0
148 
157 #define result_error -1
158 
167 #define result_not_implemented -2
168 
177 #define result_value_error -3
178 
187 #define result_nodevice -4
188 
190 
199 
208 #define LOGLEVEL_ERROR 0x01
209 
217 #define LOGLEVEL_WARNING 0x02
218 
226 #define LOGLEVEL_INFO 0x03
227 
235 #define LOGLEVEL_DEBUG 0x04
236 
237 
238 
246  typedef struct calibration_t
247  {
248  double A;
249  unsigned int MicrostepMode;
250  } calibration_t;
251 
260  {
261  uint32_t ipv4;
262  char nodename[16];
263  uint32_t axis_state;
264  char locker_username[16];
265  char locker_nodename[16];
266  time_t locked_time;
268 
269 
270 
272 #define LIBXIMC_VERSION 2.9.8
273 
277 #define LIBXIMC_PROTOCOL_VERSION 17.2
278 
281 /*
282  ------------------------------------------
283  BEGIN OF GENERATED struct declarations
284  ------------------------------------------
285 */
286 
296 #define ENUMERATE_PROBE 0x01
297 #define ENUMERATE_ALL_COM 0x02
298 #define ENUMERATE_NETWORK 0x04
300 
301 
317 #define MOVE_STATE_MOVING 0x01
318 #define MOVE_STATE_TARGET_SPEED 0x02
319 #define MOVE_STATE_ANTIPLAY 0x04
321 
322 
336 #define EEPROM_PRECEDENCE 0x01
338 
339 
355 #define PWR_STATE_UNKNOWN 0x00
356 #define PWR_STATE_OFF 0x01
357 #define PWR_STATE_NORM 0x03
358 #define PWR_STATE_REDUCT 0x04
359 #define PWR_STATE_MAX 0x05
361 
362 
380 #define STATE_CONTR 0x0003F
381 #define STATE_ERRC 0x00001
382 #define STATE_ERRD 0x00002
383 #define STATE_ERRV 0x00004
384 #define STATE_EEPROM_CONNECTED 0x00010
385 #define STATE_IS_HOMED 0x00020
386 #define STATE_SECUR 0x3FFC0
387 #define STATE_ALARM 0x00040
388 #define STATE_CTP_ERROR 0x00080
389 #define STATE_POWER_OVERHEAT 0x00100
390 #define STATE_CONTROLLER_OVERHEAT 0x00200
391 #define STATE_OVERLOAD_POWER_VOLTAGE 0x00400
392 #define STATE_OVERLOAD_POWER_CURRENT 0x00800
393 #define STATE_OVERLOAD_USB_VOLTAGE 0x01000
394 #define STATE_LOW_USB_VOLTAGE 0x02000
395 #define STATE_OVERLOAD_USB_CURRENT 0x04000
396 #define STATE_BORDERS_SWAP_MISSET 0x08000
397 #define STATE_LOW_POWER_VOLTAGE 0x10000
398 #define STATE_H_BRIDGE_FAULT 0x20000
399 #define STATE_CURRENT_MOTOR_BITS 0xC0000
400 #define STATE_CURRENT_MOTOR0 0x00000
401 #define STATE_CURRENT_MOTOR1 0x40000
402 #define STATE_CURRENT_MOTOR2 0x80000
403 #define STATE_CURRENT_MOTOR3 0xC0000
405 
406 
424 #define STATE_DIG_SIGNAL 0xFFFF
425 #define STATE_RIGHT_EDGE 0x0001
426 #define STATE_LEFT_EDGE 0x0002
427 #define STATE_BUTTON_RIGHT 0x0004
428 #define STATE_BUTTON_LEFT 0x0008
429 #define STATE_GPIO_PINOUT 0x0010
430 #define STATE_GPIO_LEVEL 0x0020
431 #define STATE_HALL_A 0x0040
432 #define STATE_HALL_B 0x0080
433 #define STATE_HALL_C 0x0100
434 #define STATE_BRAKE 0x0200
435 #define STATE_REV_SENSOR 0x0400
436 #define STATE_SYNC_INPUT 0x0800
437 #define STATE_SYNC_OUTPUT 0x1000
438 #define STATE_ENC_A 0x2000
439 #define STATE_ENC_B 0x4000
441 
442 
458 #define ENC_STATE_ABSENT 0x00
459 #define ENC_STATE_UNKNOWN 0x01
460 #define ENC_STATE_MALFUNC 0x02
461 #define ENC_STATE_REVERS 0x03
462 #define ENC_STATE_OK 0x04
464 
465 
481 #define WIND_A_STATE_ABSENT 0x00
482 #define WIND_A_STATE_UNKNOWN 0x01
483 #define WIND_A_STATE_MALFUNC 0x02
484 #define WIND_A_STATE_OK 0x03
485 #define WIND_B_STATE_ABSENT 0x00
486 #define WIND_B_STATE_UNKNOWN 0x10
487 #define WIND_B_STATE_MALFUNC 0x20
488 #define WIND_B_STATE_OK 0x30
490 
491 
509 #define MVCMD_NAME_BITS 0x3F
510 #define MVCMD_UKNWN 0x00
511 #define MVCMD_MOVE 0x01
512 #define MVCMD_MOVR 0x02
513 #define MVCMD_LEFT 0x03
514 #define MVCMD_RIGHT 0x04
515 #define MVCMD_STOP 0x05
516 #define MVCMD_HOME 0x06
517 #define MVCMD_LOFT 0x07
518 #define MVCMD_SSTP 0x08
519 #define MVCMD_ERROR 0x40
520 #define MVCMD_RUNNING 0x80
522 
523 
542 #define ENGINE_REVERSE 0x01
543 #define ENGINE_CURRENT_AS_RMS 0x02
544 #define ENGINE_MAX_SPEED 0x04
545 #define ENGINE_ANTIPLAY 0x08
546 #define ENGINE_ACCEL_ON 0x10
547 #define ENGINE_LIMIT_VOLT 0x20
548 #define ENGINE_LIMIT_CURR 0x40
549 #define ENGINE_LIMIT_RPM 0x80
551 
552 
571 #define MICROSTEP_MODE_FULL 0x01
572 #define MICROSTEP_MODE_FRAC_2 0x02
573 #define MICROSTEP_MODE_FRAC_4 0x03
574 #define MICROSTEP_MODE_FRAC_8 0x04
575 #define MICROSTEP_MODE_FRAC_16 0x05
576 #define MICROSTEP_MODE_FRAC_32 0x06
577 #define MICROSTEP_MODE_FRAC_64 0x07
578 #define MICROSTEP_MODE_FRAC_128 0x08
579 #define MICROSTEP_MODE_FRAC_256 0x09
581 
582 
601 #define ENGINE_TYPE_NONE 0x00
602 #define ENGINE_TYPE_DC 0x01
603 #define ENGINE_TYPE_2DC 0x02
604 #define ENGINE_TYPE_STEP 0x03
605 #define ENGINE_TYPE_TEST 0x04
606 #define ENGINE_TYPE_BRUSHLESS 0x05
608 
609 
628 #define DRIVER_TYPE_DISCRETE_FET 0x01
629 #define DRIVER_TYPE_INTEGRATE 0x02
630 #define DRIVER_TYPE_EXTERNAL 0x03
632 
633 
650 #define POWER_REDUCT_ENABLED 0x01
651 #define POWER_OFF_ENABLED 0x02
652 #define POWER_SMOOTH_CURRENT 0x04
654 
655 
672 #define ALARM_ON_DRIVER_OVERHEATING 0x01
673 #define LOW_UPWR_PROTECTION 0x02
674 #define H_BRIDGE_ALERT 0x04
675 #define ALARM_ON_BORDERS_SWAP_MISSET 0x08
676 #define ALARM_FLAGS_STICKING 0x10
677 #define USB_BREAK_RECONNECT 0x20
679 
680 
696 #define SETPOS_IGNORE_POSITION 0x01
697 #define SETPOS_IGNORE_ENCODER 0x02
699 
700 
714 #define FEEDBACK_ENCODER 0x01
715 #define FEEDBACK_ENCODERHALL 0x03
716 #define FEEDBACK_EMF 0x04
717 #define FEEDBACK_NONE 0x05
719 
720 
734 #define FEEDBACK_ENC_REVERSE 0x01
735 #define FEEDBACK_HALL_REVERSE 0x02
736 #define FEEDBACK_ENC_TYPE_BITS 0xC0
737 #define FEEDBACK_ENC_TYPE_AUTO 0x00
738 #define FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40
739 #define FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80
741 
742 
757 #define SYNCIN_ENABLED 0x01
758 #define SYNCIN_INVERT 0x02
759 #define SYNCIN_GOTOPOSITION 0x04
761 
762 
777 #define SYNCOUT_ENABLED 0x01
778 #define SYNCOUT_STATE 0x02
779 #define SYNCOUT_INVERT 0x04
780 #define SYNCOUT_IN_STEPS 0x08
781 #define SYNCOUT_ONSTART 0x10
782 #define SYNCOUT_ONSTOP 0x20
783 #define SYNCOUT_ONPERIOD 0x40
785 
786 
801 #define EXTIO_SETUP_OUTPUT 0x01
802 #define EXTIO_SETUP_INVERT 0x02
804 
805 
820 #define EXTIO_SETUP_MODE_IN_BITS 0x0F
821 #define EXTIO_SETUP_MODE_IN_NOP 0x00
822 #define EXTIO_SETUP_MODE_IN_STOP 0x01
823 #define EXTIO_SETUP_MODE_IN_PWOF 0x02
824 #define EXTIO_SETUP_MODE_IN_MOVR 0x03
825 #define EXTIO_SETUP_MODE_IN_HOME 0x04
826 #define EXTIO_SETUP_MODE_IN_ALARM 0x05
827 #define EXTIO_SETUP_MODE_OUT_BITS 0xF0
828 #define EXTIO_SETUP_MODE_OUT_OFF 0x00
829 #define EXTIO_SETUP_MODE_OUT_ON 0x10
830 #define EXTIO_SETUP_MODE_OUT_MOVING 0x20
831 #define EXTIO_SETUP_MODE_OUT_ALARM 0x30
832 #define EXTIO_SETUP_MODE_OUT_MOTOR_ON 0x40
833 #define EXTIO_SETUP_MODE_OUT_MOTOR_FOUND 0x50
835 
836 
854 #define BORDER_IS_ENCODER 0x01
855 #define BORDER_STOP_LEFT 0x02
856 #define BORDER_STOP_RIGHT 0x04
857 #define BORDERS_SWAP_MISSET_DETECTION 0x08
859 
860 
878 #define ENDER_SWAP 0x01
879 #define ENDER_SW1_ACTIVE_LOW 0x02
880 #define ENDER_SW2_ACTIVE_LOW 0x04
882 
883 
901 #define BRAKE_ENABLED 0x01
902 #define BRAKE_ENG_PWROFF 0x02
904 
905 
923 #define CONTROL_MODE_BITS 0x03
924 #define CONTROL_MODE_OFF 0x00
925 #define CONTROL_MODE_JOY 0x01
926 #define CONTROL_MODE_LR 0x02
927 #define CONTROL_BTN_LEFT_PUSHED_OPEN 0x04
928 #define CONTROL_BTN_RIGHT_PUSHED_OPEN 0x08
930 
931 
947 #define JOY_REVERSE 0x01
949 
950 
968 #define CTP_ENABLED 0x01
969 #define CTP_BASE 0x02
970 #define CTP_ALARM_ON_ERROR 0x04
971 #define REV_SENS_INV 0x08
972 #define CTP_ERROR_CORRECTION 0x10
974 
975 
994 #define HOME_DIR_FIRST 0x001
995 #define HOME_DIR_SECOND 0x002
996 #define HOME_MV_SEC_EN 0x004
997 #define HOME_HALF_MV 0x008
998 #define HOME_STOP_FIRST_BITS 0x030
999 #define HOME_STOP_FIRST_REV 0x010
1000 #define HOME_STOP_FIRST_SYN 0x020
1001 #define HOME_STOP_FIRST_LIM 0x030
1002 #define HOME_STOP_SECOND_BITS 0x0C0
1003 #define HOME_STOP_SECOND_REV 0x040
1004 #define HOME_STOP_SECOND_SYN 0x080
1005 #define HOME_STOP_SECOND_LIM 0x0C0
1006 #define HOME_USE_FAST 0x100
1008 
1009 
1021 #define UART_PARITY_BITS 0x03
1022 #define UART_PARITY_BIT_EVEN 0x00
1023 #define UART_PARITY_BIT_ODD 0x01
1024 #define UART_PARITY_BIT_SPACE 0x02
1025 #define UART_PARITY_BIT_MARK 0x03
1026 #define UART_PARITY_BIT_USE 0x04
1027 #define UART_STOP_BIT 0x08
1029 
1030 
1042 #define MOTOR_TYPE_UNKNOWN 0x00
1043 #define MOTOR_TYPE_STEP 0x01
1044 #define MOTOR_TYPE_DC 0x02
1045 #define MOTOR_TYPE_BLDC 0x03
1047 
1048 
1060 #define ENCSET_DIFFERENTIAL_OUTPUT 0x001
1061 #define ENCSET_PUSHPULL_OUTPUT 0x004
1062 #define ENCSET_INDEXCHANNEL_PRESENT 0x010
1063 #define ENCSET_REVOLUTIONSENSOR_PRESENT 0x040
1064 #define ENCSET_REVOLUTIONSENSOR_ACTIVE_HIGH 0x100
1066 
1067 
1079 #define MB_AVAILABLE 0x01
1080 #define MB_POWERED_HOLD 0x02
1082 
1083 
1095 #define TS_TYPE_BITS 0x07
1096 #define TS_TYPE_UNKNOWN 0x00
1097 #define TS_TYPE_THERMOCOUPLE 0x01
1098 #define TS_TYPE_SEMICONDUCTOR 0x02
1099 #define TS_AVAILABLE 0x08
1101 
1102 
1114 #define LS_ON_SW1_AVAILABLE 0x01
1115 #define LS_ON_SW2_AVAILABLE 0x02
1116 #define LS_SW1_ACTIVE_LOW 0x04
1117 #define LS_SW2_ACTIVE_LOW 0x08
1118 #define LS_SHORTED 0x10
1120 
1121 
1133  typedef struct
1134  {
1135  unsigned int IPS;
1136  unsigned int FeedbackType;
1137  unsigned int FeedbackFlags;
1138  unsigned int HallSPR;
1141 
1157  typedef struct
1158  {
1159  unsigned int FastHome;
1160  unsigned int uFastHome;
1161  unsigned int SlowHome;
1162  unsigned int uSlowHome;
1165  unsigned int HomeFlags;
1166  } home_settings_t;
1167 
1168  typedef struct
1169  {
1170  float FastHome;
1171  float SlowHome;
1172  float HomeDelta;
1173  unsigned int HomeFlags;
1175 
1187  typedef struct
1188  {
1189  unsigned int Speed;
1190  unsigned int uSpeed;
1191  unsigned int Accel;
1192  unsigned int Decel;
1193  unsigned int AntiplaySpeed;
1194  unsigned int uAntiplaySpeed;
1195  } move_settings_t;
1196 
1197  typedef struct
1198  {
1199  float Speed;
1200  float Accel;
1201  float Decel;
1204 
1225  typedef struct
1226  {
1227  unsigned int NomVoltage;
1228  unsigned int NomCurrent;
1229  unsigned int NomSpeed;
1230  unsigned int uNomSpeed;
1231  unsigned int EngineFlags;
1232  int Antiplay;
1233  unsigned int MicrostepMode;
1234  unsigned int StepsPerRev;
1236 
1237  typedef struct
1238  {
1239  unsigned int NomVoltage;
1240  unsigned int NomCurrent;
1241  float NomSpeed;
1242  unsigned int EngineFlags;
1243  float Antiplay;
1244  unsigned int MicrostepMode;
1245  unsigned int StepsPerRev;
1247 
1264  typedef struct
1265  {
1266  unsigned int EngineType;
1267  unsigned int DriverType;
1269 
1281  typedef struct
1282  {
1283  unsigned int HoldCurrent;
1284  unsigned int CurrReductDelay;
1285  unsigned int PowerOffDelay;
1286  unsigned int CurrentSetTime;
1287  unsigned int PowerFlags;
1288  } power_settings_t;
1289 
1303  typedef struct
1304  {
1305  unsigned int LowUpwrOff;
1306  unsigned int CriticalIpwr;
1307  unsigned int CriticalUpwr;
1308  unsigned int CriticalT;
1309  unsigned int CriticalIusb;
1310  unsigned int CriticalUusb;
1311  unsigned int MinimumUusb;
1312  unsigned int Flags;
1314 
1332  typedef struct
1333  {
1334  unsigned int BorderFlags;
1335  unsigned int EnderFlags;
1340  } edges_settings_t;
1341 
1342  typedef struct
1343  {
1344  unsigned int BorderFlags;
1345  unsigned int EnderFlags;
1346  float LeftBorder;
1347  float RightBorder;
1349 
1373  typedef struct
1374  {
1375  unsigned int KpU;
1376  unsigned int KiU;
1377  unsigned int KdU;
1378  } pid_settings_t;
1379 
1395  typedef struct
1396  {
1397  unsigned int SyncInFlags;
1398  unsigned int ClutterTime;
1399  int Position;
1401  unsigned int Speed;
1402  unsigned int uSpeed;
1404 
1405  typedef struct
1406  {
1407  unsigned int SyncInFlags;
1408  unsigned int ClutterTime;
1409  float Position;
1410  float Speed;
1412 
1428  typedef struct
1429  {
1430  unsigned int SyncOutFlags;
1431  unsigned int SyncOutPulseSteps;
1432  unsigned int SyncOutPeriod;
1433  unsigned int Accuracy;
1434  unsigned int uAccuracy;
1436 
1437  typedef struct
1438  {
1439  unsigned int SyncOutFlags;
1440  unsigned int SyncOutPulseSteps;
1441  unsigned int SyncOutPeriod;
1442  float Accuracy;
1444 
1461  typedef struct
1462  {
1463  unsigned int EXTIOSetupFlags;
1464  unsigned int EXTIOModeFlags;
1465  } extio_settings_t;
1466 
1480  typedef struct
1481  {
1482  unsigned int t1;
1483  unsigned int t2;
1484  unsigned int t3;
1485  unsigned int t4;
1486  unsigned int BrakeFlags;
1487  } brake_settings_t;
1488 
1518  typedef struct
1519  {
1520  unsigned int MaxSpeed[10];
1521  unsigned int uMaxSpeed[10];
1522  unsigned int Timeout[9];
1523  unsigned int MaxClickTime;
1524  unsigned int Flags;
1528 
1529  typedef struct
1530  {
1531  float MaxSpeed[10];
1532  unsigned int Timeout[9];
1533  unsigned int MaxClickTime;
1534  unsigned int Flags;
1537 
1566  typedef struct
1567  {
1568  unsigned int JoyLowEnd;
1569  unsigned int JoyCenter;
1570  unsigned int JoyHighEnd;
1571  unsigned int ExpFactor;
1572  unsigned int DeadZone;
1573  unsigned int JoyFlags;
1575 
1609  typedef struct
1610  {
1611  unsigned int CTPMinError;
1612  unsigned int CTPFlags;
1613  } ctp_settings_t;
1614 
1628  typedef struct
1629  {
1630  unsigned int Speed;
1631  unsigned int UARTSetupFlags;
1632  } uart_settings_t;
1633 
1647  typedef struct
1648  {
1649  float CSS1_A;
1650  float CSS1_B;
1651  float CSS2_A;
1652  float CSS2_B;
1656 
1666  typedef struct
1667  {
1668  char ControllerName[17];
1669  unsigned int CtrlFlags;
1671 
1681  typedef struct
1682  {
1683  unsigned int UserData[7];
1685 
1695  typedef struct
1696  {
1697  int Position;
1699  unsigned int Time;
1701 
1702  typedef struct
1703  {
1704  float Position;
1705  unsigned int Time;
1707 
1722  typedef struct
1723  {
1724  int Position;
1726  long_t EncPosition;
1727  } get_position_t;
1728 
1729  typedef struct
1730  {
1731  float Position;
1732  long_t EncPosition;
1734 
1749  typedef struct
1750  {
1751  int Position;
1753  long_t EncPosition;
1754  unsigned int PosFlags;
1755  } set_position_t;
1756 
1757  typedef struct
1758  {
1759  float Position;
1760  long_t EncPosition;
1761  unsigned int PosFlags;
1763 
1775  typedef struct
1776  {
1777  unsigned int MoveSts;
1778  unsigned int MvCmdSts;
1779  unsigned int PWRSts;
1780  unsigned int EncSts;
1781  unsigned int WindSts;
1784  long_t EncPosition;
1785  int CurSpeed;
1787  int Ipwr;
1788  int Upwr;
1789  int Iusb;
1790  int Uusb;
1791  int CurT;
1792  unsigned int Flags;
1793  unsigned int GPIOFlags;
1794  unsigned int CmdBufFreeSpace;
1795  } status_t;
1796 
1797  typedef struct
1798  {
1799  unsigned int MoveSts;
1800  unsigned int MvCmdSts;
1801  unsigned int PWRSts;
1802  unsigned int EncSts;
1803  unsigned int WindSts;
1804  float CurPosition;
1805  long_t EncPosition;
1806  float CurSpeed;
1807  int Ipwr;
1808  int Upwr;
1809  int Iusb;
1810  int Uusb;
1811  int CurT;
1812  unsigned int Flags;
1813  unsigned int GPIOFlags;
1814  unsigned int CmdBufFreeSpace;
1815  } status_calb_t;
1816 
1829  typedef struct
1830  {
1837  unsigned int Pot;
1838  unsigned int Joy;
1840  } chart_data_t;
1841 
1858  typedef struct
1859  {
1860  char Manufacturer[5];
1861  char ManufacturerId[3];
1862  char ProductDescription[9];
1863  unsigned int Major;
1864  unsigned int Minor;
1865  unsigned int Release;
1867 
1883  typedef struct
1884  {
1885  unsigned int SN;
1886  uint8_t Key[32];
1887  unsigned int Major;
1888  unsigned int Minor;
1889  unsigned int Release;
1890  } serial_number_t;
1891 
1906  typedef struct
1907  {
1908  unsigned int A1Voltage_ADC;
1909  unsigned int A2Voltage_ADC;
1910  unsigned int B1Voltage_ADC;
1911  unsigned int B2Voltage_ADC;
1912  unsigned int SupVoltage_ADC;
1913  unsigned int ACurrent_ADC;
1914  unsigned int BCurrent_ADC;
1915  unsigned int FullCurrent_ADC;
1916  unsigned int Temp_ADC;
1917  unsigned int Joy_ADC;
1918  unsigned int Pot_ADC;
1919  unsigned int L5_ADC;
1920  unsigned int H5_ADC;
1926  int ACurrent;
1927  int BCurrent;
1929  int Temp;
1930  int Joy;
1931  int Pot;
1932  int L5;
1933  int H5;
1934  unsigned int deprecated;
1935  int R;
1936  int L;
1937  } analog_data_t;
1938 
1950  typedef struct
1951  {
1952  uint8_t DebugData[128];
1953  } debug_read_t;
1954 
1966  typedef struct
1967  {
1968  uint8_t DebugData[128];
1969  } debug_write_t;
1970 
1980  typedef struct
1981  {
1982  char PositionerName[17];
1983  } stage_name_t;
1984 
1996  typedef struct
1997  {
1998  char Manufacturer[17];
1999  char PartNumber[25];
2001 
2013  typedef struct
2014  {
2016  char Units[9];
2017  float MaxSpeed;
2018  float TravelRange;
2024  } stage_settings_t;
2025 
2037  typedef struct
2038  {
2039  char Manufacturer[17];
2040  char PartNumber[25];
2042 
2054  typedef struct
2055  {
2056  unsigned int MotorType;
2057  unsigned int ReservedField;
2058  unsigned int Poles;
2059  unsigned int Phases;
2068  float StallTorque;
2074  float MaxSpeed;
2075  float MaxCurrent;
2078  float NoLoadSpeed;
2079  } motor_settings_t;
2080 
2092  typedef struct
2093  {
2094  char Manufacturer[17];
2095  char PartNumber[25];
2097 
2109  typedef struct
2110  {
2115  unsigned int PPR;
2116  unsigned int EncoderSettings;
2118 
2130  typedef struct
2131  {
2132  char Manufacturer[17];
2133  char PartNumber[25];
2135 
2147  typedef struct
2148  {
2153  unsigned int PPR;
2155 
2167  typedef struct
2168  {
2169  char Manufacturer[17];
2170  char PartNumber[25];
2172 
2184  typedef struct
2185  {
2186  float ReductionIn;
2192  float Efficiency;
2193  } gear_settings_t;
2194 
2206  typedef struct
2207  {
2208  char MagneticBrakeInfo[25];
2211  float MBTorque;
2212  unsigned int MBSettings;
2213  char TemperatureSensorInfo[25];
2214  float TSMin;
2215  float TSMax;
2216  float TSGrad;
2217  unsigned int TSSettings;
2218  unsigned int LimitSwitchesSettings;
2220 
2232  typedef struct
2233  {
2234  uint8_t key[16];
2235  } init_random_t;
2236 
2237  typedef struct
2238  {
2239  unsigned int Motor;
2241 
2242 /*
2243  --------------------------------------------
2244  BEGIN OF GENERATED function declarations
2245  --------------------------------------------
2246 */
2247 
2260 
2277  result_t XIMC_API set_feedback_settings (device_t id, const feedback_settings_t* feedback_settings);
2278 
2295  result_t XIMC_API get_feedback_settings (device_t id, feedback_settings_t* feedback_settings);
2296 
2313  result_t XIMC_API set_home_settings (device_t id, const home_settings_t* home_settings);
2314 
2315  result_t XIMC_API set_home_settings_calb (device_t id, const home_settings_calb_t* home_settings_calb, const calibration_t* calibration);
2316 
2333  result_t XIMC_API get_home_settings (device_t id, home_settings_t* home_settings);
2334 
2335  result_t XIMC_API get_home_settings_calb (device_t id, home_settings_calb_t* home_settings_calb, const calibration_t* calibration);
2336 
2349  result_t XIMC_API set_move_settings (device_t id, const move_settings_t* move_settings);
2350 
2351  result_t XIMC_API set_move_settings_calb (device_t id, const move_settings_calb_t* move_settings_calb, const calibration_t* calibration);
2352 
2365  result_t XIMC_API get_move_settings (device_t id, move_settings_t* move_settings);
2366 
2367  result_t XIMC_API get_move_settings_calb (device_t id, move_settings_calb_t* move_settings_calb, const calibration_t* calibration);
2368 
2390  result_t XIMC_API set_engine_settings (device_t id, const engine_settings_t* engine_settings);
2391 
2392  result_t XIMC_API set_engine_settings_calb (device_t id, const engine_settings_calb_t* engine_settings_calb, const calibration_t* calibration);
2393 
2413  result_t XIMC_API get_engine_settings (device_t id, engine_settings_t* engine_settings);
2414 
2415  result_t XIMC_API get_engine_settings_calb (device_t id, engine_settings_calb_t* engine_settings_calb, const calibration_t* calibration);
2416 
2431  result_t XIMC_API set_entype_settings (device_t id, const entype_settings_t* entype_settings);
2432 
2447  result_t XIMC_API get_entype_settings (device_t id, entype_settings_t* entype_settings);
2448 
2462  result_t XIMC_API set_power_settings (device_t id, const power_settings_t* power_settings);
2463 
2478  result_t XIMC_API get_power_settings (device_t id, power_settings_t* power_settings);
2479 
2493  result_t XIMC_API set_secure_settings (device_t id, const secure_settings_t* secure_settings);
2494 
2508  result_t XIMC_API get_secure_settings (device_t id, secure_settings_t* secure_settings);
2509 
2524  result_t XIMC_API set_edges_settings (device_t id, const edges_settings_t* edges_settings);
2525 
2526  result_t XIMC_API set_edges_settings_calb (device_t id, const edges_settings_calb_t* edges_settings_calb, const calibration_t* calibration);
2527 
2542  result_t XIMC_API get_edges_settings (device_t id, edges_settings_t* edges_settings);
2543 
2544  result_t XIMC_API get_edges_settings_calb (device_t id, edges_settings_calb_t* edges_settings_calb, const calibration_t* calibration);
2545 
2569  result_t XIMC_API set_pid_settings (device_t id, const pid_settings_t* pid_settings);
2570 
2591  result_t XIMC_API get_pid_settings (device_t id, pid_settings_t* pid_settings);
2592 
2610  result_t XIMC_API set_sync_in_settings (device_t id, const sync_in_settings_t* sync_in_settings);
2611 
2612  result_t XIMC_API set_sync_in_settings_calb (device_t id, const sync_in_settings_calb_t* sync_in_settings_calb, const calibration_t* calibration);
2613 
2631  result_t XIMC_API get_sync_in_settings (device_t id, sync_in_settings_t* sync_in_settings);
2632 
2633  result_t XIMC_API get_sync_in_settings_calb (device_t id, sync_in_settings_calb_t* sync_in_settings_calb, const calibration_t* calibration);
2634 
2652  result_t XIMC_API set_sync_out_settings (device_t id, const sync_out_settings_t* sync_out_settings);
2653 
2654  result_t XIMC_API set_sync_out_settings_calb (device_t id, const sync_out_settings_calb_t* sync_out_settings_calb, const calibration_t* calibration);
2655 
2670  result_t XIMC_API get_sync_out_settings (device_t id, sync_out_settings_t* sync_out_settings);
2671 
2672  result_t XIMC_API get_sync_out_settings_calb (device_t id, sync_out_settings_calb_t* sync_out_settings_calb, const calibration_t* calibration);
2673 
2692  result_t XIMC_API set_extio_settings (device_t id, const extio_settings_t* extio_settings);
2693 
2709  result_t XIMC_API get_extio_settings (device_t id, extio_settings_t* extio_settings);
2710 
2723  result_t XIMC_API set_brake_settings (device_t id, const brake_settings_t* brake_settings);
2724 
2737  result_t XIMC_API get_brake_settings (device_t id, brake_settings_t* brake_settings);
2738 
2767  result_t XIMC_API set_control_settings (device_t id, const control_settings_t* control_settings);
2768 
2769  result_t XIMC_API set_control_settings_calb (device_t id, const control_settings_calb_t* control_settings_calb, const calibration_t* calibration);
2770 
2799  result_t XIMC_API get_control_settings (device_t id, control_settings_t* control_settings);
2800 
2801  result_t XIMC_API get_control_settings_calb (device_t id, control_settings_calb_t* control_settings_calb, const calibration_t* calibration);
2802 
2838  result_t XIMC_API set_joystick_settings (device_t id, const joystick_settings_t* joystick_settings);
2839 
2875  result_t XIMC_API get_joystick_settings (device_t id, joystick_settings_t* joystick_settings);
2876 
2911  result_t XIMC_API set_ctp_settings (device_t id, const ctp_settings_t* ctp_settings);
2912 
2947  result_t XIMC_API get_ctp_settings (device_t id, ctp_settings_t* ctp_settings);
2948 
2965  result_t XIMC_API set_uart_settings (device_t id, const uart_settings_t* uart_settings);
2966 
2983  result_t XIMC_API get_uart_settings (device_t id, uart_settings_t* uart_settings);
2984 
3001  result_t XIMC_API set_calibration_settings (device_t id, const calibration_settings_t* calibration_settings);
3002 
3019  result_t XIMC_API get_calibration_settings (device_t id, calibration_settings_t* calibration_settings);
3020 
3033  result_t XIMC_API set_controller_name (device_t id, const controller_name_t* controller_name);
3034 
3047  result_t XIMC_API get_controller_name (device_t id, controller_name_t* controller_name);
3048 
3061  result_t XIMC_API set_nonvolatile_memory (device_t id, const nonvolatile_memory_t* nonvolatile_memory);
3062 
3075  result_t XIMC_API get_nonvolatile_memory (device_t id, nonvolatile_memory_t* nonvolatile_memory);
3076 
3077 
3079 
3092 
3110  result_t XIMC_API command_stop (device_t id);
3111 
3131  result_t XIMC_API command_add_sync_in_action (device_t id, const command_add_sync_in_action_t* the_command_add_sync_in_action);
3132 
3133  result_t XIMC_API command_add_sync_in_action_calb (device_t id, const command_add_sync_in_action_calb_t* the_command_add_sync_in_action_calb, const calibration_t* calibration);
3134 
3153  result_t XIMC_API command_power_off (device_t id);
3154 
3174  result_t XIMC_API command_move (device_t id, int Position, int uPosition);
3175 
3176  result_t XIMC_API command_move_calb (device_t id, float Position, const calibration_t* calibration);
3177 
3199  result_t XIMC_API command_movr (device_t id, int DeltaPosition, int uDeltaPosition);
3200 
3201  result_t XIMC_API command_movr_calb (device_t id, float DeltaPosition, const calibration_t* calibration);
3202 
3242  result_t XIMC_API command_home (device_t id);
3243 
3254  result_t XIMC_API command_left (device_t id);
3255 
3266  result_t XIMC_API command_right (device_t id);
3267 
3280  result_t XIMC_API command_loft (device_t id);
3281 
3292  result_t XIMC_API command_sstp (device_t id);
3293 
3308  result_t XIMC_API get_position (device_t id, get_position_t* the_get_position);
3309 
3310  result_t XIMC_API get_position_calb (device_t id, get_position_calb_t* the_get_position_calb, const calibration_t* calibration);
3311 
3328  result_t XIMC_API set_position (device_t id, const set_position_t* the_set_position);
3329 
3330  result_t XIMC_API set_position_calb (device_t id, const set_position_calb_t* the_set_position_calb, const calibration_t* calibration);
3331 
3354  result_t XIMC_API command_zero (device_t id);
3355 
3356 
3358 
3371 
3382  result_t XIMC_API command_save_settings (device_t id);
3383 
3394  result_t XIMC_API command_read_settings (device_t id);
3395 
3406  result_t XIMC_API command_save_robust_settings (device_t id);
3407 
3418  result_t XIMC_API command_read_robust_settings (device_t id);
3419 
3432  result_t XIMC_API command_eesave_settings (device_t id);
3433 
3445  result_t XIMC_API command_eeread_settings (device_t id);
3446 
3463  result_t XIMC_API get_chart_data (device_t id, chart_data_t* chart_data);
3464 
3477  result_t XIMC_API get_serial_number (device_t id, unsigned int* SerialNumber);
3478 
3495  result_t XIMC_API get_firmware_version (device_t id, unsigned int* Major, unsigned int* Minor, unsigned int* Release);
3496 
3507  result_t XIMC_API service_command_updf (device_t id);
3508 
3509 
3511 
3524 
3543  result_t XIMC_API set_serial_number (device_t id, const serial_number_t* serial_number);
3544 
3559  result_t XIMC_API get_analog_data (device_t id, analog_data_t* analog_data);
3560 
3575  result_t XIMC_API get_debug_read (device_t id, debug_read_t* debug_read);
3576 
3589  result_t XIMC_API set_debug_write (device_t id, const debug_write_t* debug_write);
3590 
3591 
3593 
3606 
3619  result_t XIMC_API set_stage_name (device_t id, const stage_name_t* stage_name);
3620 
3633  result_t XIMC_API get_stage_name (device_t id, stage_name_t* stage_name);
3634 
3649  result_t XIMC_API set_stage_information (device_t id, const stage_information_t* stage_information);
3650 
3663  result_t XIMC_API get_stage_information (device_t id, stage_information_t* stage_information);
3664 
3679  result_t XIMC_API set_stage_settings (device_t id, const stage_settings_t* stage_settings);
3680 
3693  result_t XIMC_API get_stage_settings (device_t id, stage_settings_t* stage_settings);
3694 
3709  result_t XIMC_API set_motor_information (device_t id, const motor_information_t* motor_information);
3710 
3723  result_t XIMC_API get_motor_information (device_t id, motor_information_t* motor_information);
3724 
3739  result_t XIMC_API set_motor_settings (device_t id, const motor_settings_t* motor_settings);
3740 
3753  result_t XIMC_API get_motor_settings (device_t id, motor_settings_t* motor_settings);
3754 
3769  result_t XIMC_API set_encoder_information (device_t id, const encoder_information_t* encoder_information);
3770 
3783  result_t XIMC_API get_encoder_information (device_t id, encoder_information_t* encoder_information);
3784 
3799  result_t XIMC_API set_encoder_settings (device_t id, const encoder_settings_t* encoder_settings);
3800 
3813  result_t XIMC_API get_encoder_settings (device_t id, encoder_settings_t* encoder_settings);
3814 
3829  result_t XIMC_API set_hallsensor_information (device_t id, const hallsensor_information_t* hallsensor_information);
3830 
3843  result_t XIMC_API get_hallsensor_information (device_t id, hallsensor_information_t* hallsensor_information);
3844 
3859  result_t XIMC_API set_hallsensor_settings (device_t id, const hallsensor_settings_t* hallsensor_settings);
3860 
3873  result_t XIMC_API get_hallsensor_settings (device_t id, hallsensor_settings_t* hallsensor_settings);
3874 
3889  result_t XIMC_API set_gear_information (device_t id, const gear_information_t* gear_information);
3890 
3903  result_t XIMC_API get_gear_information (device_t id, gear_information_t* gear_information);
3904 
3919  result_t XIMC_API set_gear_settings (device_t id, const gear_settings_t* gear_settings);
3920 
3933  result_t XIMC_API get_gear_settings (device_t id, gear_settings_t* gear_settings);
3934 
3949  result_t XIMC_API set_accessories_settings (device_t id, const accessories_settings_t* accessories_settings);
3950 
3963  result_t XIMC_API get_accessories_settings (device_t id, accessories_settings_t* accessories_settings);
3964 
3981  result_t XIMC_API get_bootloader_version (device_t id, unsigned int* Major, unsigned int* Minor, unsigned int* Release);
3982 
3995  result_t XIMC_API get_init_random (device_t id, init_random_t* init_random);
3996 
3997  result_t XIMC_API command_change_motor (device_t id, const command_change_motor_t* the_command_change_motor);
3998 
3999 
4000 /*
4001  -------------------------
4002  END OF GENERATED CODE
4003  -------------------------
4004 */
4005 
4006 /* hand-crafted functions begin */
4007 
4020  result_t XIMC_API goto_firmware(device_t id, uint8_t* ret);
4021 
4034  result_t XIMC_API has_firmware(const char* name, uint8_t* ret);
4035 
4051  result_t XIMC_API command_update_firmware(const char* name, const uint8_t* data, uint32_t data_size);
4052 
4067  result_t XIMC_API write_key (const char* name, uint8_t* key);
4068 
4081  result_t XIMC_API command_reset(device_t id);
4082 
4095  result_t XIMC_API command_clear_fram(device_t id);
4096 
4098 
4099  // ------------------------------------
4100 
4112 
4137  device_t XIMC_API open_device (const char* name);
4138 
4149  result_t XIMC_API close_device (device_t* id);
4150 
4163  result_t XIMC_API probe_device (const char* name);
4164 
4177  result_t XIMC_API set_bindy_key(const char* keyfilepath);
4178 
4197  device_enumeration_t XIMC_API enumerate_devices(int enumerate_flags, const char *hints);
4198 
4209  result_t XIMC_API free_enumerate_devices(device_enumeration_t device_enumeration);
4210 
4221  int XIMC_API get_device_count(device_enumeration_t device_enumeration);
4222 
4231  typedef char* pchar;
4232 
4247  pchar XIMC_API get_device_name(device_enumeration_t device_enumeration, int device_index);
4248 
4249 
4266  result_t XIMC_API get_enumerate_device_serial(device_enumeration_t device_enumeration, int device_index, uint32_t* serial);
4267 
4284  result_t XIMC_API get_enumerate_device_information(device_enumeration_t device_enumeration, int device_index, device_information_t* device_information);
4285 
4302  result_t XIMC_API get_enumerate_device_controller_name(device_enumeration_t device_enumeration, int device_index, controller_name_t* controller_name);
4303 
4320  result_t XIMC_API get_enumerate_device_stage_name(device_enumeration_t device_enumeration, int device_index, stage_name_t* stage_name);
4321 
4338  result_t XIMC_API get_enumerate_device_network_information(device_enumeration_t device_enumeration, int device_index, device_network_information_t* device_network_information);
4339 
4347  result_t XIMC_API reset_locks ();
4348 
4368  result_t XIMC_API ximc_fix_usbser_sys(const char* device_name);
4369 
4370 
4380  void XIMC_API msec_sleep (unsigned int msec);
4381 
4391  void XIMC_API ximc_version (char* version);
4392 
4393 #if !defined(MATLAB_IMPORT) && !defined(LABVIEW64_IMPORT) && !defined(LABVIEW32_IMPORT)
4394 
4406  typedef void (XIMC_CALLCONV *logging_callback_t)(int loglevel, const wchar_t* message, void* user_data);
4407 
4419  void XIMC_API logging_callback_stderr_wide(int loglevel, const wchar_t* message, void* user_data);
4420 
4432  void XIMC_API logging_callback_stderr_narrow(int loglevel, const wchar_t* message, void* user_data);
4433 
4446  void XIMC_API set_logging_callback(logging_callback_t logging_callback, void* user_data);
4447 
4448 #endif
4449 
4473  result_t XIMC_API get_status (device_t id, status_t* status);
4474 
4486  result_t XIMC_API get_status_calb (device_t id, status_calb_t* status, const calibration_t* calibration);
4487 
4513  result_t XIMC_API get_device_information (device_t id, device_information_t* device_information);
4514 
4533  result_t XIMC_API command_wait_for_stop(device_t id, uint32_t refresh_interval_ms);
4534 
4547  result_t XIMC_API command_homezero(device_t id);
4549 
4550 #if defined(__cplusplus)
4551 };
4552 #endif
4553 
4554 #endif
4555 
4556 // vim: ts=4 shiftwidth=4
4557