mirror of https://github.com/arendst/Tasmota.git
Callback code example improved and typo fixed.
parent
9045f5cb94
commit
c83ede71cf
|
@ -8,33 +8,64 @@ Sensor libraries are located in the `lib/` directory. Sensor drivers are located
|
||||||
Conditional compiling of a sensor driver is achieved by commenting/uncommenting a pre-processor directive of the scheme `USE_<driver_name>` in `user_config.h`. Accordingly the driver code has to be wrapped in `#ifdef USE_<driver_name> ... #endif // USE_<driver_name>`. Any Sensor driver must contain a pre-processor directive defining the driver ID by the scheme `#define XSNS_<driver_ID>`.
|
Conditional compiling of a sensor driver is achieved by commenting/uncommenting a pre-processor directive of the scheme `USE_<driver_name>` in `user_config.h`. Accordingly the driver code has to be wrapped in `#ifdef USE_<driver_name> ... #endif // USE_<driver_name>`. Any Sensor driver must contain a pre-processor directive defining the driver ID by the scheme `#define XSNS_<driver_ID>`.
|
||||||
|
|
||||||
## Callback function
|
## Callback function
|
||||||
|
|
||||||
Any sensor driver needs a callback function following the scheme
|
Any sensor driver needs a callback function following the scheme
|
||||||
```
|
```
|
||||||
|
// Define driver ID
|
||||||
|
#define XSNS_<driver_ID>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The function Xsns<driver_ID>() interfaces Tasmota with the driver.
|
* The callback function Xsns<driver_ID>() interfaces Tasmota with the sensor driver.
|
||||||
|
*
|
||||||
|
* It provides the Tasmota callback IDs.
|
||||||
*
|
*
|
||||||
* It provides the function IDs
|
|
||||||
* FUNC_INIT to initialize a driver,
|
|
||||||
* FUNC_EVERY_50_MSECOND for near real-time operation,
|
|
||||||
* FUNC_JSON_APPEND for telemetry data and
|
|
||||||
* FUNC_WEB_APPEND for displaying data in the Tasmota web-interface
|
|
||||||
* `
|
|
||||||
* @param byte function Tasmota function ID.
|
* @param byte function Tasmota function ID.
|
||||||
* @return boolean ???
|
* @return boolean ???
|
||||||
* @pre None.
|
* @pre None.
|
||||||
* @post None.
|
* @post None.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
boolean Xsns<driverID>(byte callback_id)
|
boolean Xsns<driverID>(byte callback_id) {
|
||||||
{
|
|
||||||
// ???
|
// ???
|
||||||
boolean result = false;
|
boolean result = false;
|
||||||
|
|
||||||
// Check which function is called by Tasmota
|
// Check which callback ID is called by Tasmota
|
||||||
switch (callback_id) {
|
switch (callback_id) {
|
||||||
case <callback_id>:
|
case FUNC_PRE_INIT:
|
||||||
<code>
|
break;
|
||||||
break;
|
case FUNC_INIT:
|
||||||
|
break;
|
||||||
|
case FUNC_LOOP:
|
||||||
|
break;
|
||||||
|
case FUNC_EVERY_50_MSECOND:
|
||||||
|
break;
|
||||||
|
case FUNC_EVERY_SECOND:
|
||||||
|
break;
|
||||||
|
case FUNC_PREP_BEFORE_TELEPERIOD:
|
||||||
|
break;
|
||||||
|
case FUNC_JSON_APPEND:
|
||||||
|
break;
|
||||||
|
case FUNC_WEB_APPEND:
|
||||||
|
break;
|
||||||
|
case FUNC_SAVE_BEFORE_RESTART:
|
||||||
|
break;
|
||||||
|
case FUNC_COMMAND:
|
||||||
|
break;
|
||||||
|
case FUNC_MQTT_SUBSCRIBE:
|
||||||
|
break;
|
||||||
|
case FUNC_MQTT_INIT:
|
||||||
|
break;
|
||||||
|
case FUNC_MQTT_DATA:
|
||||||
|
break;
|
||||||
|
case FUNC_SET_POWER:
|
||||||
|
break;
|
||||||
|
case FUNC_SHOW_SENSOR:
|
||||||
|
break;
|
||||||
|
case FUNC_RULES_PROCESS:
|
||||||
|
break;
|
||||||
|
case FUNC_FREE_MEM
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return boolean result
|
// Return boolean result
|
||||||
|
@ -126,4 +157,4 @@ AddLogSerial(LOG_LEVEL_INFO);
|
||||||
|
|
||||||
## Useful pre-processor directives
|
## Useful pre-processor directives
|
||||||
### PSTR("string")
|
### PSTR("string")
|
||||||
This pre-processor directive save RAM by storing strings in flash instead of RAM
|
This pre-processor directive saves RAM by storing strings in flash instead of RAM.
|
Loading…
Reference in New Issue