ENTS-tock
Environmental NeTworked Sensor firmware on Tock OS
Loading...
Searching...
No Matches
transcoder.h
Go to the documentation of this file.
1
17#ifndef PROTO_C_INCLUDE_TRANSCODER_H_
18#define PROTO_C_INCLUDE_TRANSCODER_H_
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <stddef.h>
25#include <string.h>
26
27#include "controller.pb.h"
28#include "measurements.pb.h"
29#include "user_config.pb.h"
30
55size_t EncodePowerMeasurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id,
56 double voltage, double current, uint8_t* buffer);
57
74size_t EncodePowerDeltaMeasurement(uint32_t ts, uint32_t logger_id,
75 uint32_t cell_id, uint32_t voltage,
76 uint32_t current, uint8_t* buffer);
77
96size_t EncodeTeros12Measurement(uint32_t ts, uint32_t logger_id,
97 uint32_t cell_id, double vwc_raw,
98 double vwc_adj, double temp, uint32_t ec,
99 uint8_t* buffer);
100
117size_t EncodeTeros21Measurement(uint32_t ts, uint32_t logger_id,
118 uint32_t cell_id, double matric_pot,
119 double temp, uint8_t* buffer);
120
140size_t EncodePhytos31Measurement(uint32_t ts, uint32_t logger_id,
141 uint32_t cell_id, double voltage,
142 double leaf_wetness, uint8_t* buffer);
143
176size_t EncodeBME280Measurement(uint32_t ts, uint32_t logger_id,
177 uint32_t cell_id, uint32_t pressure,
178 int32_t temperature, uint32_t humidity,
179 uint8_t* buffer);
180
200size_t EncodeWaterPressMeasurement(uint32_t ts, uint32_t logger_id,
201 uint32_t cell_id, double voltage,
202 double water_pressure, uint8_t* buffer);
203
223size_t EncodeSEN0308Measurement(uint32_t ts, uint32_t logger_id,
224 uint32_t cell_id, double voltage,
225 double humidity, uint8_t* buffer);
226
245size_t EncodeWaterFlowMeasurement(uint32_t ts, uint32_t logger_id,
246 uint32_t cell_id, double water_flow,
247 uint8_t* buffer);
248
265size_t EncodePCAP02Measurement(uint32_t ts, uint32_t logger_id,
266 uint32_t cell_id, double capacitance,
267 uint8_t* buffer);
268
279int DecodeMeasurement(Measurement* meas, const uint8_t* buffer,
280 const size_t len);
281
294Response_ResponseType DecodeResponse(const uint8_t* data, const size_t len);
295
304Esp32Command DecodeEsp32Command(const uint8_t* data, const size_t len);
305
318size_t EncodePageCommand(PageCommand_RequestType req, int fd, size_t bs,
319 size_t n, uint8_t* buffer, size_t size);
320
331size_t EncodeTestCommand(TestCommand_ChangeState state, int32_t data,
332 uint8_t* buffer, size_t size);
333
343size_t EncodeMicroSDCommand(const MicroSDCommand* microsd_cmd, uint8_t* buffer,
344 size_t size);
345
355size_t EncodeWiFiCommand(const WiFiCommand* wifi_cmd, uint8_t* buffer,
356 size_t size);
366size_t EncodeUserConfigCommand(UserConfigCommand_RequestType type,
367 const UserConfiguration* config_data,
368 uint8_t* buffer, size_t size);
369
379size_t EncodeIrrigationCommand(const IrrigationCommand* irrigation_cmd,
380 uint8_t* buffer, size_t size);
381
391size_t EncodePowerCommand(const PowerCommand* power_cmd, uint8_t* buffer,
392 size_t size);
393
406size_t EncodeUserConfiguration(const UserConfiguration* config,
407 uint8_t* buffer);
408
421int DecodeUserConfiguration(const uint8_t* data, const size_t len,
422 UserConfiguration* config);
423
428#ifdef __cplusplus
429}
430#endif
431
432#endif // PROTO_C_INCLUDE_TRANSCODER_H_
const char data[]
uint8_t buffer[32]
size_t EncodeTeros21Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double matric_pot, double temp, uint8_t *buffer)
Encodes a Teros21 measurement.
Definition transcoder.c:119
size_t EncodeWiFiCommand(const WiFiCommand *wifi_cmd, uint8_t *buffer, size_t size)
Encodes a WiFiCommand.
Definition transcoder.c:290
size_t EncodeWaterFlowMeasurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double water_flow, uint8_t *buffer)
Encodes a Water Flow measurement.
Definition transcoder.c:173
int DecodeUserConfiguration(const uint8_t *data, const size_t len, UserConfiguration *config)
Decodes user configuration data.
Definition transcoder.c:376
size_t EncodePhytos31Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double voltage, double leaf_wetness, uint8_t *buffer)
Encodes a Phytos31 measurement.
Definition transcoder.c:81
size_t EncodePageCommand(PageCommand_RequestType req, int fd, size_t bs, size_t n, uint8_t *buffer, size_t size)
Encodes a page command.
Definition transcoder.c:255
Response_ResponseType DecodeResponse(const uint8_t *data, const size_t len)
Decodes a response message.
Definition transcoder.c:207
size_t EncodePCAP02Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double capacitance, uint8_t *buffer)
Encodes a PCAP02 measurement.
Definition transcoder.c:190
size_t EncodeTestCommand(TestCommand_ChangeState state, int32_t data, uint8_t *buffer, size_t size)
Encodes a test command.
Definition transcoder.c:268
size_t EncodePowerDeltaMeasurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, uint32_t voltage, uint32_t current, uint8_t *buffer)
Encodes power delta measurements.
size_t EncodePowerCommand(const PowerCommand *power_cmd, uint8_t *buffer, size_t size)
Encodes a PowerCommand.
Definition transcoder.c:335
size_t EncodeSEN0308Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double voltage, double humidity, uint8_t *buffer)
Encodes a Capacitive Soil Moisture measurement.
Definition transcoder.c:137
size_t EncodeIrrigationCommand(const IrrigationCommand *irrigation_cmd, uint8_t *buffer, size_t size)
Encodes an IrrigationCommand.
Definition transcoder.c:322
Esp32Command DecodeEsp32Command(const uint8_t *data, const size_t len)
Decodes an Esp32Command message.
Definition transcoder.c:246
size_t EncodePowerMeasurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double voltage, double current, uint8_t *buffer)
Encodes a power measurement.
Definition transcoder.c:43
size_t EncodeUserConfigCommand(UserConfigCommand_RequestType type, const UserConfiguration *config_data, uint8_t *buffer, size_t size)
Encodes a UserConfigCommand into a protobuf message.
Definition transcoder.c:302
size_t EncodeBME280Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, uint32_t pressure, int32_t temperature, uint32_t humidity, uint8_t *buffer)
Encodes a BME280 measurement.
Definition transcoder.c:99
size_t EncodeUserConfiguration(const UserConfiguration *config, uint8_t *buffer)
Encodes user configuration data.
Definition transcoder.c:361
size_t EncodeTeros12Measurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double vwc_raw, double vwc_adj, double temp, uint32_t ec, uint8_t *buffer)
Encodes a Teros12 measurement.
Definition transcoder.c:60
size_t EncodeWaterPressMeasurement(uint32_t ts, uint32_t logger_id, uint32_t cell_id, double voltage, double water_pressure, uint8_t *buffer)
Encodes a Water Pressure measurement.
Definition transcoder.c:155
size_t EncodeMicroSDCommand(const MicroSDCommand *microsd_cmd, uint8_t *buffer, size_t size)
Encodes a MicroSDCommand.
Definition transcoder.c:278
int DecodeMeasurement(Measurement *meas, const uint8_t *buffer, const size_t len)
Decodes a measurement.
Definition transcoder.c:235
UserConfigState state