49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
|
|
Functions
|
|
|
|
AqHome knows these driver/module/app functions:
|
|
- INIT: initialize the driver
|
|
- RUN: called on every loop
|
|
- MSGRECEIVED: called whenever a message has been received
|
|
- EVERY100MS: called every 100ms (the system timer tick)
|
|
- EVERY1S: called every second
|
|
- EVERY1M: called every minute
|
|
- EVERY1H: called every hour
|
|
- EVERY1D: called every day
|
|
|
|
|
|
Modules and Apps
|
|
|
|
Modules are lowlevel drivers for specific hardware (like for the environment
|
|
sensor SI7021).
|
|
|
|
Apps on the other hand are kind of sub-programs running in parallel on the
|
|
microprocessor. E.g. there are apps for networking, motion-activated-light, statistics
|
|
reporting and sensor value reporting.
|
|
|
|
|
|
Modules
|
|
|
|
If your driver/module implements those functions they need to be added
|
|
to the appropriate files:
|
|
- include instructions to the file "modules_include.asm"
|
|
- calls to INIT function to "modules_init.asm"
|
|
- calls to RUN function to "modules_run.asm"
|
|
- calls to MSGRECEIVED function to "modules_msg.asm"
|
|
- calls to EVERY100MS function to "modules_100ms.asm"
|
|
- calls to EVERY1S function to "modules_1s.asm"
|
|
- calls to EVERY1M function to "modules_1m.asm"
|
|
- calls to EVERY1H function to "modules_1h.asm"
|
|
- calls to EVERY1D function to "modules_1d.asm"
|
|
|
|
Only implemented routine calls need to be added, e.g. if a driver doesn't need
|
|
the RUN functionality it doesn't need to be implemented.
|
|
|
|
|
|
Apps
|
|
|
|
The same rules apply to apps. The only difference is the prefix of the files calls and
|
|
include directives need to be added (using "apps_xxx.asm" instead of "modules_xxx.asm").
|
|
|
|
|