19 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
20 #define XIMC_API __stdcall
22 #ifdef LIBXIMC_EXPORTS
23 #define XIMC_API __attribute__((visibility("default")))
33 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
34 #define XIMC_CALLCONV __stdcall
43 #if defined(_WIN32) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT) || defined(MATLAB_IMPORT)
44 #define XIMC_RETTYPE unsigned int
46 #define XIMC_RETTYPE void*
50 #if !defined(XIMC_NO_STDINT)
52 #if ( (defined(_MSC_VER) && (_MSC_VER < 1600)) || defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT)) && !defined(MATLAB_IMPORT)
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;
67 #if defined(LABVIEW64_IMPORT) || defined(LABVIEW32_IMPORT)
68 typedef unsigned __int64 ulong_t;
69 typedef __int64 long_t;
71 typedef unsigned long long ulong_t;
72 typedef long long long_t;
79 #if defined(__cplusplus)
113 #if defined(_WIN64) || defined(__LP64__) || defined(LABVIEW64_IMPORT)
128 #define device_undefined -1
157 #define result_error -1
167 #define result_not_implemented -2
177 #define result_value_error -3
187 #define result_nodevice -4
208 #define LOGLEVEL_ERROR 0x01
217 #define LOGLEVEL_WARNING 0x02
226 #define LOGLEVEL_INFO 0x03
235 #define LOGLEVEL_DEBUG 0x04
272 #define LIBXIMC_VERSION 2.13.3
277 #define LIBXIMC_PROTOCOL_VERSION 20.5
298 #define ENUMERATE_PROBE 0x01
299 #define ENUMERATE_ALL_COM 0x02
300 #define ENUMERATE_NETWORK 0x04
320 #define MOVE_STATE_MOVING 0x01
321 #define MOVE_STATE_TARGET_SPEED 0x02
322 #define MOVE_STATE_ANTIPLAY 0x04
341 #define EEPROM_PRECEDENCE 0x01
361 #define PWR_STATE_UNKNOWN 0x00
362 #define PWR_STATE_OFF 0x01
363 #define PWR_STATE_NORM 0x03
364 #define PWR_STATE_REDUCT 0x04
365 #define PWR_STATE_MAX 0x05
387 #define STATE_CONTR 0x000003F
388 #define STATE_ERRC 0x0000001
389 #define STATE_ERRD 0x0000002
390 #define STATE_ERRV 0x0000004
391 #define STATE_EEPROM_CONNECTED 0x0000010
392 #define STATE_IS_HOMED 0x0000020
393 #define STATE_SECUR 0x1B3FFC0
394 #define STATE_ALARM 0x0000040
395 #define STATE_CTP_ERROR 0x0000080
396 #define STATE_POWER_OVERHEAT 0x0000100
397 #define STATE_CONTROLLER_OVERHEAT 0x0000200
398 #define STATE_OVERLOAD_POWER_VOLTAGE 0x0000400
399 #define STATE_OVERLOAD_POWER_CURRENT 0x0000800
400 #define STATE_OVERLOAD_USB_VOLTAGE 0x0001000
401 #define STATE_LOW_USB_VOLTAGE 0x0002000
402 #define STATE_OVERLOAD_USB_CURRENT 0x0004000
403 #define STATE_BORDERS_SWAP_MISSET 0x0008000
404 #define STATE_LOW_POWER_VOLTAGE 0x0010000
405 #define STATE_H_BRIDGE_FAULT 0x0020000
406 #define STATE_WINDING_RES_MISMATCH 0x0100000
407 #define STATE_ENCODER_FAULT 0x0200000
408 #define STATE_ENGINE_RESPONSE_ERROR 0x0800000
409 #define STATE_EXTIO_ALARM 0x1000000
431 #define STATE_DIG_SIGNAL 0xFFFF
432 #define STATE_RIGHT_EDGE 0x0001
433 #define STATE_LEFT_EDGE 0x0002
434 #define STATE_BUTTON_RIGHT 0x0004
435 #define STATE_BUTTON_LEFT 0x0008
436 #define STATE_GPIO_PINOUT 0x0010
437 #define STATE_GPIO_LEVEL 0x0020
438 #define STATE_BRAKE 0x0200
439 #define STATE_REV_SENSOR 0x0400
440 #define STATE_SYNC_INPUT 0x0800
441 #define STATE_SYNC_OUTPUT 0x1000
442 #define STATE_ENC_A 0x2000
443 #define STATE_ENC_B 0x4000
463 #define ENC_STATE_ABSENT 0x00
464 #define ENC_STATE_UNKNOWN 0x01
465 #define ENC_STATE_MALFUNC 0x02
466 #define ENC_STATE_REVERS 0x03
467 #define ENC_STATE_OK 0x04
487 #define WIND_A_STATE_ABSENT 0x00
488 #define WIND_A_STATE_UNKNOWN 0x01
489 #define WIND_A_STATE_MALFUNC 0x02
490 #define WIND_A_STATE_OK 0x03
491 #define WIND_B_STATE_ABSENT 0x00
492 #define WIND_B_STATE_UNKNOWN 0x10
493 #define WIND_B_STATE_MALFUNC 0x20
494 #define WIND_B_STATE_OK 0x30
516 #define MVCMD_NAME_BITS 0x3F
517 #define MVCMD_UKNWN 0x00
518 #define MVCMD_MOVE 0x01
519 #define MVCMD_MOVR 0x02
520 #define MVCMD_LEFT 0x03
521 #define MVCMD_RIGHT 0x04
522 #define MVCMD_STOP 0x05
523 #define MVCMD_HOME 0x06
524 #define MVCMD_LOFT 0x07
525 #define MVCMD_SSTP 0x08
526 #define MVCMD_ERROR 0x40
527 #define MVCMD_RUNNING 0x80
550 #define RPM_DIV_1000 0x01
573 #define ENGINE_REVERSE 0x01
574 #define ENGINE_CURRENT_AS_RMS 0x02
575 #define ENGINE_MAX_SPEED 0x04
576 #define ENGINE_ANTIPLAY 0x08
577 #define ENGINE_ACCEL_ON 0x10
578 #define ENGINE_LIMIT_VOLT 0x20
579 #define ENGINE_LIMIT_CURR 0x40
580 #define ENGINE_LIMIT_RPM 0x80
604 #define MICROSTEP_MODE_FULL 0x01
605 #define MICROSTEP_MODE_FRAC_2 0x02
606 #define MICROSTEP_MODE_FRAC_4 0x03
607 #define MICROSTEP_MODE_FRAC_8 0x04
608 #define MICROSTEP_MODE_FRAC_16 0x05
609 #define MICROSTEP_MODE_FRAC_32 0x06
610 #define MICROSTEP_MODE_FRAC_64 0x07
611 #define MICROSTEP_MODE_FRAC_128 0x08
612 #define MICROSTEP_MODE_FRAC_256 0x09
636 #define ENGINE_TYPE_NONE 0x00
637 #define ENGINE_TYPE_DC 0x01
638 #define ENGINE_TYPE_2DC 0x02
639 #define ENGINE_TYPE_STEP 0x03
640 #define ENGINE_TYPE_TEST 0x04
641 #define ENGINE_TYPE_BRUSHLESS 0x05
665 #define DRIVER_TYPE_DISCRETE_FET 0x01
666 #define DRIVER_TYPE_INTEGRATE 0x02
667 #define DRIVER_TYPE_EXTERNAL 0x03
689 #define POWER_REDUCT_ENABLED 0x01
690 #define POWER_OFF_ENABLED 0x02
691 #define POWER_SMOOTH_CURRENT 0x04
713 #define ALARM_ON_DRIVER_OVERHEATING 0x01
714 #define LOW_UPWR_PROTECTION 0x02
715 #define H_BRIDGE_ALERT 0x04
716 #define ALARM_ON_BORDERS_SWAP_MISSET 0x08
717 #define ALARM_FLAGS_STICKING 0x10
718 #define USB_BREAK_RECONNECT 0x20
719 #define ALARM_WINDING_MISMATCH 0x40
720 #define ALARM_ENGINE_RESPONSE 0x80
741 #define SETPOS_IGNORE_POSITION 0x01
742 #define SETPOS_IGNORE_ENCODER 0x02
761 #define FEEDBACK_ENCODER 0x01
762 #define FEEDBACK_EMF 0x04
763 #define FEEDBACK_NONE 0x05
764 #define FEEDBACK_ENCODER_MEDIATED 0x06
783 #define FEEDBACK_ENC_REVERSE 0x01
784 #define FEEDBACK_ENC_TYPE_BITS 0xC0
785 #define FEEDBACK_ENC_TYPE_AUTO 0x00
786 #define FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40
787 #define FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80
804 #define SYNCIN_ENABLED 0x01
805 #define SYNCIN_INVERT 0x02
806 #define SYNCIN_GOTOPOSITION 0x04
823 #define SYNCOUT_ENABLED 0x01
824 #define SYNCOUT_STATE 0x02
825 #define SYNCOUT_INVERT 0x04
826 #define SYNCOUT_IN_STEPS 0x08
827 #define SYNCOUT_ONSTART 0x10
828 #define SYNCOUT_ONSTOP 0x20
829 #define SYNCOUT_ONPERIOD 0x40
848 #define EXTIO_SETUP_OUTPUT 0x01
849 #define EXTIO_SETUP_INVERT 0x02
869 #define EXTIO_SETUP_MODE_IN_BITS 0x0F
870 #define EXTIO_SETUP_MODE_IN_NOP 0x00
871 #define EXTIO_SETUP_MODE_IN_STOP 0x01
872 #define EXTIO_SETUP_MODE_IN_PWOF 0x02
873 #define EXTIO_SETUP_MODE_IN_MOVR 0x03
874 #define EXTIO_SETUP_MODE_IN_HOME 0x04
875 #define EXTIO_SETUP_MODE_IN_ALARM 0x05
876 #define EXTIO_SETUP_MODE_OUT_BITS 0xF0
877 #define EXTIO_SETUP_MODE_OUT_OFF 0x00
878 #define EXTIO_SETUP_MODE_OUT_ON 0x10
879 #define EXTIO_SETUP_MODE_OUT_MOVING 0x20
880 #define EXTIO_SETUP_MODE_OUT_ALARM 0x30
881 #define EXTIO_SETUP_MODE_OUT_MOTOR_ON 0x40
904 #define BORDER_IS_ENCODER 0x01
905 #define BORDER_STOP_LEFT 0x02
906 #define BORDER_STOP_RIGHT 0x04
907 #define BORDERS_SWAP_MISSET_DETECTION 0x08
930 #define ENDER_SWAP 0x01
931 #define ENDER_SW1_ACTIVE_LOW 0x02
932 #define ENDER_SW2_ACTIVE_LOW 0x04
955 #define BRAKE_ENABLED 0x01
956 #define BRAKE_ENG_PWROFF 0x02
979 #define CONTROL_MODE_BITS 0x03
980 #define CONTROL_MODE_OFF 0x00
981 #define CONTROL_MODE_JOY 0x01
982 #define CONTROL_MODE_LR 0x02
983 #define CONTROL_BTN_LEFT_PUSHED_OPEN 0x04
984 #define CONTROL_BTN_RIGHT_PUSHED_OPEN 0x08
1005 #define JOY_REVERSE 0x01
1028 #define CTP_ENABLED 0x01
1029 #define CTP_BASE 0x02
1030 #define CTP_ALARM_ON_ERROR 0x04
1031 #define REV_SENS_INV 0x08
1032 #define CTP_ERROR_CORRECTION 0x10
1056 #define HOME_DIR_FIRST 0x001
1057 #define HOME_DIR_SECOND 0x002
1058 #define HOME_MV_SEC_EN 0x004
1059 #define HOME_HALF_MV 0x008
1060 #define HOME_STOP_FIRST_BITS 0x030
1061 #define HOME_STOP_FIRST_REV 0x010
1062 #define HOME_STOP_FIRST_SYN 0x020
1063 #define HOME_STOP_FIRST_LIM 0x030
1064 #define HOME_STOP_SECOND_BITS 0x0C0
1065 #define HOME_STOP_SECOND_REV 0x040
1066 #define HOME_STOP_SECOND_SYN 0x080
1067 #define HOME_STOP_SECOND_LIM 0x0C0
1068 #define HOME_USE_FAST 0x100
1085 #define UART_PARITY_BITS 0x03
1086 #define UART_PARITY_BIT_EVEN 0x00
1087 #define UART_PARITY_BIT_ODD 0x01
1088 #define UART_PARITY_BIT_SPACE 0x02
1089 #define UART_PARITY_BIT_MARK 0x03
1090 #define UART_PARITY_BIT_USE 0x04
1091 #define UART_STOP_BIT 0x08
1108 #define MOTOR_TYPE_UNKNOWN 0x00
1109 #define MOTOR_TYPE_STEP 0x01
1110 #define MOTOR_TYPE_DC 0x02
1111 #define MOTOR_TYPE_BLDC 0x03
1128 #define ENCSET_DIFFERENTIAL_OUTPUT 0x001
1129 #define ENCSET_PUSHPULL_OUTPUT 0x004
1130 #define ENCSET_INDEXCHANNEL_PRESENT 0x010
1131 #define ENCSET_REVOLUTIONSENSOR_PRESENT 0x040
1132 #define ENCSET_REVOLUTIONSENSOR_ACTIVE_HIGH 0x100
1149 #define MB_AVAILABLE 0x01
1150 #define MB_POWERED_HOLD 0x02
1167 #define TS_TYPE_BITS 0x07
1168 #define TS_TYPE_UNKNOWN 0x00
1169 #define TS_TYPE_THERMOCOUPLE 0x01
1170 #define TS_TYPE_SEMICONDUCTOR 0x02
1171 #define TS_AVAILABLE 0x08
1188 #define LS_ON_SW1_AVAILABLE 0x01
1189 #define LS_ON_SW2_AVAILABLE 0x02
1190 #define LS_SW1_ACTIVE_LOW 0x04
1191 #define LS_SW2_ACTIVE_LOW 0x08
1192 #define LS_SHORTED 0x10
1211 #define BACK_EMF_INDUCTANCE_AUTO 0x01
1212 #define BACK_EMF_RESISTANCE_AUTO 0x02
1213 #define BACK_EMF_KM_AUTO 0x04
1712 unsigned int MaxSpeed[10];
1713 unsigned int uMaxSpeed[10];
1714 unsigned int Timeout[9];
1753 unsigned int Timeout[9];
1889 char ControllerName[17];
1904 unsigned int UserData[7];
1973 unsigned int Param1;
2183 char Manufacturer[5];
2184 char ManufacturerId[3];
2185 char ProductDescription[9];
2257 unsigned int deprecated;
2275 uint8_t DebugData[128];
2291 uint8_t DebugData[128];
2305 char PositionerName[17];
2321 char Manufacturer[17];
2322 char PartNumber[25];
2362 char Manufacturer[17];
2363 char PartNumber[25];
2417 char Manufacturer[17];
2418 char PartNumber[25];
2455 char Manufacturer[17];
2456 char PartNumber[25];
2492 char Manufacturer[17];
2493 char PartNumber[25];
2531 char MagneticBrakeInfo[25];
2536 char TemperatureSensorInfo[25];
5376 #if !defined(MATLAB_IMPORT) && !defined(LABVIEW64_IMPORT) && !defined(LABVIEW32_IMPORT)
5547 #if defined(__cplusplus)