Releases: intrepidcs/python_ics
v905.10
-Updated icsnVC40.h to v905.10
-Fixed a bunch of issues with setting structures. Script was essentially completely re-written with unit tests now. s_fire3_settings
network enables was specifically not working and probably a lot more.
v904.18
-Updated icsnVC40.h to v904.18. v904.18 support added setting support for EtherBADGE (s_ether_badge_settings
)
Setting structures changes (Addition of ethernet_settings2
structure):
s_fire3_settings
s_flex_vnetz_settings
sobd2_pro_settings
srad_jupiter_settings
srad_star2_settings
svcan4_ind_settings
svcan4_settings
Added NEODEVICE
defines for the following devices:
NEODEVICE_ETHER_BADGE
NEODEVICE_RADSTAR2_A2B
NEODEVICE_RADEPSILON
NEODEVICE_OBD2_SIM_DOIP
NEODEVICE_OBD2_DEV
v903.17
Whats New?
v903 is a new release that implements features that break existing API in some areas.
ISO 15765-2
old naming conventions have been updated to reflect closer to the actual codebase.
# Old:
tx_msg = ics.CmISO157652TxMessage()
rx_msg = ics.CmISO157652RxMessage()
# New:
tx_msg = ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message()
rx_msg = ics.st_cm_iso157652_rx_message.st_cm_iso157652_rx_message()
ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message() data structure is now a ctypes.c_ubytes array instead of a python list.
# Old:
msg.data = [x for x in range(number_of_bytes)]
# New:
my_data = [x for x in range(number_of_bytes)]
msg.data = (ctypes.c_ubyte*len(msg.data))(*my_data)
>>> msg.data
<ics.structures.st_cm_iso157652_tx_message.c_ubyte_Array_4096 object at 0x0000023E534BE940>
Settings
v903 and up have converted over to a new auto generation of icsnVC40.h. This enables faster support for newer Intrepid devices and less error prone. With this switch we have moved to using ics.s_device_settings.
# Old behavior:
device = ics.open_device()
settings = ics.get_device_settings(device)
# settings is a Vcan3Settings type
settings.can1.Baudrate = 1
ics.set_device_settings(device, settings)
# New behavior
device = ics.open_device()
settings = ics.get_device_settings(device)
# settings is a s_device_settings type
settings.vcan3.can1.Baudrate = 1
ics.set_device_settings(device, settings)
Setting support for the following devices:
red: s_red_settings
fire: s_fire_settings
firevnet: s_fire_vnet_settings
cyan: s_cyan_settings (FIRE2)
vcan3: svcan3_settings
vcan4: svcan4_settings
ecu: secu_settings
ievb: sievb_settings
pendant: s_pendant_settings
radgalaxy: srad_galaxy_settings
radstar2: srad_star2_settings
neoobd2_sim: sobd2_sim_settings
cmprobe: s_cm_probe_settings
obd2pro: sobd2_pro_settings
vcan412: svcan412_settings
vcan4_12: svcan412_settings
neoecu_avb: secu_avb_settings
radsupermoon: srad_super_moon_settings
radmoon2: srad_moon2_settings
pluto: srad_pluto_settings
plutoswitch: s_pluto_switch_settings_s
radgigalog: srad_gigalog_settings
canhub: scan_hub_settings
neoecu12: s_neo_ecu12_settings
vcanrf: svcanrf_settings
eevb: seevb_settings
flexvnetz: s_flex_vnetz_settings
vividcan: s_vivid_can_settings
vcan4_ind: svcan4_ind_settings
radgigastar: srad_gigastar_settings
jupiter: srad_jupiter_settings
fire3: s_fire3_settings
radmoon_duo: s_rad_moon_duo_settings
PyInstaller
Due to the added complexity underneath when building PyInstaller hidden_imports.py should be used now in your spec script.
Other Fixes and Changes
Expanded documentation.
Adding support for Python 3.8 and Python 3.9.
Updated iso15765 example to utilize new flags.
Updated documentation to mention libicsneolegacy.so
Fixed an issue when get_messages() timeout was 0 no messages were returned.
Updated documentation and added use_server option for opening devices.
Added read_jupiter_firmware and write_jupiter_firmware methods.
Fixed a memory leak in find_devices()
Add methods for Gigalog/Gigastar disk formatting
Fixed a documentation issue per issue #90
Fixed month being offset by 1 in ics.get_rtc().
Fixed transmit_messages() to handle extended network ids.
Fixed code related to meth_get_backup_power_ready() internally.
v4.6
v4.5
v4.4
v4.3
v3.2post2
v4.2
Implemented ics.enable_bus_voltage_monitor()
and ics.get_bus_voltage()