|
L14-Click 1.0
STM32WLE5CC LoRaWAN Sensor Platform
|
#include "main.h"#include "mysensors.h"#include "mysensors_base.h"#include "i2c.h"#include "utils/utils.h"#include "stm32_timer.h"#include "stm32_seq.h"#include "sys_app.h"#include "adc_if.h"#include "CayenneLpp.h"#include <stdio.h>#include <string.h>#include <inttypes.h>Go to the source code of this file.
Data Structures | |
| struct | sens_GrpTiming_t |
| the definition for group of sensor sens_ReadingGrp_t the number of readings and timeout for reading data from sensors More... | |
| struct | sens_processing_t |
| sensor definition - interface More... | |
Enumerations | |
| enum | sens_ReadingGrp_t { SENS_GRP_0 = 0 , SENS_GRP_1 , SENS_GRP_2 , SENS_GRP_3 , SENS_GRP_ALL } |
| sensor groups for reading - the sensors in one group are read together This is necessary to processing of the similar sensors together as tempHum, ambient, barometer etc. depends on their consumption every sensor's group has it own count of measuring, timeout between measure At the end of measure, maybe any sensors need to service, therefor is called method NeedService, which returns 1 - sensor is servicing 0 - not, or service has been finished More... | |
Functions | |
| static int | getCount_GroupTiming () |
| static int | getCount_Sensors () |
| static void | sensBuffer_Reset () |
| static void | sensBuffer_Add (const char *format,...) |
| static char * | sensBuffer_Get () |
| static void | sensBuffer_Send () |
| void | i2c_OnOff (uint8_t onOff) |
| possible to I2C turn on/off - cumulative | |
| static int | sensors_OnOff (sens_ReadingGrp_t grp, int onOff) |
| On/Off sensors according to group. | |
| static void | sensors_Read (sens_ReadingGrp_t grp) |
| reading sensor one by one in specified group | |
| static uint8_t | sensors_NextGroup () |
| Move to next used group in _sensors[]. | |
| static uint8_t | sensors_Service () |
| static void | tasksensors_Work () |
| task sensor sequencer | |
| static void | tasksensors_OnTimeout () |
| void | sensors_Start () |
| |
| sens_ProcessDef_t | sensors_Work () |
| |
| void | sensors_Init (I2C_HandleTypeDef *hi2c) |
| Initialization of all sensors, must be called before for store of hi2c handler. | |
| void | sensors_Retiming () |
| the System goes to OFF mode - retiming of timer sensor reading | |
| void | sensorsSeq_Init (uint32_t sensortAppBit, uint32_t mylorawanAppBit) |
| task sequencer initialization for sensors reading | |
| void | sensors_CopyToBck () |
| The copying data from current sensors buffer to backUp - _bck_XXXXX. | |
| uint8_t * | sensors_CayennelFromBckData (uint8_t *sizeOut) |
| collecting sensor data into CayenneLppGetBuffer buffer for sending them via LoRa the methods works with _bck_XXXXX senzor, not with real | |
| void | sensors_WriteFromBckToDataBlock (mems_DataBlock_t *data) |
| filling the data block from sensor data - store to memory the methods works with _bck_XXXXX senzor, not with real at the begin is writte the timeout of sensor measuring in minutes * 100 | |
| uint8_t | sensors_ReadToBckFromDataBlock (const mems_DataBlock_t *data) |
| reading from memory block and filling specified sensor from memory - ready for sensors_CayennelData the methods works with _bck_XXXXX senzor, not with real | |
Variables | |
| static const sens_GrpTiming_t | _groupTiming [] |
| definition of sensors group | |
| static const sens_processing_t | _sensors [] |
| static I2C_HandleTypeDef * | _hi2c = NULL |
| static sens_ProcessDef_t | _processDef = SENS_DONE |
| static int | _groupInxTiming = 0 |
| static sleeper_t | _processDelay = {} |
| static int | _groupReadCount = 0 |
| static UTIL_TIMER_Object_t | _sensorTimerReading = {} |
| static uint32_t | _sensorSeqID = 0 |
| static uint32_t | _mylorawanSeqID = 0 |
| static uint16_t | _sensorMeasureTime = 0 |
| static char | _sensBuffer [1024] = {} |
| static int | _i2cOnOff = 1 |
| enum sens_ReadingGrp_t |
sensor groups for reading - the sensors in one group are read together This is necessary to processing of the similar sensors together as tempHum, ambient, barometer etc. depends on their consumption every sensor's group has it own count of measuring, timeout between measure At the end of measure, maybe any sensors need to service, therefor is called method NeedService, which returns 1 - sensor is servicing 0 - not, or service has been finished
| Enumerator | |
|---|---|
| SENS_GRP_0 | |
| SENS_GRP_1 | |
| SENS_GRP_2 | |
| SENS_GRP_3 | |
| SENS_GRP_ALL | |
Definition at line 42 of file mysensors.c.
|
static |
Definition at line 136 of file mysensors.c.
References _groupTiming.
Referenced by sensors_NextGroup().
|
static |
Definition at line 140 of file mysensors.c.
References _sensors.
Referenced by sensors_Init(), sensors_NextGroup(), sensors_OnOff(), sensors_Read(), and sensors_Service().
| void i2c_OnOff | ( | uint8_t | onOff | ) |
possible to I2C turn on/off - cumulative
Definition at line 184 of file mysensors.c.
References _i2cOnOff, MX_I2C2_DeInit(), and MX_I2C2_Init().
Referenced by main(), nfc_FactoryReset(), nfc_ReadSystemParams(), nfc_WriteSystemParams(), and sensors_Work().
|
static |
Definition at line 153 of file mysensors.c.
References _sensBuffer.
Referenced by sensors_Read().
|
static |
Definition at line 163 of file mysensors.c.
References _sensBuffer.
Referenced by sensors_Read().
|
static |
Definition at line 148 of file mysensors.c.
References _sensBuffer.
Referenced by sensors_Read().
|
static |
Definition at line 168 of file mysensors.c.
References _sensBuffer, and writeLogNL().
Referenced by sensors_Read().
| uint8_t * sensors_CayennelFromBckData | ( | uint8_t * | sizeOut | ) |
collecting sensor data into CayenneLppGetBuffer buffer for sending them via LoRa the methods works with _bck_XXXXX senzor, not with real
| sizeOut | - the size(bytes) in buffer, the size is max 254, uint8_t is enough |
| address | of buffer or null, if no data |
Definition at line 469 of file mysensors.c.
References _bck_amb_tsl2591Data, _bck_bar_bmp585Data, _bck_bar_ils22qsData, _bck_scd41Data, _bck_sps30Data, _bck_tmphm_sht45Data, _sensorMeasureTime, CayenneLppAddBarometricPressure(), CayenneLppAddConcentration(), CayenneLppAddLuminosity(), CayenneLppAddMeasureInterval(), CayenneLppAddParticulateMatter_1_0(), CayenneLppAddParticulateMatter_2_5(), CayenneLppAddRelativeHumidity(), CayenneLppAddTemperature(), CayenneLppAddVoltage(), CayenneLppGetBuffer(), CayenneLppGetSize(), CayenneLppReset(), and GetBatteryLevel().
Referenced by myloraWan_PrepareSendingBuffer().
| void sensors_CopyToBck | ( | ) |
The copying data from current sensors buffer to backUp - _bck_XXXXX.
Definition at line 447 of file mysensors.c.
References _amb_tsl2591Data, _bar_bmp585Data, _bar_ils22qsData, _bck_amb_tsl2591Data, _bck_bar_bmp585Data, _bck_bar_ils22qsData, _bck_scd41Data, _bck_sps30Data, _bck_tmphm_sht45Data, _scd41Data, _sps30Data, and _tmphm_sht45Data.
Referenced by myloraWan_MeasureFinish().
| void sensors_Init | ( | I2C_HandleTypeDef * | hi2c | ) |
Initialization of all sensors, must be called before for store of hi2c handler.
| hi2c |
Definition at line 399 of file mysensors.c.
References _hi2c, _sensors, getCount_Sensors(), SENS_GRP_ALL, sensors_OnOff(), systemParams_IsSensorAvaiable(), and writeLog().
Referenced by main(), and sensors_Work().
|
static |
Move to next used group in _sensors[].
Definition at line 259 of file mysensors.c.
References _groupInxTiming, _groupTiming, _sensors, getCount_GroupTiming(), and getCount_Sensors().
Referenced by sensors_Start(), and sensors_Work().
|
static |
On/Off sensors according to group.
| grp | - specified group, if SENS_GRP_LAST - all sensors |
Definition at line 204 of file mysensors.c.
References _hi2c, _sensors, getCount_Sensors(), SENS_GRP_ALL, systemParams_IsSensorAvaiable(), and writeLog().
Referenced by sensors_Init(), and sensors_Work().
|
static |
reading sensor one by one in specified group
| grp | specified group, if SENS_GRP_LAST - all sensors |
Definition at line 233 of file mysensors.c.
References _hi2c, _sensors, _tryInit, getCount_Sensors(), SENS_GRP_ALL, sensBuffer_Add(), sensBuffer_Get(), sensBuffer_Reset(), sensBuffer_Send(), and systemParams_IsSensorAvaiable().
Referenced by sensors_Work().
| uint8_t sensors_ReadToBckFromDataBlock | ( | const mems_DataBlock_t * | data | ) |
reading from memory block and filling specified sensor from memory - ready for sensors_CayennelData the methods works with _bck_XXXXX senzor, not with real
| size | of total read from data block, 0 - if is other than expected data |
Definition at line 575 of file mysensors.c.
References _bck_amb_tsl2591Data, _bck_bar_bmp585Data, _bck_bar_ils22qsData, _bck_scd41Data, _bck_sps30Data, _bck_tmphm_sht45Data, _sensorMeasureTime, mems_DataBlock_t::Data, MEMS_DATATYPE_SENSOR, and mems_DataBlock_t::Type.
Referenced by myloraWan_PrepareSendingBuffer().
| void sensors_Retiming | ( | ) |
the System goes to OFF mode - retiming of timer sensor reading
Definition at line 424 of file mysensors.c.
References _sensorTimerReading, and _systemParams.
Referenced by sensorsBase_StopTimerToOff().
|
static |
Definition at line 272 of file mysensors.c.
References _hi2c, _sensors, getCount_Sensors(), and systemParams_IsSensorAvaiable().
Referenced by sensors_Work().
| void sensors_Start | ( | ) |
Definition at line 319 of file mysensors.c.
References _groupInxTiming, _groupReadCount, _processDef, _processDelay, SENS_BEGIN, sensors_NextGroup(), and sleeper_SetSleepMS().
Referenced by tasksensors_OnTimeout().
| sens_ProcessDef_t sensors_Work | ( | ) |
| SENS_DONE | - process of reading finished, otherwise current state of status machine |
Definition at line 328 of file mysensors.c.
References _groupInxTiming, _groupReadCount, _groupTiming, _processDef, _processDelay, i2c_OnOff(), SENS_BEGIN, SENS_DATAREADY, SENS_DONE, SENS_END, SENS_INIT, SENS_READ, SENS_SERVICE, SENS_START, SENS_STOP, sensors_Init(), sensors_NextGroup(), sensors_OnOff(), sensors_Read(), sensors_Service(), sleeper_IsElapsed(), sleeper_Next(), sleeper_SetSleepMS(), and togle_LedOff().
Referenced by tasksensors_Work().
| void sensors_WriteFromBckToDataBlock | ( | mems_DataBlock_t * | data | ) |
filling the data block from sensor data - store to memory the methods works with _bck_XXXXX senzor, not with real at the begin is writte the timeout of sensor measuring in minutes * 100
Definition at line 530 of file mysensors.c.
References _bck_amb_tsl2591Data, _bck_bar_bmp585Data, _bck_bar_ils22qsData, _bck_scd41Data, _bck_sps30Data, _bck_tmphm_sht45Data, _sensorMeasureTime, _systemParams, mems_DataBlock_t::Data, Error_Handler(), MEMS_DATATYPE_SENSOR, SENSORS_DATASIZE, mems_DataBlock_t::Size, mems_DataBlock_t::Type, and writeLog().
Referenced by myloraWan_MeasureFinish().
| void sensorsSeq_Init | ( | uint32_t | sensortAppBit, |
| uint32_t | mylorawanAppBit ) |
task sequencer initialization for sensors reading
the sensors sequencer initialization and set the process in sequencer
Definition at line 436 of file mysensors.c.
References _mylorawanSeqID, _sensorSeqID, _sensorTimerReading, _systemParams, tasksensors_OnTimeout(), and tasksensors_Work().
Referenced by main().
|
static |
Definition at line 308 of file mysensors.c.
References _sensorSeqID, _systemParams, CFG_SEQ_Prio_0, and sensors_Start().
Referenced by sensorsSeq_Init().
|
static |
task sensor sequencer
Definition at line 289 of file mysensors.c.
References _mylorawanSeqID, _sensorSeqID, _sensorTimerReading, CFG_SEQ_Prio_0, SENS_DATAREADY, SENS_DONE, and sensors_Work().
Referenced by sensorsSeq_Init().
|
static |
Definition at line 126 of file mysensors.c.
Referenced by sensors_NextGroup(), sensors_Start(), and sensors_Work().
|
static |
Definition at line 128 of file mysensors.c.
Referenced by sensors_Start(), and sensors_Work().
|
static |
definition of sensors group
Definition at line 84 of file mysensors.c.
Referenced by getCount_GroupTiming(), sensors_NextGroup(), and sensors_Work().
|
static |
Definition at line 122 of file mysensors.c.
Referenced by sensors_Init(), sensors_OnOff(), sensors_Read(), and sensors_Service().
|
static |
Definition at line 183 of file mysensors.c.
Referenced by i2c_OnOff().
|
static |
Definition at line 132 of file mysensors.c.
Referenced by sensorsSeq_Init(), and tasksensors_Work().
|
static |
Definition at line 125 of file mysensors.c.
Referenced by sensors_Start(), and sensors_Work().
|
static |
Definition at line 127 of file mysensors.c.
Referenced by sensors_Start(), and sensors_Work().
|
static |
Definition at line 146 of file mysensors.c.
Referenced by sensBuffer_Add(), sensBuffer_Get(), sensBuffer_Reset(), and sensBuffer_Send().
|
static |
Definition at line 134 of file mysensors.c.
Referenced by sensors_CayennelFromBckData(), sensors_ReadToBckFromDataBlock(), and sensors_WriteFromBckToDataBlock().
|
static |
Definition at line 94 of file mysensors.c.
Referenced by getCount_Sensors(), sensors_Init(), sensors_NextGroup(), sensors_OnOff(), sensors_Read(), and sensors_Service().
|
static |
Definition at line 132 of file mysensors.c.
Referenced by sensorsSeq_Init(), tasksensors_OnTimeout(), and tasksensors_Work().
|
static |
Definition at line 131 of file mysensors.c.
Referenced by sensors_Retiming(), sensorsSeq_Init(), and tasksensors_Work().