From 99f6210b6056f2f3bff270e9c9b977e56469a58a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Nov 2025 07:05:36 -0500 Subject: [PATCH 1/2] Update to 9.22.16 --- include/ics/icsnVC40.h | 198 +++++++++++++++++++++++++++++- src/setup_module_auto_defines.cpp | 8 ++ 2 files changed, 202 insertions(+), 4 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 5eaf45bc6..27d90e3b8 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -253,6 +253,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_GIGASTAR2 (0x00000029) #define NEODEVICE_FIRE3_T1S_LIN (0x0000002A) #define NEODEVICE_FIRE3_T1S_SENT (0x0000002B) +#define NEODEVICE_RADGEMINI (0x0000002C) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) @@ -285,7 +286,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB_DEPRECATED //clang-format on -#define DEVICECOUNT_FOR_EXPLORER (34) //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (36) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -568,6 +569,7 @@ typedef struct _stAPIFirmwareInfo /* Define number of CMP streams per device*/ #define CMP_STREAMS_FIRE3 (10) #define CMP_STREAMS_FIRE3FR (10) +#define CMP_STREAMS_FIRE3T1SLIN (10) #define CMP_STREAMS_RED2 (10) #define CMP_STREAMS_A2B (3) #define CMP_STREAMS_GIGASTAR (10) @@ -951,6 +953,11 @@ typedef union _stChipVersions uint8_t mchip_major; uint8_t mchip_minor; } radmoon3_versions; + struct + { + uint8_t mchip_major; + uint8_t mchip_minor; + } radgemini_versions; struct { @@ -1007,6 +1014,16 @@ typedef union _stChipVersions uint8_t vem_f_minor; } fire3_flexray_versions; + struct + { + uint8_t zchip_major; + uint8_t zchip_minor; + uint8_t schip_major; + uint8_t schip_minor; + uint8_t vem_z_major; + uint8_t vem_z_minor; + } fire3_t1slin_versions; + struct { uint8_t zynq_core_major; @@ -1271,6 +1288,7 @@ typedef enum SFP_ID_ICS_MV3244, SFP_ID_ICS_MC8670, SFP_ID_ICS_EN11100, + SFP_ID_ICS_AD1101, // add new entries here SFP_ID_MAX, } SfpId; @@ -1397,6 +1415,13 @@ typedef struct ETHERNET10T1S_SETTINGS_EXT_t } ETHERNET10T1S_SETTINGS_EXT; #define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 +typedef struct ETHERNET10T1L_SETTINGS_t +{ + uint8_t tx_mode; + uint8_t rsvd[7]; +} ETHERNET10T1L_SETTINGS; +#define ETHERNET10T1L_SETTINGS_SIZE 8 + /* * START - MACsec Definitions */ @@ -2948,6 +2973,31 @@ typedef struct _SRADMoon3Settings #define SRADMoon3Settings_SIZE 68 +typedef struct _SRADGeminiSettings +{ + uint16_t perf_en; // 2 + + ETHERNET_SETTINGS2 ethernet1; // 16 + ETHERNET_SETTINGS2 ethernet2; // 16 + ETHERNET_SETTINGS2 autoEthernet1; // 16 + ETHERNET_SETTINGS2 autoEthernet2; // 16 + + uint16_t network_enabled_on_boot; // 2 + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint16_t network_enables_4; // 2 + uint64_t network_enables_5; // 8 + + struct + { + uint16_t enableLatencyTest : 1; + uint16_t reserved : 15; + } flags; // 2 +} SRADGeminiSettings; + +#define SRADGeminiSettings_SIZE 86 + typedef struct _SRADGigastarSettings { uint32_t ecu_id; @@ -3030,9 +3080,12 @@ typedef struct _SRADGigastarSettings CMP_GLOBAL_DATA cmp_global_data; CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_GIGASTAR]; + // SFP T1L + ETHERNET10T1L_SETTINGS sfp_t1l_1; + ETHERNET10T1L_SETTINGS sfp_t1l_2; } SRADGigastarSettings; -#define SRADGigastarSettings_SIZE 1010 +#define SRADGigastarSettings_SIZE 1026 typedef struct _SRADGalaxy2Settings { @@ -3824,6 +3877,129 @@ typedef struct _SFire3FlexraySettings } SFire3FlexraySettings; #define SFire3FlexraySettings_SIZE (1372) +typedef struct _SFire3T1SLINSettings +{ + uint16_t perf_en; + uint16_t network_enabled_on_boot; + uint16_t misc_io_on_report_events; + uint16_t pwr_man_enable; + int16_t iso15765_separation_time_offset; + uint16_t slaveVnetA; + uint32_t reserved; + uint64_t termination_enables_1; + uint64_t network_enables; + uint32_t pwr_man_timeout; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ETHERNET_SETTINGS ethernet_1; + TIMESYNC_ICSHARDWARE_SETTINGS timeSync; + STextAPISettings text_api; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t busMessagesToAndroid : 1; + uint32_t reserved1 : 1; + uint32_t enableDefaultLogger : 1; + uint32_t enableDefaultUpload : 1; + uint32_t reserved : 26; + } flags; + DISK_SETTINGS disk; + uint16_t misc_io_report_period; + uint16_t ain_threshold; + uint16_t misc_io_analog_enable; + uint16_t digitalIoThresholdTicks; + uint16_t digitalIoThresholdEnable; + uint16_t misc_io_initial_ddr; + uint16_t misc_io_initial_latch; + ETHERNET_SETTINGS2 ethernet2_1; + ETHERNET_SETTINGS ethernet_2; + ETHERNET_SETTINGS2 ethernet2_2; + Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; + + /* VEM */ + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s7; + ETHERNET10T1S_SETTINGS t1s7; + ETHERNET10T1S_SETTINGS_EXT t1s7Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s8; + ETHERNET10T1S_SETTINGS t1s8; + ETHERNET10T1S_SETTINGS_EXT t1s8Ext; + + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + LIN_SETTINGS lin5; + LIN_SETTINGS lin6; + LIN_SETTINGS lin7; + LIN_SETTINGS lin8; + LIN_SETTINGS lin9; + LIN_SETTINGS lin10; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + + uint16_t iso_tester_pullup_enable; + + uint64_t network_enables_5; + + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3T1SLIN]; + uint32_t networkTimeSync; +} SFire3T1sLinSettings; +#define SFire3T1sLinSettings_SIZE (1594) + #define RADEPSILON_NUM_PORTS 18 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 #define EPSILON_88Q6113_SWITCH_A 1 @@ -4303,8 +4479,11 @@ typedef struct _SRADGigaStar2Settings LIN_SETTINGS lin14; LIN_SETTINGS lin15; LIN_SETTINGS lin16; + // SFP T1L + ETHERNET10T1L_SETTINGS sfp_t1l_1; + ETHERNET10T1L_SETTINGS sfp_t1l_2; } SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2140 +#define SRADGigastar2Settings_SIZE 2156 // variants to be used with icsneoSetFirmwareVariant enum Gigastar2FwVariants @@ -4443,10 +4622,12 @@ typedef struct _GLOBAL_SETTINGS SRed2Settings red2; SFire3Settings fire3; SFire3FlexraySettings fire3fr; + SFire3T1sLinSettings fire3t1slin; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SRADGeminiSettings radgemini; SRADCometSettings radcomet; SRADComet3Settings radcomet3; SRADGigastar2Settings radgigastar2; @@ -4505,6 +4686,8 @@ typedef enum _EDeviceSettingsType DeviceRADGalaxy2SettingsType, DeviceRADGigastar2SettingsType, DeviceRADMoonT1SSettingsType, + DeviceRADGeminiSettingsType, + DeviceFire3T1sLinSettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -4544,7 +4727,9 @@ typedef struct _SDeviceSettings SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SRADGeminiSettings radgemini; SFire3FlexraySettings fire3Flexray; + SFire3T1sLinSettings fire3t1slin; SRADCometSettings radcomet; SRADComet3Settings radcomet3; SRADGigastar2Settings radgigastar2; @@ -5144,7 +5329,9 @@ typedef struct typedef struct { uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus[3]; + ethernetNetworkStatus_t ethernetStatus[16]; + uint8_t numNetworks; + uint8_t reserved; uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; @@ -5399,6 +5586,7 @@ CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS_EXT); +CHECK_STRUCT_SIZE(ETHERNET10T1L_SETTINGS); CHECK_STRUCT_SIZE(MACSEC_SETTINGS); CHECK_STRUCT_SIZE(LOGGER_SETTINGS); CHECK_STRUCT_SIZE(DISK_SETTINGS); @@ -5444,7 +5632,9 @@ CHECK_STRUCT_SIZE(SRADEpsilonSettings); CHECK_STRUCT_SIZE(RAD_GPTP_SETTINGS); CHECK_STRUCT_SIZE(SRADBMSSettings); CHECK_STRUCT_SIZE(SRADMoon3Settings); +CHECK_STRUCT_SIZE(SRADGeminiSettings); CHECK_STRUCT_SIZE(SFire3FlexraySettings); +CHECK_STRUCT_SIZE(SFire3T1sLinSettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); CHECK_STRUCT_SIZE(SRADComet3Settings); diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 0a390264b..232257ac1 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -194,6 +194,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NEODEVICE_GIGASTAR2", PyLong_FromLongLong(NEODEVICE_GIGASTAR2)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_LIN", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_LIN)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_SENT", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_SENT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADGEMINI", PyLong_FromLongLong(NEODEVICE_RADGEMINI)); result += PyModule_AddObjectRef(module, "NEODEVICE_RED", PyLong_FromLongLong(NEODEVICE_RED)); result += PyModule_AddObjectRef(module, "NEODEVICE_ECU", PyLong_FromLongLong(NEODEVICE_ECU)); result += PyModule_AddObjectRef(module, "NEODEVICE_IEVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_IEVB_DEPRECATED)); @@ -363,6 +364,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3", PyLong_FromLongLong(CMP_STREAMS_FIRE3)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3FR", PyLong_FromLongLong(CMP_STREAMS_FIRE3FR)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3T1SLIN", PyLong_FromLongLong(CMP_STREAMS_FIRE3T1SLIN)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_RED2", PyLong_FromLongLong(CMP_STREAMS_RED2)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_A2B", PyLong_FromLongLong(CMP_STREAMS_A2B)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_GIGASTAR", PyLong_FromLongLong(CMP_STREAMS_GIGASTAR)); @@ -507,6 +509,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MV3244", PyLong_FromLongLong(SFP_ID_ICS_MV3244)); result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MC8670", PyLong_FromLongLong(SFP_ID_ICS_MC8670)); result += PyModule_AddObjectRef(module, "SFP_ID_ICS_EN11100", PyLong_FromLongLong(SFP_ID_ICS_EN11100)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_AD1101", PyLong_FromLongLong(SFP_ID_ICS_AD1101)); result += PyModule_AddObjectRef(module, "SFP_ID_MAX", PyLong_FromLongLong(SFP_ID_MAX)); // end of enum - } SfpId; @@ -542,6 +545,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK)); result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING)); result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_EXT_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1S_SETTINGS_EXT_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1L_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1L_SETTINGS_SIZE)); // enum result += PyModule_AddObjectRef(module, "MACSEC_PACKET_NO_VLAN_OR_MPLS", PyLong_FromLongLong(MACSEC_PACKET_NO_VLAN_OR_MPLS)); result += PyModule_AddObjectRef(module, "MACSEC_PACKET_SINGLE_VLAN", PyLong_FromLongLong(MACSEC_PACKET_SINGLE_VLAN)); @@ -861,6 +865,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SRADA2BSettings_SIZE", PyLong_FromUnsignedLongLong(SRADA2BSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADMoon2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SRADMoon3Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADGeminiSettings_SIZE", PyLong_FromUnsignedLongLong(SRADGeminiSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADGigastarSettings_SIZE", PyLong_FromUnsignedLongLong(SRADGigastarSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADGalaxy2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADGalaxy2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SVividCANSettings_SIZE", PyLong_FromUnsignedLongLong(SVividCANSettings_SIZE)); @@ -905,6 +910,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SRed2Settings_SIZE", PyLong_FromLongLong(SRed2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SFire3Settings_SIZE", PyLong_FromLongLong(SFire3Settings_SIZE)); result += PyModule_AddObjectRef(module, "SFire3FlexraySettings_SIZE", PyLong_FromLongLong(SFire3FlexraySettings_SIZE)); + result += PyModule_AddObjectRef(module, "SFire3T1sLinSettings_SIZE", PyLong_FromLongLong(SFire3T1sLinSettings_SIZE)); result += PyModule_AddObjectRef(module, "RADEPSILON_NUM_PORTS", PyLong_FromUnsignedLongLong(RADEPSILON_NUM_PORTS)); result += PyModule_AddObjectRef(module, "RADEPSILON_MAX_PHY", PyLong_FromUnsignedLongLong(RADEPSILON_MAX_PHY)); result += PyModule_AddObjectRef(module, "EPSILON_88Q6113_SWITCH_A", PyLong_FromUnsignedLongLong(EPSILON_88Q6113_SWITCH_A)); @@ -1004,6 +1010,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DeviceRADGalaxy2SettingsType", PyLong_FromLongLong(DeviceRADGalaxy2SettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADGigastar2SettingsType", PyLong_FromLongLong(DeviceRADGigastar2SettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADMoonT1SSettingsType", PyLong_FromLongLong(DeviceRADMoonT1SSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADGeminiSettingsType", PyLong_FromLongLong(DeviceRADGeminiSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFire3T1sLinSettingsType", PyLong_FromLongLong(DeviceFire3T1sLinSettingsType)); result += PyModule_AddObjectRef(module, "DeviceSettingsTypeMax", PyLong_FromLongLong(DeviceSettingsTypeMax)); result += PyModule_AddObjectRef(module, "DeviceSettingsNone", PyLong_FromLongLong(DeviceSettingsNone)); // end of enum - } EDeviceSettingsType; From ba25d7397e07a7d74384784d3aa93542f2f1b81d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Nov 2025 07:17:59 -0500 Subject: [PATCH 2/2] fixed function signatures in various functions --- src/methods.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 06fe5870c..977fd12c9 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -2314,7 +2314,7 @@ PyObject* meth_read_sdcard(PyObject* self, PyObject* obj = NULL; unsigned long index = 0; unsigned long size = 0; - if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &index, &size)) { + if (!PyArg_ParseTuple(args, arg_parse("Okk:", __FUNCTION__), &obj, &index, &size)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2995,10 +2995,10 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); - ice::Function icsneoGetErrorInfo( + ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); + ice::Function icsneoGetErrorInfo( lib, "icsneoGetErrorInfo"); - int error = 0; + unsigned long error = 0; auto gil = PyAllowThreads(); if (!icsneoGetLastAPIError(handle, &error)) { gil.restore(); @@ -3019,7 +3019,7 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) &restart_needed)) { return set_ics_exception(exception_runtime_error(), "icsneoGetErrorInfo() Failed"); } - return Py_BuildValue("i, s, s, i, i", error, description_short, description_long, severity, restart_needed); + return Py_BuildValue("k, s, s, i, i", error, description_short, description_long, severity, restart_needed); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -3616,7 +3616,7 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; unsigned long networks = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &networks)) { + if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &networks)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3719,7 +3719,7 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; unsigned long channel = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &channel)) { + if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &channel)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3823,10 +3823,10 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - int bitrate = 0; + unsigned long bitrate = 0; int net_id = 0; int options = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oiii:", __FUNCTION__), &obj, &bitrate, &net_id)) { + if (!PyArg_ParseTuple(args, arg_parse("Okii:", __FUNCTION__), &obj, &bitrate, &net_id, &options)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3842,7 +3842,7 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); + ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); auto gil = PyAllowThreads(); if (!icsneoSetBitRateEx(handle, bitrate, net_id, options)) { gil.restore(); @@ -4957,7 +4957,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) Py_buffer data = {}; uint8_t flags = 0; bool check_size = true; - if (!PyArg_ParseTuple(args, arg_parse("OIy*|bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { + if (!PyArg_ParseTuple(args, arg_parse("OIy*|Bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { return NULL; } @@ -5003,7 +5003,7 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) EUartPort_t port = eUART0; unsigned int bytesToRead = 256; uint8_t flags = 0; - if (!PyArg_ParseTuple(args, arg_parse("OI|Is:", __FUNCTION__), &obj, &port, &bytesToRead, &flags)) { + if (!PyArg_ParseTuple(args, arg_parse("OI|IB:", __FUNCTION__), &obj, &port, &bytesToRead, &flags)) { return NULL; } // Get the device handle @@ -5029,10 +5029,10 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) size_t bytesActuallyRead = 0; // int _stdcall icsneoUartRead(void* hObject, const EUartPort_t uart, void* bData, const size_t bytesToRead, // size_t* bytesActuallyRead, uint8_t* flags) - ice::Function + ice::Function icsneoUartRead(lib, "icsneoUartRead"); auto gil = PyAllowThreads(); - if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { + if (!icsneoUartRead(handle, port, buffer, bytesToRead, &bytesActuallyRead, &flags)) { gil.restore(); free(buffer); buffer = NULL; @@ -5096,7 +5096,7 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; - if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &port)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &port)) { return NULL; } // Get the device handle