You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
6.1 KiB
209 lines
6.1 KiB
/* |
|
THIS IS GENERATED CODE |
|
DO NOT EDIT |
|
Developer: Max Reble |
|
Copyright Notice: hse-electronics GmbH, Max Reble (2020) |
|
License: MIT License (see LICENSE.txt) |
|
*/ |
|
#include <stdint.h> |
|
#ifndef _HSE_SENSOR_PROTOCOL_H_ |
|
#define _HSE_SENSOR_PROTOCOL_H_ |
|
|
|
|
|
#define HSESP_DIGITAL_INPUT 0x01 //uint8_t |
|
#define HSESP_DIGITAL_INPUT_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_DIGITAL_OUTPUT 0x02 //uint8_t |
|
#define HSESP_DIGITAL_OUTPUT_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_ANALOG_INPUT 0x03 //int16_t |
|
#define HSESP_ANALOG_INPUT_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_ANALOG_OUTPUT 0x04 //int16_t |
|
#define HSESP_ANALOG_OUTPUT_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_TEMPERATURE 0x10 //int16_t |
|
#define HSESP_TEMPERATURE_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_HUMIDITY 0x11 //uint8_t |
|
#define HSESP_HUMIDITY_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_PRESSURE 0x12 //uint16_t |
|
#define HSESP_PRESSURE_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_ILLUMINANCE 0x13 //uint16_t |
|
#define HSESP_ILLUMINANCE_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_CONCENTRATION 0x14 //uint16_t |
|
#define HSESP_CONCENTRATION_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_DIRECTION 0x15 //int16_t |
|
#define HSESP_DIRECTION_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_RSSI 0x16 //uint8_t |
|
#define HSESP_RSSI_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_LOUDNESS 0x17 //uint8_t |
|
#define HSESP_LOUDNESS_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_DISTANCE 0x18 //uint16_t |
|
#define HSESP_DISTANCE_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_COUNTER 0x19 //int16_t |
|
#define HSESP_COUNTER_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_VOLTAGE 0x1A //int16_t |
|
#define HSESP_VOLTAGE_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_CONDUCTIVITY 0x1B //uint16_t |
|
#define HSESP_CONDUCTIVITY_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_LEVEL 0x1C //uint8_t |
|
#define HSESP_LEVEL_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_PRECIPITATION 0x1D //uint16_t |
|
#define HSESP_PRECIPITATION_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_LOCATION 0x1E //float |
|
#define HSESP_LOCATION_SIZE sizeof(float) |
|
|
|
#define HSESP_GENERIC_UINT8 0x70 //uint8_t |
|
#define HSESP_GENERIC_UINT8_SIZE sizeof(uint8_t) |
|
|
|
#define HSESP_GENERIC_UINT16 0x71 //uint16_t |
|
#define HSESP_GENERIC_UINT16_SIZE sizeof(uint16_t) |
|
|
|
#define HSESP_GENERIC_INT16 0x72 //int16_t |
|
#define HSESP_GENERIC_INT16_SIZE sizeof(int16_t) |
|
|
|
#define HSESP_GENERIC_UINT32 0x73 //uint32_t |
|
#define HSESP_GENERIC_UINT32_SIZE sizeof(uint32_t) |
|
|
|
#define HSESP_GENERIC_INT32 0x74 //int32_t |
|
#define HSESP_GENERIC_INT32_SIZE sizeof(int32_t) |
|
|
|
#define HSESP_GENERIC_FLOAT 0x75 //float |
|
#define HSESP_GENERIC_FLOAT_SIZE sizeof(float) |
|
|
|
#define HSESP_GENERIC_A_N_S_I_CHAR 0x76 //char |
|
#define HSESP_GENERIC_A_N_S_I_CHAR_SIZE sizeof(char) |
|
|
|
#define HSESP_GENERIC_U_T_F16_CHAR 0x77 //wchar_t |
|
#define HSESP_GENERIC_U_T_F16_CHAR_SIZE sizeof(wchar_t) |
|
|
|
#define HSESP_GENERIC_BOOLEAN 0x78 //bool |
|
#define HSESP_GENERIC_BOOLEAN_SIZE sizeof(bool) |
|
|
|
#define HSESP_ClimateSensor 0x80 |
|
#define HSESP_ClimateSensor_SIZE 7 |
|
|
|
#define HSESP_GPSSensor 0x81 |
|
#define HSESP_GPSSensor_SIZE 9 |
|
|
|
#define HSESP_PositionSensor 0x82 |
|
#define HSESP_PositionSensor_SIZE 10 |
|
|
|
class HseSP{ |
|
public: |
|
HseSP(uint8_t version, uint8_t size); |
|
~HseSP(); |
|
|
|
uint8_t getSize(void); |
|
uint8_t *getBuffer(void); |
|
void reset(); |
|
|
|
|
|
bool addDigitalInput(uint8_t value); |
|
bool addDigitalInput(uint8_t *values, uint8_t len); |
|
bool addDigitalOutput(uint8_t value); |
|
bool addDigitalOutput(uint8_t *values, uint8_t len); |
|
bool addAnalogInput(float value); |
|
bool addAnalogInput(float *values, uint8_t len); |
|
bool addAnalogOutput(float value); |
|
bool addAnalogOutput(float *values, uint8_t len); |
|
bool addTemperature(float value); |
|
bool addTemperature(float *values, uint8_t len); |
|
bool addHumidity(float value); |
|
bool addHumidity(float *values, uint8_t len); |
|
bool addPressure(float value); |
|
bool addPressure(float *values, uint8_t len); |
|
bool addIlluminance(uint16_t value); |
|
bool addIlluminance(uint16_t *values, uint8_t len); |
|
bool addConcentration(float value); |
|
bool addConcentration(float *values, uint8_t len); |
|
bool addDirection(float value); |
|
bool addDirection(float *values, uint8_t len); |
|
bool addRSSI(int16_t value); |
|
bool addRSSI(int16_t *values, uint8_t len); |
|
bool addLoudness(uint8_t value); |
|
bool addLoudness(uint8_t *values, uint8_t len); |
|
bool addDistance(float value); |
|
bool addDistance(float *values, uint8_t len); |
|
bool addCounter(int16_t value); |
|
bool addCounter(int16_t *values, uint8_t len); |
|
bool addVoltage(float value); |
|
bool addVoltage(float *values, uint8_t len); |
|
bool addConductivity(uint16_t value); |
|
bool addConductivity(uint16_t *values, uint8_t len); |
|
bool addLevel(uint8_t value); |
|
bool addLevel(uint8_t *values, uint8_t len); |
|
bool addPrecipitation(float value); |
|
bool addPrecipitation(float *values, uint8_t len); |
|
bool addLocation(float value); |
|
bool addLocation(float *values, uint8_t len); |
|
bool addGenericUInt8(uint8_t value); |
|
bool addGenericUInt8(uint8_t *values, uint8_t len); |
|
bool addGenericUInt16(uint16_t value); |
|
bool addGenericUInt16(uint16_t *values, uint8_t len); |
|
bool addGenericInt16(int16_t value); |
|
bool addGenericInt16(int16_t *values, uint8_t len); |
|
bool addGenericUInt32(uint32_t value); |
|
bool addGenericUInt32(uint32_t *values, uint8_t len); |
|
bool addGenericInt32(int32_t value); |
|
bool addGenericInt32(int32_t *values, uint8_t len); |
|
bool addGenericFloat(float value); |
|
bool addGenericFloat(float *values, uint8_t len); |
|
bool addGenericANSIChar(char value); |
|
bool addGenericANSIChar(char *values, uint8_t len); |
|
bool addGenericUTF16Char(wchar_t value); |
|
bool addGenericUTF16Char(wchar_t *values, uint8_t len); |
|
bool addGenericBoolean(bool value); |
|
bool addGenericBoolean(bool *values, uint8_t len); |
|
//ClimateSensor |
|
typedef struct { |
|
float Temperature; |
|
float Humidity; |
|
float Pressure; |
|
uint16_t Illuminance; |
|
} ClimateSensor_t; |
|
bool addClimateSensor(ClimateSensor_t *values, uint8_t len = 1); |
|
|
|
//GPSSensor |
|
typedef struct { |
|
float Latitude; |
|
float Longitude; |
|
int16_t SignalStrength; |
|
} GPSSensor_t; |
|
bool addGPSSensor(GPSSensor_t *values, uint8_t len = 1); |
|
|
|
//PositionSensor |
|
typedef struct { |
|
float GSensorX; |
|
float GSensorY; |
|
float GSensorZ; |
|
uint16_t Totalofshocks; |
|
uint16_t Maxshocks; |
|
} PositionSensor_t; |
|
bool addPositionSensor(PositionSensor_t *values, uint8_t len = 1); |
|
|
|
|
|
private: |
|
uint8_t *buffer; |
|
uint8_t maxsize; |
|
uint8_t dataCursor; |
|
|
|
void generateCRC(void); |
|
bool addDataHeader(uint8_t type, uint8_t dataSize, uint8_t dataLen); |
|
|
|
}; |
|
#endif
|
|
|