Scanner ======= This interface is intended for internal use only. Scanner Interface ----------------- The scanner interface is based on two parts: - Functions that need to be implemented by the scanner and are called by the server (init, start, exit) - Functions passed in form of pointer from the server to the scanner (register event, push event) scanner_initialize ~~~~~~~~~~~~~~~~~~ Initialize the components needed for event scanning (e.g. check if temperature sensor interface exists and is accessible) and register one or more event types with the server. Parameters: 1. `struct scanner_callback* callback` -- contains function pointers for registering/pushing events to the event logging and management system 2. `const void* config` -- TBD: data type 3. `struct scanner_session** session` -- Output value Returns: 0 for success or errorcode scanner_start ~~~~~~~~~~~~~~~~~~ Start scanning for events. This function will be executed inside a thread on the server side, so blocking reads and similiar features can be used. Parameters: 1. `struct scanner_session* session` Returns: 0 for success or errorcode Note: This function won't exit until an error occurs or the function is exited with the scanner_stop() call. scanner_stop ~~~~~~~~~~~~~~~~~~ Stops scanning for events. Will be called from outside the thread the _start functions runs in. Parameters: 1. `struct scanner_session* session` Returns: 0 for success or errorcode scanner_free ~~~~~~~~~~~~~~~~~~ Stop scanning for events (if not already stopped), free resources allocated during scanner_initialize. Parameters: 1. `struct scanner_session* session` Returns: 0 for success or errorcode