mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Bindings: Python: Add AppError
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import icsneopy
|
||||
import time
|
||||
|
||||
#
|
||||
# App errors are responses from the device indicating internal runtime errors
|
||||
# NOTE: To trigger the app error in this example, disable the DW CAN 01 network on the device
|
||||
# (e.g. with ICS Device Manager)
|
||||
#
|
||||
def apperror():
|
||||
devices = icsneopy.find_all_devices()
|
||||
|
||||
if len(devices) == 0:
|
||||
print("no devices found")
|
||||
return False
|
||||
|
||||
device = devices[0]
|
||||
print(f"selected {device}")
|
||||
|
||||
def on_apperror(message):
|
||||
if message.get_app_error_type() != icsneopy.AppErrorType.NetworkNotEnabled:
|
||||
print("unexpected app error type")
|
||||
return
|
||||
print(message.get_app_error_string())
|
||||
|
||||
filter = icsneopy.MessageFilter(icsneopy.Message.Type.AppError)
|
||||
callback = icsneopy.MessageCallback(on_apperror, filter)
|
||||
device.add_message_callback(callback)
|
||||
|
||||
if not device.open():
|
||||
print("unable to open device")
|
||||
return False
|
||||
|
||||
if not device.go_online():
|
||||
print("unable to go online")
|
||||
return False
|
||||
|
||||
frame = icsneopy.CANMessage()
|
||||
frame.network = icsneopy.Network(icsneopy.Network.NetID.DWCAN_01)
|
||||
frame.arbid = 0x22
|
||||
frame.data = (0xAA, 0xBB, 0xCC)
|
||||
|
||||
if not device.transmit(frame):
|
||||
print("failed to transmit frame")
|
||||
return False
|
||||
|
||||
time.sleep(2) # wait for error to come back
|
||||
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
apperror()
|
||||
Reference in New Issue
Block a user