2 from datetime
import datetime
10 device_version_array = device_c_api_version.split(
".")
11 support_version_array = support_c_api_version.split(
".")
12 if len(support_version_array) != 3:
13 return "support_c_api_version error" 14 if len(device_version_array) != 3:
15 return "device_c_api_version error" 17 version_fail = device_c_api_version +
">" + support_c_api_version
19 if device_version_array == support_version_array:
23 if device_version_array[i] < support_version_array[i]:
36 "wrong slot settings",
40 return repr(error[self.
value])
45 super(ioThinx_4530_API, self).
__init__()
55 raise AssertionError(error)
58 self.
lib = ctypes.cdll.LoadLibrary(shared_library)
64 return(str(
".".join(file.split(
".")[2:5])))
67 error = self.lib.ioThinx_IO_Client_Init(
None)
72 p_status = ctypes.c_uint8()
73 error = self.lib.ioThinx_IO_GetBusStatus(ctypes.byref(p_status))
79 error = self.lib.ioThinx_IO_Config_Reload(
None)
88 p_values = ctypes.c_uint32()
89 error = self.lib.ioThinx_DI_GetValues(ctypes.c_uint32(slot),
90 ctypes.byref(p_values))
93 values = [int(b)
for b
in bin(p_values.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
97 buff = (ctypes.c_uint32 * count)()
98 error = self.lib.ioThinx_DI_GetCntValues(ctypes.c_uint32(slot),
99 ctypes.c_uint8(start),
100 ctypes.c_uint8(count),
106 buff_list.append(value)
110 buff = (ctypes.c_uint32 * count)(*buff_list)
111 error = self.lib.ioThinx_DI_SetCntValues(ctypes.c_uint32(slot),
112 ctypes.c_uint8(start),
113 ctypes.c_uint8(count),
119 p_starts = ctypes.c_uint32()
120 error = self.lib.ioThinx_DI_GetCntStarts(ctypes.c_uint32(slot),
121 ctypes.byref(p_starts))
124 starts = [int(b)
for b
in bin(p_starts.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
128 starts = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
129 error = self.lib.ioThinx_DI_SetCntStarts(ctypes.c_uint32(slot),
130 ctypes.c_uint32(starts))
135 starts = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
136 error = self.lib.ioThinx_DI_SetCntStops(ctypes.c_uint32(slot),
137 ctypes.c_uint32(starts))
142 p_overflows = ctypes.c_uint32()
143 error = self.lib.ioThinx_DI_GetCntOverflows(ctypes.c_uint32(slot),
144 ctypes.byref(p_overflows))
147 overflows = [int(b)
for b
in bin(p_overflows.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
151 overflows = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
152 error = self.lib.ioThinx_DI_SetCntOverflows(ctypes.c_uint32(slot),
153 ctypes.c_uint32(overflows))
158 buff = (ctypes.c_uint8 * count)()
159 error = self.lib.ioThinx_DI_Config_GetModes(ctypes.c_uint32(slot),
160 ctypes.c_uint8(start),
161 ctypes.c_uint8(count),
167 buff_list.append(value)
171 buff = (ctypes.c_uint8 * count)(*buff_list)
172 error = self.lib.ioThinx_DI_Config_SetModes(ctypes.c_uint32(slot),
173 ctypes.c_uint8(start),
174 ctypes.c_uint8(count),
180 buff = (ctypes.c_uint16 * count)()
181 error = self.lib.ioThinx_DI_Config_GetFilters(ctypes.c_uint32(slot),
182 ctypes.c_uint8(start),
183 ctypes.c_uint8(count),
189 buff_list.append(value)
193 buff = (ctypes.c_uint16 * count)(*buff_list)
194 error = self.lib.ioThinx_DI_Config_SetFilters(ctypes.c_uint32(slot),
195 ctypes.c_uint8(start),
196 ctypes.c_uint8(count),
202 buff = (ctypes.c_uint8 * count)()
203 error = self.lib.ioThinx_DI_Config_GetCntTriggers(ctypes.c_uint32(slot),
204 ctypes.c_uint8(start),
205 ctypes.c_uint8(count),
211 buff_list.append(value)
215 buff = (ctypes.c_uint8 * count)(*buff_list)
216 error = self.lib.ioThinx_DI_Config_SetCntTriggers(ctypes.c_uint32(slot),
217 ctypes.c_uint8(start),
218 ctypes.c_uint8(count),
224 buff = (ctypes.c_uint32 * count)()
225 error = self.lib.ioThinx_DI_Config_GetCntValues(ctypes.c_uint32(slot),
226 ctypes.c_uint8(start),
227 ctypes.c_uint8(count),
233 buff_list.append(value)
237 buff = (ctypes.c_uint32 * count)(*buff_list)
238 error = self.lib.ioThinx_DI_Config_SetCntValues(ctypes.c_uint32(slot),
239 ctypes.c_uint8(start),
240 ctypes.c_uint8(count),
249 p_values = ctypes.c_uint32()
250 error = self.lib.ioThinx_DO_GetValues(ctypes.c_uint32(slot),
251 ctypes.byref(p_values))
254 values = [int(b)
for b
in bin(p_values.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
258 values = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
259 error = self.lib.ioThinx_DO_SetValues(ctypes.c_uint32(slot),
260 ctypes.c_uint32(values))
265 buff = (ctypes.c_uint32 * count)()
266 error = self.lib.ioThinx_DO_GetPwmCounts(ctypes.c_uint32(slot),
267 ctypes.c_uint8(start),
268 ctypes.c_uint8(count),
274 buff_list.append(value)
278 buff = (ctypes.c_uint32 * count)(*buff_list)
279 error = self.lib.ioThinx_DO_SetPwmCounts(ctypes.c_uint32(slot),
280 ctypes.c_uint8(start),
281 ctypes.c_uint8(count),
287 p_starts = ctypes.c_uint32()
288 error = self.lib.ioThinx_DO_GetPwmStarts(ctypes.c_uint32(slot),
289 ctypes.byref(p_starts))
292 starts = [int(b)
for b
in bin(p_starts.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
296 starts = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
297 error = self.lib.ioThinx_DO_SetPwmStarts(ctypes.c_uint32(slot),
298 ctypes.c_uint32(starts))
303 stops = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
304 error = self.lib.ioThinx_DO_SetPwmStops(ctypes.c_uint32(slot),
305 ctypes.c_uint32(stops))
310 frequencies_buff = (ctypes.c_uint16 * count)()
311 duty_cycles_buff = (ctypes.c_uint16 * count)()
312 error = self.lib.ioThinx_DO_GetPwmConfigures(ctypes.c_uint32(slot),
313 ctypes.c_uint8(start),
314 ctypes.c_uint8(count),
315 ctypes.byref(frequencies_buff),
316 ctypes.byref(duty_cycles_buff))
320 frequencies_buff_list = []
321 for value
in frequencies_buff:
322 frequencies_buff_list.append(value)
323 duty_cycles_buff_list = []
324 for value
in duty_cycles_buff:
325 duty_cycles_buff_list.append(value)
326 return frequencies_buff_list, duty_cycles_buff_list
329 frequencies_buff_list,
330 duty_cycles_buff_list):
331 frequencies_buff = (ctypes.c_uint16 * count)(*frequencies_buff_list)
332 duty_cycles_buff = (ctypes.c_uint16 * count)(*duty_cycles_buff_list)
333 error = self.lib.ioThinx_DO_SetPwmConfigures(ctypes.c_uint32(slot),
334 ctypes.c_uint8(start),
335 ctypes.c_uint8(count),
336 ctypes.byref(frequencies_buff),
337 ctypes.byref(duty_cycles_buff))
342 buff = (ctypes.c_uint8 * count)()
343 error = self.lib.ioThinx_DO_Config_GetModes(ctypes.c_uint32(slot),
344 ctypes.c_uint8(start),
345 ctypes.c_uint8(count),
351 buff_list.append(value)
355 buff = (ctypes.c_uint8 * count)(*buff_list)
356 error = self.lib.ioThinx_DO_Config_SetModes(ctypes.c_uint32(slot),
357 ctypes.c_uint8(start),
358 ctypes.c_uint8(count),
364 buff = (ctypes.c_uint32 * count)()
365 error = self.lib.ioThinx_DO_Config_GetPwmCounts(ctypes.c_uint32(slot),
366 ctypes.c_uint8(start),
367 ctypes.c_uint8(count),
373 buff_list.append(value)
377 buff = (ctypes.c_uint32 * count)(*buff_list)
378 error = self.lib.ioThinx_DO_Config_SetPwmCounts(ctypes.c_uint32(slot),
379 ctypes.c_uint8(start),
380 ctypes.c_uint8(count),
386 frequencies_buff = (ctypes.c_uint16 * count)()
387 duty_cycles_buff = (ctypes.c_uint16 * count)()
388 error = self.lib.ioThinx_DO_Config_GetPwmConfigures(ctypes.c_uint32(slot),
389 ctypes.c_uint8(start),
390 ctypes.c_uint8(count),
391 ctypes.byref(frequencies_buff),
392 ctypes.byref(duty_cycles_buff))
396 frequencies_buff_list = []
397 for value
in frequencies_buff:
398 frequencies_buff_list.append(value)
399 duty_cycles_buff_list = []
400 for value
in duty_cycles_buff:
401 duty_cycles_buff_list.append(value)
403 return frequencies_buff_list, duty_cycles_buff_list
406 frequencies_buff_list,
407 duty_cycles_buff_list):
408 frequencies_buff = (ctypes.c_uint16 * count)(*frequencies_buff_list)
409 duty_cycles_buff = (ctypes.c_uint16 * count)(*duty_cycles_buff_list)
410 error = self.lib.ioThinx_DO_Config_SetPwmConfigures(ctypes.c_uint32(slot),
411 ctypes.c_uint8(start),
412 ctypes.c_uint8(count),
413 ctypes.byref(frequencies_buff),
414 ctypes.byref(duty_cycles_buff))
419 p_values = ctypes.c_uint32()
420 error = self.lib.ioThinx_Relay_GetValues(ctypes.c_uint32(slot),
421 ctypes.byref(p_values))
424 values = [int(b)
for b
in bin(p_values.value)[2:].zfill(SLOT_CH_NUM)[::-1]]
428 values = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
429 error = self.lib.ioThinx_Relay_SetValues(ctypes.c_uint32(slot),
430 ctypes.c_uint32(values))
435 buff = (ctypes.c_uint32 * count)()
436 error = self.lib.ioThinx_Relay_GetTotalCounts(ctypes.c_uint32(slot),
437 ctypes.c_uint8(start),
438 ctypes.c_uint8(count),
444 buff_list.append(value)
448 buff = (ctypes.c_uint32 * count)()
449 error = self.lib.ioThinx_Relay_GetCurrentCounts(ctypes.c_uint32(slot),
450 ctypes.c_uint8(start),
451 ctypes.c_uint8(count),
457 buff_list.append(value)
461 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
462 error = self.lib.ioThinx_Relay_ResetCurrentCounts(ctypes.c_uint32(slot),
463 ctypes.c_uint32(resets))
468 buff = (ctypes.c_float * count)()
469 error = self.lib.ioThinx_AI_GetEngs(ctypes.c_uint32(slot),
470 ctypes.c_uint8(start),
471 ctypes.c_uint8(count),
477 buff_list.append(value)
481 buff = (ctypes.c_float * count)()
482 error = self.lib.ioThinx_AI_GetMinEngs(ctypes.c_uint32(slot),
483 ctypes.c_uint8(start),
484 ctypes.c_uint8(count),
490 buff_list.append(value)
494 buff = (ctypes.c_float * count)()
495 error = self.lib.ioThinx_AI_GetMaxEngs(ctypes.c_uint32(slot),
496 ctypes.c_uint8(start),
497 ctypes.c_uint8(count),
503 buff_list.append(value)
507 buff = (ctypes.c_uint32 * count)()
508 error = self.lib.ioThinx_AI_GetRaws(ctypes.c_uint32(slot),
509 ctypes.c_uint8(start),
510 ctypes.c_uint8(count),
516 buff_list.append(value)
520 buff = (ctypes.c_uint32 * count)()
521 error = self.lib.ioThinx_AI_GetMinRaws(ctypes.c_uint32(slot),
522 ctypes.c_uint8(start),
523 ctypes.c_uint8(count),
529 buff_list.append(value)
533 buff = (ctypes.c_uint32 * count)()
534 error = self.lib.ioThinx_AI_GetMaxRaws(ctypes.c_uint32(slot),
535 ctypes.c_uint8(start),
536 ctypes.c_uint8(count),
542 buff_list.append(value)
546 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
547 error = self.lib.ioThinx_AI_ResetMins(ctypes.c_uint32(slot),
548 ctypes.c_uint32(resets))
553 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
554 error = self.lib.ioThinx_AI_ResetMaxs(ctypes.c_uint32(slot),
555 ctypes.c_uint32(resets))
560 buff = (ctypes.c_uint8 * count)()
561 error = self.lib.ioThinx_AI_GetStatuss(ctypes.c_uint32(slot),
562 ctypes.c_uint8(start),
563 ctypes.c_uint8(count),
569 buff_list.append(value)
573 buff = (ctypes.c_uint8 * count)()
574 error = self.lib.ioThinx_AI_Config_GetRanges(ctypes.c_uint32(slot),
575 ctypes.c_uint8(start),
576 ctypes.c_uint8(count),
582 buff_list.append(value)
586 buff = (ctypes.c_uint8 * count)(*buff_list)
587 error = self.lib.ioThinx_AI_Config_SetRanges(ctypes.c_uint32(slot),
588 ctypes.c_uint8(start),
589 ctypes.c_uint8(count),
595 buff = (ctypes.c_float * count)()
596 error = self.lib.ioThinx_AI_Config_GetBurnoutValues(ctypes.c_uint32(slot),
597 ctypes.c_uint8(start),
598 ctypes.c_uint8(count),
604 buff_list.append(value)
608 buff = (ctypes.c_float * count)(*buff_list)
609 error = self.lib.ioThinx_AI_Config_SetBurnoutValues(ctypes.c_uint32(slot),
610 ctypes.c_uint8(start),
611 ctypes.c_uint8(count),
617 buff = (ctypes.c_float * count)()
618 error = self.lib.ioThinx_TC_GetValues(ctypes.c_uint32(slot),
619 ctypes.c_uint8(start),
620 ctypes.c_uint8(count),
626 buff_list.append(value)
630 buff = (ctypes.c_float * count)()
631 error = self.lib.ioThinx_TC_GetMinValues(ctypes.c_uint32(slot),
632 ctypes.c_uint8(start),
633 ctypes.c_uint8(count),
639 buff_list.append(value)
643 buff = (ctypes.c_float * count)()
644 error = self.lib.ioThinx_TC_GetMaxValues(ctypes.c_uint32(slot),
645 ctypes.c_uint8(start),
646 ctypes.c_uint8(count),
652 buff_list.append(value)
656 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
657 error = self.lib.ioThinx_TC_ResetMins(ctypes.c_uint32(slot),
658 ctypes.c_uint32(resets))
663 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
664 error = self.lib.ioThinx_TC_ResetMaxs(ctypes.c_uint32(slot),
665 ctypes.c_uint32(resets))
670 buff = (ctypes.c_uint8 * count)()
671 error = self.lib.ioThinx_TC_GetStatuss(ctypes.c_uint32(slot),
672 ctypes.c_uint8(start),
673 ctypes.c_uint8(count),
679 buff_list.append(value)
683 buff = (ctypes.c_float * count)(*buff_list)
684 error = self.lib.ioThinx_TC_SetCalibrations(ctypes.c_uint32(slot),
685 ctypes.c_uint8(start),
686 ctypes.c_uint8(count),
692 error = self.lib.ioThinx_TC_ResetCalibrations(ctypes.c_uint32(slot),
693 ctypes.c_uint8(start),
694 ctypes.c_uint8(count))
699 buff = (ctypes.c_uint8 * count)()
700 error = self.lib.ioThinx_TC_Config_GetSensorTypes(ctypes.c_uint32(slot),
701 ctypes.c_uint8(start),
702 ctypes.c_uint8(count),
708 buff_list.append(value)
712 buff = (ctypes.c_uint8 * count)(*buff_list)
713 error = self.lib.ioThinx_TC_Config_SetSensorTypes(ctypes.c_uint32(slot),
714 ctypes.c_uint8(start),
715 ctypes.c_uint8(count),
721 buff = (ctypes.c_float * count)()
722 error = self.lib.ioThinx_RTD_GetValues(ctypes.c_uint32(slot),
723 ctypes.c_uint8(start),
724 ctypes.c_uint8(count),
730 buff_list.append(value)
734 buff = (ctypes.c_float * count)()
735 error = self.lib.ioThinx_RTD_GetMinValues(ctypes.c_uint32(slot),
736 ctypes.c_uint8(start),
737 ctypes.c_uint8(count),
743 buff_list.append(value)
747 buff = (ctypes.c_float * count)()
748 error = self.lib.ioThinx_RTD_GetMaxValues(ctypes.c_uint32(slot),
749 ctypes.c_uint8(start),
750 ctypes.c_uint8(count),
756 buff_list.append(value)
760 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
761 error = self.lib.ioThinx_RTD_ResetMins(ctypes.c_uint32(slot),
762 ctypes.c_uint32(resets))
767 resets = int(
"".join(map(str, buff_list[:: -1])), BIN_TYPE)
768 error = self.lib.ioThinx_RTD_ResetMaxs(ctypes.c_uint32(slot),
769 ctypes.c_uint32(resets))
774 buff = (ctypes.c_uint8 * count)()
775 error = self.lib.ioThinx_RTD_GetStatuss(ctypes.c_uint32(slot),
776 ctypes.c_uint8(start),
777 ctypes.c_uint8(count),
783 buff_list.append(value)
787 buff = (ctypes.c_float * count)(*buff_list)
788 error = self.lib.ioThinx_RTD_SetCalibrations(ctypes.c_uint32(slot),
789 ctypes.c_uint8(start),
790 ctypes.c_uint8(count),
796 error = self.lib.ioThinx_RTD_ResetCalibrations(ctypes.c_uint32(slot),
797 ctypes.c_uint8(start),
798 ctypes.c_uint8(count))
803 buff = (ctypes.c_uint8 * count)()
804 error = self.lib.ioThinx_RTD_Config_GetSensorTypes(ctypes.c_uint32(slot),
805 ctypes.c_uint8(start),
806 ctypes.c_uint8(count),
812 buff_list.append(value)
816 buff = (ctypes.c_uint8 * count)(*buff_list)
817 error = self.lib.ioThinx_RTD_Config_SetSensorTypes(ctypes.c_uint32(slot),
818 ctypes.c_uint8(start),
819 ctypes.c_uint8(count),
829 buff = (ctypes.c_uint8 * count)()
830 error = self.lib.ioThinx_PWR_GetSysStatus(ctypes.c_uint32(slot),
831 ctypes.c_uint8(start),
832 ctypes.c_uint8(count),
838 buff_list.append(value)
842 buff = (ctypes.c_uint8 * count)()
843 error = self.lib.ioThinx_PWR_GetFieldStatus(ctypes.c_uint32(slot),
844 ctypes.c_uint8(start),
845 ctypes.c_uint8(count),
851 buff_list.append(value)
855 buff = (ctypes.c_float * count)()
856 error = self.lib.ioThinx_PWR_Config_GetAlarms(ctypes.c_uint32(slot),
857 ctypes.c_uint8(start),
858 ctypes.c_uint8(count),
864 buff_list.append(value)
868 buff = (ctypes.c_float * count)(*buff_list)
869 error = self.lib.ioThinx_PWR_Config_SetAlarms(ctypes.c_uint32(slot),
870 ctypes.c_uint8(start),
871 ctypes.c_uint8(count),
882 _fields_ = [(
'model_name', (ctypes.c_uint8 * 20)),
883 (
'product_id', ctypes.c_uint32),
884 (
'fwr_version', ctypes.c_uint16),
885 (
'fwr_build_date', ctypes.c_uint32),
886 (
'serial_number', (ctypes.c_uint8 * 13))]
889 error = self.lib.ioThinx_Misc_GetModuleInfo(ctypes.c_uint8(slot),
890 ctypes.byref(p_module_info))
894 def convert_build_date_from_hex_to_datetime():
895 build_date = hex(p_module_info.fwr_build_date).strip(
'0x').strip(
'L')
896 build_date = [str(int(build_date[i:i + 2], 16))
for i
in range(0, len(build_date), BIN_TYPE)]
897 build_date = datetime.strptime(
"".join(build_date),
'%y%m%d%H')
899 fwr_build_date = convert_build_date_from_hex_to_datetime()
902 'model_name': str(bytearray(p_module_info.model_name).decode().rstrip(
'\x00')),
903 'product_id': hex(p_module_info.product_id).rstrip(
"L"),
904 'fwr_version': hex(p_module_info.fwr_version),
905 'fwr_build_date': fwr_build_date,
906 'serial_number': str(bytearray(p_module_info.serial_number).decode().rstrip(
'\x00')),
911 pmodule_count = ctypes.c_uint32()
912 error = self.lib.ioThinx_Misc_GetModuleCount(ctypes.byref(pmodule_count))
915 return pmodule_count.value
918 p_state = ctypes.c_uint8()
919 error = self.lib.ioThinx_Misc_GetRotarySwitchState(ctypes.c_uint32(slot),
920 ctypes.byref(p_state))
926 error = self.lib.ioThinx_Misc_SetUserLedState(ctypes.c_uint32(slot),
927 ctypes.c_uint8(channel),
928 ctypes.c_uint8(state))
933 p_state = ctypes.c_uint8()
934 error = self.lib.ioThinx_Misc_GetPushButtonState(ctypes.c_uint32(slot),
935 ctypes.byref(p_state))
941 p_state = ctypes.c_uint8()
942 error = self.lib.ioThinx_Misc_GetLocateState(ctypes.c_uint32(slot),
943 ctypes.byref(p_state))
949 error = self.lib.ioThinx_Misc_SetLocateState(ctypes.c_uint32(slot),
950 ctypes.c_uint8(state))
959 error = self.lib.ioThinx_Uart_Open(
960 ctypes.c_uint32(slot),
961 ctypes.c_uint32(port),
962 ctypes.c_uint32(mode),
963 ctypes.c_uint32(baudrate),
def ioThinx_DO_SetPwmCounts(self, slot, start, count, buff_list)
def ioThinx_DO_SetValues(self, slot, buff_list)
def ioThinx_DI_GetCntStarts(self, slot)
def ioThinx_DI_Config_GetCntValues(self, slot, start, count)
def ioThinx_AI_GetMaxRaws(self, slot, start, count)
def ioThinx_Misc_SetUserLedState(self, slot, channel, state)
def ioThinx_PWR_Config_GetAlarms(self, slot, start, count)
def ioThinx_RTD_ResetMaxs(self, slot, buff_list)
def ioThinx_Misc_GetModuleInfo(self, slot)
def ioThinx_DI_Config_SetFilters(self, slot, start, count, buff_list)
def ioThinx_RTD_GetMinValues(self, slot, start, count)
def ioThinx_Relay_ResetCurrentCounts(self, slot, buff_list)
def ioThinx_DO_Config_SetModes(self, slot, start, count, buff_list)
def __init__(self, value)
def ioThinx_TC_GetStatuss(self, slot, start, count)
def ioThinx_DO_GetPwmConfigures(self, slot, start, count)
def ioThinx_RTD_ResetMins(self, slot, buff_list)
def ioThinx_DO_Config_GetPwmCounts(self, slot, start, count)
def ioThinx_DO_GetPwmCounts(self, slot, start, count)
def ioThinx_Uart_Open(self, slot, port, mode, baudrate)
def ioThinx_RTD_Config_GetSensorTypes(self, slot, start, count)
def ioThinx_Misc_SetLocateState(self, slot, state)
def ioThinx_DI_SetCntStarts(self, slot, buff_list)
def ioThinx_DO_SetPwmConfigures(self, slot, start, count, frequencies_buff_list, duty_cycles_buff_list)
def check_c_api_version(device_c_api_version, support_c_api_version)
def ioThinx_AI_GetStatuss(self, slot, start, count)
def ioThinx_AI_ResetMaxs(self, slot, buff_list)
def ioThinx_DI_SetCntStops(self, slot, buff_list)
def ioThinx_RTD_GetValues(self, slot, start, count)
def ioThinx_DO_Config_GetPwmConfigures(self, slot, start, count)
def ioThinx_AI_GetRaws(self, slot, start, count)
def ioThinx_TC_Config_SetSensorTypes(self, slot, start, count, buff_list)
def get_shared_library_version(self)
def ioThinx_Relay_GetCurrentCounts(self, slot, start, count)
def ioThinx_DI_GetCntValues(self, slot, start, count)
def ioThinx_DO_GetPwmStarts(self, slot)
def ioThinx_DI_SetCntOverflows(self, slot, buff_list)
def ioThinx_TC_SetCalibrations(self, slot, start, count, buff_list)
def ioThinx_Relay_GetTotalCounts(self, slot, start, count)
def ioThinx_PWR_Config_SetAlarms(self, slot, start, count, buff_list)
def ioThinx_RTD_GetMaxValues(self, slot, start, count)
def ioThinx_RTD_SetCalibrations(self, slot, start, count, buff_list)
def ioThinx_TC_GetMinValues(self, slot, start, count)
def ioThinx_TC_ResetCalibrations(self, slot, start, count)
def ioThinx_AI_Config_GetBurnoutValues(self, slot, start, count)
def ioThinx_DO_SetPwmStarts(self, slot, buff_list)
def ioThinx_DI_GetCntOverflows(self, slot)
def ioThinx_TC_GetMaxValues(self, slot, start, count)
def ioThinx_PWR_GetFieldStatus(self, slot, start, count)
def ioThinx_IO_GetBusStatus(self)
def ioThinx_DI_Config_SetModes(self, slot, start, count, buff_list)
def ioThinx_TC_GetValues(self, slot, start, count)
def ioThinx_AI_Config_SetRanges(self, slot, start, count, buff_list)
def ioThinx_DI_GetValues(self, slot)
def ioThinx_AI_GetMaxEngs(self, slot, start, count)
def ioThinx_DI_SetCntValues(self, slot, start, count, buff_list)
def ioThinx_AI_ResetMins(self, slot, buff_list)
def ioThinx_DO_GetValues(self, slot)
def ioThinx_RTD_GetStatuss(self, slot, start, count)
def ioThinx_IO_Config_Reload(self)
def ioThinx_RTD_Config_SetSensorTypes(self, slot, start, count, buff_list)
def ioThinx_AI_GetMinRaws(self, slot, start, count)
def ioThinx_DI_Config_SetCntTriggers(self, slot, start, count, buff_list)
def ioThinx_RTD_ResetCalibrations(self, slot, start, count)
def ioThinx_DO_SetPwmStops(self, slot, buff_list)
def ioThinx_Misc_GetRotarySwitchState(self, slot)
def ioThinx_Relay_GetValues(self, slot)
def ioThinx_DO_Config_GetModes(self, slot, start, count)
def ioThinx_AI_GetEngs(self, slot, start, count)
def ioThinx_AI_GetMinEngs(self, slot, start, count)
def ioThinx_AI_Config_SetBurnoutValues(self, slot, start, count, buff_list)
def ioThinx_TC_Config_GetSensorTypes(self, slot, start, count)
def ioThinx_DI_Config_GetCntTriggers(self, slot, start, count)
def ioThinx_Misc_GetPushButtonState(self, slot)
def ioThinx_TC_ResetMins(self, slot, buff_list)
def ioThinx_DI_Config_SetCntValues(self, slot, start, count, buff_list)
def ioThinx_DI_Config_GetFilters(self, slot, start, count)
def ioThinx_DI_Config_GetModes(self, slot, start, count)
def ioThinx_IO_Client_Init(self)
def ioThinx_PWR_GetSysStatus(self, slot, start, count)
def ioThinx_Misc_GetLocateState(self, slot)
def ioThinx_DO_Config_SetPwmCounts(self, slot, start, count, buff_list)
def ioThinx_TC_ResetMaxs(self, slot, buff_list)
def ioThinx_AI_Config_GetRanges(self, slot, start, count)
def ioThinx_Misc_GetModuleCount(self)
def ioThinx_Relay_SetValues(self, slot, buff_list)
def ioThinx_DO_Config_SetPwmConfigures(self, slot, start, count, frequencies_buff_list, duty_cycles_buff_list)