ENTS-tock
Environmental NeTworked Sensor firmware on Tock OS
Loading...
Searching...
No Matches
transcoder.h File Reference

Library for encoding/decoding protobuf messages. More...

#include <stddef.h>
#include <string.h>
#include "controller.pb.h"
#include "measurements.pb.h"
#include "user_config.pb.h"

Go to the source code of this file.

Functions

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.
 
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 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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
size_t EncodePCAP02Measurement (uint32_t ts, uint32_t logger_id, uint32_t cell_id, double capacitance, uint8_t *buffer)
 Encodes a PCAP02 measurement.
 
int DecodeMeasurement (Measurement *meas, const uint8_t *buffer, const size_t len)
 Decodes a measurement.
 
Response_ResponseType DecodeResponse (const uint8_t *data, const size_t len)
 Decodes a response message.
 
Esp32Command DecodeEsp32Command (const uint8_t *data, const size_t len)
 Decodes an Esp32Command message.
 
size_t EncodePageCommand (PageCommand_RequestType req, int fd, size_t bs, size_t n, uint8_t *buffer, size_t size)
 Encodes a page command.
 
size_t EncodeTestCommand (TestCommand_ChangeState state, int32_t data, uint8_t *buffer, size_t size)
 Encodes a test command.
 
size_t EncodeMicroSDCommand (const MicroSDCommand *microsd_cmd, uint8_t *buffer, size_t size)
 Encodes a MicroSDCommand.
 
size_t EncodeWiFiCommand (const WiFiCommand *wifi_cmd, uint8_t *buffer, size_t size)
 Encodes a WiFiCommand.
 
size_t EncodeUserConfigCommand (UserConfigCommand_RequestType type, const UserConfiguration *config_data, uint8_t *buffer, size_t size)
 Encodes a UserConfigCommand into a protobuf message.
 
size_t EncodeIrrigationCommand (const IrrigationCommand *irrigation_cmd, uint8_t *buffer, size_t size)
 Encodes an IrrigationCommand.
 
size_t EncodePowerCommand (const PowerCommand *power_cmd, uint8_t *buffer, size_t size)
 Encodes a PowerCommand.
 
size_t EncodeUserConfiguration (const UserConfiguration *config, uint8_t *buffer)
 Encodes user configuration data.
 
int DecodeUserConfiguration (const uint8_t *data, const size_t len, UserConfiguration *config)
 Decodes user configuration data.
 

Detailed Description

Library for encoding/decoding protobuf messages.

Encoding functions are provided for each measurement type. A decoding function is provided for a Response message. If more functionality is required, use the protobuf generated located in soil_power_sensor.pb.h.

See also
transcoder.c
test_transcoder.c
Author
John Madden jmadd.nosp@m.en17.nosp@m.3@pm..nosp@m.me
Date
2024-01-04

Definition in file transcoder.h.