Skip to content

Commit 1d7f2ad

Browse files
updated lin settings example
1 parent 02489b3 commit 1d7f2ad

2 files changed

Lines changed: 100 additions & 33 deletions

File tree

examples/lin_settings_example.py

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
import ics
2+
from ics.structures.s_device_settings import s_device_settings
3+
from ics.structures.e_device_settings_type import e_device_settings_type
4+
5+
6+
def get_device_specific_settings(s: s_device_settings) -> object:
7+
"""
8+
Returns the device specific setting structure for our device in question
9+
"""
10+
setting_map = {}
11+
# We need to map the Union type to the DeviceSettingType
12+
setting_map[e_device_settings_type.DeviceCANHUBSettingsType] = "canhub"
13+
setting_map[e_device_settings_type.DeviceCMProbeSettingsType] = "cmprobe"
14+
setting_map[e_device_settings_type.DeviceECU_AVBSettingsType] = "neoecu_avb"
15+
setting_map[e_device_settings_type.DeviceEEVBSettingsType] = "eevb"
16+
setting_map[e_device_settings_type.DeviceFire2SettingsType] = "cyan"
17+
setting_map[e_device_settings_type.DeviceFireSettingsType] = "fire"
18+
setting_map[e_device_settings_type.DeviceFireVnetSettingsType] = "firevnet"
19+
setting_map[e_device_settings_type.DeviceFlexVnetzSettingsType] = "flexvnetz"
20+
setting_map[e_device_settings_type.DeviceIEVBSettingsType] = "ievb"
21+
setting_map[e_device_settings_type.DeviceNeoECU12SettingsType] = "neoecu12"
22+
setting_map[e_device_settings_type.DeviceOBD2ProSettingsType] = "obd2pro"
23+
setting_map[e_device_settings_type.DeviceRADGalaxySettingsType] = "radgalaxy"
24+
setting_map[e_device_settings_type.DeviceRADGigalogSettingsType] = "radgigalog"
25+
setting_map[e_device_settings_type.DeviceRADGigastarSettingsType] = "radgigastar"
26+
setting_map[e_device_settings_type.DeviceRADMoon2SettingsType] = "radmoon2"
27+
setting_map[e_device_settings_type.DeviceRADPlutoSettingsType] = "pluto"
28+
setting_map[e_device_settings_type.DeviceRADStar2SettingsType] = "radstar2"
29+
setting_map[e_device_settings_type.DeviceRADSuperMoonSettingsType] = "radsupermoon"
30+
setting_map[e_device_settings_type.DeviceRADMoon2SettingsType] = "radmoon2"
31+
setting_map[e_device_settings_type.DeviceRedSettingsType] = "red"
32+
setting_map[e_device_settings_type.DeviceVCAN3SettingsType] = "vcan3"
33+
setting_map[e_device_settings_type.DeviceVCAN412SettingsType] = "vcan412"
34+
setting_map[e_device_settings_type.DeviceVCAN4IndSettingsType] = "vcan4_ind"
35+
setting_map[e_device_settings_type.DeviceVCAN4SettingsType] = "vcan4"
36+
setting_map[e_device_settings_type.DeviceVCANRFSettingsType] = "vcanrf"
37+
setting_map[e_device_settings_type.DeviceVividCANSettingsType] = "vividcan"
38+
setting_map[e_device_settings_type.DeviceRADJupiterSettingsType] = "jupiter"
39+
setting_map[e_device_settings_type.DeviceFire3SettingsType] = "fire3"
40+
setting_map[e_device_settings_type.DeviceFire3FlexraySettingsType] = "fire3Flexray"
41+
setting_map[e_device_settings_type.DeviceRed2SettingsType] = "red2"
42+
setting_map[e_device_settings_type.DeviceRADA2BSettingsType] = "rad_a2b"
43+
setting_map[e_device_settings_type.DeviceOBD2LCSettingsType] = "obd2lc"
44+
45+
if s.DeviceSettingType not in setting_map:
46+
raise KeyError(
47+
f"Error: {s.DeviceSettingType} is not a known type in setting_map"
48+
)
49+
return getattr(s.Settings, setting_map[s.DeviceSettingType])
50+
51+
52+
def dev_name(device):
53+
# Return a friendly name of the device (ie. neoVI FIRE2 CY1234)
54+
if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36):
55+
return device.Name + " " + ics.base36enc(device.SerialNumber)
56+
else:
57+
return device.Name + " " + str(device.SerialNumber)
58+
59+
60+
def print_settings(device_specific_settings):
61+
if hasattr(device_specific_settings, "lin1"):
62+
print(f"LIN 1 Baudrate: {settings.Settings.fire3.lin1.Baudrate}")
63+
print(f"LIN 1 Master resistor: {device_specific_settings.lin1.MasterResistor}")
64+
else:
65+
print("This device doesn't have a lin1 structure!")
66+
67+
68+
if __name__ == "__main__":
69+
try:
70+
# Open the first device
71+
device = ics.open_device()
72+
print(
73+
f"Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})..."
74+
)
75+
except ics.RuntimeError as ex:
76+
print(f"Failed to open first device: {ex}")
77+
exit(1)
78+
79+
print("Loading default settings...")
80+
ics.load_default_settings(device)
81+
82+
print("Reading settings...")
83+
settings = ics.get_device_settings(device)
84+
device_specific_settings = get_device_specific_settings(settings)
85+
print_settings(device_specific_settings)
86+
87+
print("Writing settings...")
88+
device_specific_settings = get_device_specific_settings(settings)
89+
if hasattr(device_specific_settings, "lin1"):
90+
device_specific_settings.lin1.Baudrate = 19200
91+
device_specific_settings.lin1.MasterResistor = 0
92+
else:
93+
print("This device doesn't have a lin1 structure to change!")
94+
ics.set_device_settings(device, settings)
95+
print_settings(device_specific_settings)
96+
97+
print("Reading settings...")
98+
settings = ics.get_device_settings(device)
99+
device_specific_settings = get_device_specific_settings(settings)
100+
print_settings(device_specific_settings)

examples/lin_settings_fire3_example.py

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)