You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
3.2 KiB
C
157 lines
3.2 KiB
C
// A list of all datatypes you can use within FDRS.
|
|
// If you are missing any data type, please open an issue at:
|
|
// https://github.com/timmbogner/Farm-Data-Relay-System/issues
|
|
|
|
typedef struct FDRSPeer {
|
|
uint8_t mac[6];
|
|
uint32_t last_seen = 0;
|
|
|
|
} FDRSPeer;
|
|
|
|
typedef struct __attribute__((packed)) DataReading {
|
|
float d;
|
|
uint16_t id;
|
|
uint8_t t;
|
|
|
|
} DataReading;
|
|
|
|
typedef struct __attribute__((packed)) SystemPacket {
|
|
uint8_t cmd;
|
|
uint32_t param;
|
|
} SystemPacket;
|
|
|
|
enum crcResult {
|
|
CRC_NULL,
|
|
CRC_OK,
|
|
CRC_BAD,
|
|
} returnCRC;
|
|
|
|
enum cmd_t {
|
|
cmd_clear,
|
|
cmd_ping,
|
|
cmd_add,
|
|
cmd_ack,
|
|
cmd_time
|
|
};
|
|
|
|
enum ping_t {
|
|
ping_request,
|
|
ping_reply
|
|
};
|
|
|
|
enum pingstate_t {
|
|
stReady,
|
|
stInProcess,
|
|
stCrcMismatch,
|
|
stCrcMatch,
|
|
stCompleted
|
|
};
|
|
|
|
|
|
enum
|
|
{
|
|
event_clear,
|
|
event_espnowg,
|
|
event_espnow1,
|
|
event_espnow2,
|
|
event_serial,
|
|
event_mqtt,
|
|
event_lorag,
|
|
event_lora1,
|
|
event_lora2,
|
|
event_internal
|
|
};
|
|
|
|
// Interface type that is the time source
|
|
enum TmNetIf {
|
|
TMIF_NONE,
|
|
TMIF_LORA,
|
|
TMIF_ESPNOW,
|
|
TMIF_SERIAL,
|
|
TMIF_LOCAL,
|
|
};
|
|
// Local time source that is setting the time
|
|
enum TmSource {
|
|
TMS_NONE,
|
|
TMS_NET,
|
|
TMS_RTC,
|
|
TMS_NTP,
|
|
TMS_GPS,
|
|
};
|
|
|
|
struct TimeSource {
|
|
TmNetIf tmNetIf;
|
|
uint16_t tmAddress;
|
|
TmSource tmSource;
|
|
unsigned long tmLastTimeSet;
|
|
};
|
|
|
|
struct DRRingBuffer {
|
|
DataReading *dr;
|
|
uint16_t *address;
|
|
uint startIdx;
|
|
uint endIdx;
|
|
uint size;
|
|
};
|
|
|
|
struct SPRingBuffer {
|
|
SystemPacket *sp;
|
|
uint16_t *address;
|
|
uint startIdx;
|
|
uint endIdx;
|
|
uint size;
|
|
};
|
|
|
|
struct Ping {
|
|
pingstate_t status = stReady;
|
|
unsigned long start;
|
|
uint timeout;
|
|
uint16_t address;
|
|
uint32_t response = __UINT32_MAX__;
|
|
};
|
|
|
|
#ifndef ESP32
|
|
typedef int esp_err_t;
|
|
#define ESP_FAIL 0
|
|
#define ESP_OK 1
|
|
#endif
|
|
|
|
#ifndef FDRS_DATA_TYPES
|
|
#define FDRS_DATA_TYPES
|
|
|
|
#define STATUS_T 0 // Status
|
|
#define TEMP_T 1 // Temperature
|
|
#define TEMP2_T 2 // Temperature #2
|
|
#define HUMIDITY_T 3 // Relative Humidity
|
|
#define PRESSURE_T 4 // Atmospheric Pressure
|
|
#define LIGHT_T 5 // Light (lux)
|
|
#define SOIL_T 6 // Soil Moisture
|
|
#define SOIL2_T 7 // Soil Moisture #2
|
|
#define SOILR_T 8 // Soil Resistance
|
|
#define SOILR2_T 9 // Soil Resistance #2
|
|
#define OXYGEN_T 10 // Oxygen
|
|
#define CO2_T 11 // Carbon Dioxide
|
|
#define WINDSPD_T 12 // Wind Speed
|
|
#define WINDHDG_T 13 // Wind Direction
|
|
#define RAINFALL_T 14 // Rainfall
|
|
#define MOTION_T 15 // Motion
|
|
#define VOLTAGE_T 16 // Voltage
|
|
#define VOLTAGE2_T 17 // Voltage #2
|
|
#define CURRENT_T 18 // Current
|
|
#define CURRENT2_T 19 // Current #2
|
|
#define IT_T 20 // Iterations
|
|
#define LATITUDE_T 21 // GPS Latitude
|
|
#define LONGITUDE_T 22 // GPS Longitude
|
|
#define ALTITUDE_T 23 // GPS Altitude
|
|
#define HDOP_T 24 // GPS HDOP
|
|
#define LEVEL_T 25 // Fluid Level
|
|
#define UV_T 26 // UV
|
|
#define PM1_T 27 // 1 Particles
|
|
#define PM2_5_T 28 // 2.5 Particles
|
|
#define PM10_T 29 // 10 Particles
|
|
#define POWER_T 30 // Power
|
|
#define POWER2_T 31 // Power #2
|
|
#define ENERGY_T 32 // Energy
|
|
#define ENERGY2_T 33 // Energy #2
|
|
|
|
#endif //FDRS_DATA_TYPES
|