Copyright © 2024 | All Rights Reserved
There are certain functions for every C code module. Implementation of any of these is optional. All are event functions except for Spy_Main(). Spy_Main is like the main function of a standard C program. You can write your code as you would a separate application.
Table 1: Timer Properties that can be Configured in Vehicle Spy
Spy_EveryMessage
Called for every message received.
Argument: A pointer to a generic message structure.
Spy_EveryLoop
Called every Vehicle Spy main loop.
Argument: A unsigned int indicating the current OS millisecond timestamp.
Spy_Stopped
Called when Vehicle Spy is stopped.
Spy_Started
Called when Vehicle Spy is started.
Spy_Main
Called when Vehicle spy is run.
Runs as a separate program allowing non-event based code.
Spy_BeforeStarted
Called before Vehicle Spy starts. (allows abort of start)
Allows you to return 0 to stop Vehicle Spy from starting.
Spy_ErrorFrame
Called for a CAN error frame on a CAN network.
Arguments: Network, CAN error counters, and an Error bitfield.
Spy_ErrorState
Called when the error state changes for a CAN network.
Arguments: Network, CAN error counters, and an Error bitfield.
Spy_KeyPress
Called for every key press.
Key Pressed and the Alt, Ctrl state field MUST USE THE UPPER CASE VERSION OF KEY PRESS.
If you decide to share global data between the event functions and the main function you must use two functions called Spy_Lock() before you access a variable and Spy_Unlock() after you are done. These functions make sure the application that calls the events doesn't interfere with the Spy_Main() application. It is important that the called Spy_Lock is shortly followed by the unlock call. If you call the lock function without calling unlock it can lock up Vehicle Spy.