L14-Click 1.0
STM32WLE5CC LoRaWAN Sensor Platform
Loading...
Searching...
No Matches
CayenneLpp.h
Go to the documentation of this file.
1/*!
2 * @file CayenneLpp.h
3 *
4 * @brief Implements the Cayenne Low Power Protocol
5 *
6 * @copyright Revised BSD License, see section \ref LICENSE.
7 *
8 * @code
9 * ______ _
10 * / _____) _ | |
11 * ( (____ _____ ____ _| |_ _____ ____| |__
12 * \____ \| ___ | (_ _) ___ |/ ___) _ \
13 * _____) ) ____| | | || |_| ____( (___| | | |
14 * (______/|_____)_|_|_| \__)_____)\____)_| |_|
15 * (C)2013-2018 Semtech
16 *
17 * @endcode
18 *
19 * @author Miguel Luis ( Semtech )
20 */
21#ifndef __CAYENNE_LPP_H__
22#define __CAYENNE_LPP_H__
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/* Includes ------------------------------------------------------------------*/
29#include <stdint.h>
30
31/* USER CODE BEGIN Includes */
32
33/* USER CODE END Includes */
34
35/* Exported types ------------------------------------------------------------*/
36/* USER CODE BEGIN ET */
37
38/* USER CODE END ET */
39
40/* Exported constants --------------------------------------------------------*/
41/* USER CODE BEGIN EC */
42
43/* USER CODE END EC */
44
45/* External variables --------------------------------------------------------*/
46/* USER CODE BEGIN EV */
47
48/* USER CODE END EV */
49
50/* Exported macro ------------------------------------------------------------*/
51/* USER CODE BEGIN EM */
52
53/* USER CODE END EM */
54
55/* Exported functions prototypes ---------------------------------------------*/
56void CayenneLppInit(void);
57
58void CayenneLppReset(void);
59
60uint8_t CayenneLppGetSize(void);
61
62uint8_t *CayenneLppGetBuffer(void);
63
64uint8_t CayenneLppCopy(uint8_t *buffer);
65
66uint8_t CayenneLppAddDigitalInput(uint8_t channel, uint8_t value);
67
68uint8_t CayenneLppAddDigitalOutput(uint8_t channel, uint8_t value);
69
70uint8_t CayenneLppAddAnalogInput( uint8_t channel, float value );
71
72uint8_t CayenneLppAddAnalogOutput( uint8_t channel, float value );
73
74uint8_t CayenneLppAddLuminosity(uint8_t channel, uint16_t lux);
75
76uint8_t CayenneLppAddPresence(uint8_t channel, uint8_t value);
77
78uint8_t CayenneLppAddTemperature( uint8_t channel, float celsius );
79
80uint8_t CayenneLppAddRelativeHumidity( uint8_t channel, float rh );
81
82uint8_t CayenneLppAddAccelerometer( uint8_t channel, float x, float y, float z );
83
84uint8_t CayenneLppAddBarometricPressure( uint8_t channel, float hpa );
85
86uint8_t CayenneLppAddGyrometer( uint8_t channel, float x, float y, float z );
87
88uint8_t CayenneLppAddGps( uint8_t channel, float latitude, float longitude, float meters );
89
90/* USER CODE BEGIN EFP */
91
92/**
93 * @brief
94 * @retval the max number in bytes for CayenneLpp buffer
95 */
96uint8_t CayenneLppMaxBuffer();
97
98/**
99 * @brief Add CO2 concentration data to the buffer
100 * @param channel Data channel
101 * @param ppm CO2 concentration in parts per million (ppm)
102 * @return Current buffer position
103 */
104uint8_t CayenneLppAddConcentration(uint8_t channel, uint16_t ppm);
105
106/**
107 * @brief Add voltage data to the buffer
108 * @param channel Data channel
109 * @param voltage Voltage in volts
110 * @return Current buffer position
111 */
112uint8_t CayenneLppAddVoltage(uint8_t channel, float voltage);
113
114/**
115 * @brief Add particulate matter of 1mm concentration data to the buffer
116 * @param channel Data channel
117 * @param concentration_1_0 Particle concentration of 1mm in μg/m³
118 * @return Current buffer position
119 */
120uint8_t CayenneLppAddParticulateMatter_1_0(uint8_t channel, float concentration_1_0);
121
122/**
123 * @brief Add particulate matter 2.5mm concentration data to the buffer
124 * @param channel Data channel
125 * @param concentration_2_5 Particle concentration of 2.5mm in μg/m³
126 * @return Current buffer position
127 */
128uint8_t CayenneLppAddParticulateMatter_2_5(uint8_t channel, float concentration_2_5);
129
130/**
131 * @brief Add battery voltage data to the buffer
132 * @param channel Data channel (30 for main battery, 31 for PA15)
133 * @param voltage Battery voltage in volts
134 * @return Current buffer position
135 */
136uint8_t CayenneLppAddBatteryVoltage(uint8_t channel, float voltage);
137
138/**
139 * @brief Add time offset from LoRa join to the buffer
140 * @param channel Data channel
141 * @param timeOffset Time value in seconds (uint32_t). Can represent either:
142 * - Time offset since joining LoRa network
143 * - Unix timestamp (seconds since epoch)
144 * @return Current buffer position
145 */
146uint8_t CayenneLppAddTimeFromJoin(uint8_t channel, uint32_t timeOffset);
147
148
149/**
150 * @brief Add the measure interval in minutes *10 of data measuring
151 * @param channel Data channel
152 * @param min10 - minutes in *10
153 *
154 */
155uint8_t CayenneLppAddMeasureInterval(uint8_t channel, uint16_t min10);
156
157/**
158 * @brief set internal buffer from src for add next data
159 */
160//void CayenneLppSetFrom(const uint8_t* srcBuf, uint8_t sz);
161
162/* USER CODE END EFP */
163
164#ifdef __cplusplus
165}
166#endif
167
168#endif /* __CAYENNE_LPP_H__ */
uint8_t CayenneLppAddTimeFromJoin(uint8_t channel, uint32_t timeOffset)
Add time offset from LoRa join to the buffer.
Definition CayenneLpp.c:511
uint8_t CayenneLppAddTemperature(uint8_t channel, float celsius)
Definition CayenneLpp.c:261
uint8_t * CayenneLppGetBuffer(void)
Definition CayenneLpp.c:127
uint8_t CayenneLppAddDigitalInput(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:147
uint8_t CayenneLppAddConcentration(uint8_t channel, uint16_t ppm)
Add CO2 concentration data to the buffer.
Definition CayenneLpp.c:418
void CayenneLppInit(void)
Definition CayenneLpp.c:103
uint8_t CayenneLppAddLuminosity(uint8_t channel, uint16_t lux)
Definition CayenneLpp.c:224
uint8_t CayenneLppAddGps(uint8_t channel, float latitude, float longitude, float meters)
Definition CayenneLpp.c:374
uint8_t CayenneLppAddPresence(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:243
uint8_t CayenneLppAddBarometricPressure(uint8_t channel, float hpa)
Definition CayenneLpp.c:326
uint8_t CayenneLppAddVoltage(uint8_t channel, float voltage)
Add voltage data to the buffer.
Definition CayenneLpp.c:437
uint8_t CayenneLppAddBatteryVoltage(uint8_t channel, float voltage)
Add battery voltage data to the buffer.
Definition CayenneLpp.c:498
void CayenneLppReset(void)
Definition CayenneLpp.c:111
uint8_t CayenneLppMaxBuffer()
Definition CayenneLpp.c:407
uint8_t CayenneLppAddAnalogOutput(uint8_t channel, float value)
Definition CayenneLpp.c:204
uint8_t CayenneLppAddAnalogInput(uint8_t channel, float value)
Definition CayenneLpp.c:183
uint8_t CayenneLppAddParticulateMatter_1_0(uint8_t channel, float concentration_1_0)
Add particulate matter of 1mm concentration data to the buffer.
Definition CayenneLpp.c:457
uint8_t CayenneLppAddParticulateMatter_2_5(uint8_t channel, float concentration_2_5)
Add particulate matter 2.5mm concentration data to the buffer.
Definition CayenneLpp.c:477
uint8_t CayenneLppAddRelativeHumidity(uint8_t channel, float rh)
Definition CayenneLpp.c:281
uint8_t CayenneLppGetSize(void)
Definition CayenneLpp.c:119
uint8_t CayenneLppCopy(uint8_t *buffer)
Definition CayenneLpp.c:135
uint8_t CayenneLppAddMeasureInterval(uint8_t channel, uint16_t min10)
Add the measure interval in minutes *10 of data measuring.
Definition CayenneLpp.c:526
uint8_t CayenneLppAddGyrometer(uint8_t channel, float x, float y, float z)
Definition CayenneLpp.c:347
uint8_t CayenneLppAddAccelerometer(uint8_t channel, float x, float y, float z)
Definition CayenneLpp.c:299
uint8_t CayenneLppAddDigitalOutput(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:165