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 UTC time of measuring to the buffer - absolute time of measure
132 * @param channel Data channel
133 * @param timeMeasure Time value in seconds (uint32_t) - Unix timestamp (seconds since epoch)
134 * @return Current buffer position
135 */
136uint8_t CayenneLppAddTimeMeasureABS(uint8_t channel, uint32_t timeMeasure);
137
138/**
139 * @brief Add the relative time of measuring - offset from previous measured data less than 255 minutes
140 * The time is in minutes, maximum 255 minutes about 4.25hour
141 * @param channel Data channel
142 * @param timeOffsetMin8 time in minutes
143 * @return Current buffer position
144 */
145uint8_t CayenneLppAddTimeMeasureMIN8(uint8_t channel, uint8_t timeOffsetMin8);
146
147/**
148 * @brief Add the relative time of measuring - offset from previous measured data less than 65535 minutes (about 45.5days)
149 * The time is in minutes, maximum 65535 minutes about 45.5 of days
150 * @param channel Data channel
151 * @param timeOffsetMin16 time in minutes
152 * @return Current buffer position
153 */
154uint8_t CayenneLppAddTimeMeasureMIN16(uint8_t channel, uint16_t timeOffsetMin16);
155
156
157/**
158 * @brief Add battery percent of voltage data to the buffer (1B)
159 * @param channel Data channel
160 * @param perc percentage of battery level, value 0-100
161 * @return Current buffer position
162 */
163uint8_t CayenneLppAddBatteryPerc(uint8_t channel, uint8_t perc);
164
165/* USER CODE END EFP */
166
167#ifdef __cplusplus
168}
169#endif
170
171#endif /* __CAYENNE_LPP_H__ */
uint8_t CayenneLppAddTemperature(uint8_t channel, float celsius)
Definition CayenneLpp.c:266
uint8_t CayenneLppAddBatteryPerc(uint8_t channel, uint8_t perc)
Add battery percent of voltage data to the buffer (1B).
Definition CayenneLpp.c:543
uint8_t * CayenneLppGetBuffer(void)
Definition CayenneLpp.c:132
uint8_t CayenneLppAddDigitalInput(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:152
uint8_t CayenneLppAddConcentration(uint8_t channel, uint16_t ppm)
Add CO2 concentration data to the buffer.
Definition CayenneLpp.c:423
void CayenneLppInit(void)
Definition CayenneLpp.c:108
uint8_t CayenneLppAddLuminosity(uint8_t channel, uint16_t lux)
Definition CayenneLpp.c:229
uint8_t CayenneLppAddGps(uint8_t channel, float latitude, float longitude, float meters)
Definition CayenneLpp.c:379
uint8_t CayenneLppAddPresence(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:248
uint8_t CayenneLppAddBarometricPressure(uint8_t channel, float hpa)
Definition CayenneLpp.c:331
uint8_t CayenneLppAddVoltage(uint8_t channel, float voltage)
Add voltage data to the buffer.
Definition CayenneLpp.c:442
uint8_t CayenneLppAddTimeMeasureABS(uint8_t channel, uint32_t timeMeasure)
Add UTC time of measuring to the buffer - absolute time of measure.
Definition CayenneLpp.c:503
void CayenneLppReset(void)
Definition CayenneLpp.c:116
uint8_t CayenneLppMaxBuffer()
Definition CayenneLpp.c:412
uint8_t CayenneLppAddAnalogOutput(uint8_t channel, float value)
Definition CayenneLpp.c:209
uint8_t CayenneLppAddAnalogInput(uint8_t channel, float value)
Definition CayenneLpp.c:188
uint8_t CayenneLppAddTimeMeasureMIN16(uint8_t channel, uint16_t timeOffsetMin16)
Add the relative time of measuring - offset from previous measured data less than 65535 minutes (abou...
Definition CayenneLpp.c:530
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:462
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:482
uint8_t CayenneLppAddRelativeHumidity(uint8_t channel, float rh)
Definition CayenneLpp.c:286
uint8_t CayenneLppGetSize(void)
Definition CayenneLpp.c:124
uint8_t CayenneLppCopy(uint8_t *buffer)
Definition CayenneLpp.c:140
uint8_t CayenneLppAddGyrometer(uint8_t channel, float x, float y, float z)
Definition CayenneLpp.c:352
uint8_t CayenneLppAddAccelerometer(uint8_t channel, float x, float y, float z)
Definition CayenneLpp.c:304
uint8_t CayenneLppAddTimeMeasureMIN8(uint8_t channel, uint8_t timeOffsetMin8)
Add the relative time of measuring - offset from previous measured data less than 255 minutes The tim...
Definition CayenneLpp.c:519
uint8_t CayenneLppAddDigitalOutput(uint8_t channel, uint8_t value)
Definition CayenneLpp.c:170