esp32-nmea2000-obp60/lib/obp60task/OBP60Data.h

112 lines
5.2 KiB
C

#ifndef _OBP60Data_H
#define _OBP60Data_H
#include <Arduino.h>
typedef struct{ // Sub structure for bus data
float fvalue = 0; // Float value
char svalue[16] = ""; // Char value
char unit[8] = ""; // Unit
bool valid = 0; // Valid flag
} dataContainer;
typedef struct{
// Gateway status infos
bool wifiApOn = false; // Status access point [on|off]
bool wifiClientConnected = false; // Client connected [yes|no]
unsigned long usbRx = 0; // USB receive traffic
unsigned long usbTx = 0; // USB send traffic
unsigned long serRx = 0; // MNEA0183 serial receive traffic
unsigned long serTx = 0; // NMEA0183 serial send traffic
unsigned long tcpSerRx = 0; // MNEA0183 TCP server receive traffic
unsigned long tcpSerTx = 0; // MNEA0183 TCP server send traffic
int tcpClients = 0; // Number of connected TCP clients
unsigned long tcpClRx = 0; // MNEA0183 TCP client receive traffic
unsigned long tcpClTx = 0; // MNEA0183 TCP client send traffic
bool tcpClientConnected = false; // Connected TCP clients
unsigned long n2kRx = 0; // NMEA2000 CAN receive traffic
unsigned long n2kTx = 0; // NMEA2000 CAN send traffic
// System Settings
char systemname[32] = ""; // System name show on web page and mDNS name
char wifissid[32] = ""; // WiFi access point SSID
char wifipass[32] = ""; // WiFi access point password
bool useadminpass = false; // Use admin password [on|off]
char adminpassword[32] = ""; // Admin password
char loglevel[16] = ""; // Loglevel [off|error|log|debug]
// WiFi client settings
bool wificlienton = false; // Is WiFi client on [on|off]
char wificlientssid[32] = ""; // Wifi client SSID
char wificlientpass[32] = ""; // Wifi client password
// OBP60 Settings
char dateformat[3] = "GB"; // Date format for status line [DE|GB|US]
int timezone = 0; // Time zone [-12...+12]
float draft = 0; // Boat draft up to keel [m]
float fueltank = 0; // Fuel tank capacity [0...10m]
float fuelconsumption = 0; // Fuel consumption [0...1000l/min]
float watertank = 0; // Water tank kapacity [0...5000l]
float wastetank = 0; // Waste tank kapacity [0...5000l]
float batvoltage = 0; // Battery voltage [0...1000V]
char battype[16] = "Pb"; // Battery type [Pb|Gel|AGM|LiFePo4]
float batcapacity = 0; // Battery capacity [0...10000Ah]
// OBP60 Hardware
bool gps = false; // Internal GPS [on|off]
bool bme280 = false; // Internat BME280 [on|off]
bool onewire = false; // Internal 1Wire bus [on|off]
char powermode[16] = "Max Power"; // Power mode [Max Power|Only 3.3V|Only 5.0V|Min Power]
bool simulation = false; // Simulation data [on|off]
// OBP60 Display
char displaymode[16] = "Logo + QR Code"; // Dislpay mode [White Screen|Logo|Logo + QR Code|Off]
bool statusline = true; // Show status line [on|off]
bool refresh = false; // Refresh display after select a new page [on|off]
char backlight[16] = "Control by Key"; // Backlight mode [Off|Control by Sun|Control by Bus|Control by Time|Control by Key|On]
char flashled[16] = "Off"; // Flash LED mode [Off|Bus Data|GPX Fix|Limits Overrun]
// OBP60 Buzzer
bool buzerror = false; // Buzzer error [on|off]
bool buzgps = false; // Buzzer by GPS error [on|off]
bool buzlimits = false; // Buzzer by limit underruns and overruns [on|off]
char buzmode[16] = "Off"; // Buzzer mode [Off|Short Single Beep|Lond Single Beep|Beep until Confirmation]
int buzpower = 0; // Buzzer power [0...100%]
// OBP60 Pages
int numpages = 1; // Numper of listed pages
// Bus data
dataContainer AWA;
dataContainer AWD;
dataContainer AWS;
dataContainer Altitude;
dataContainer BTW;
dataContainer COG;
dataContainer DTW;
dataContainer Date;
dataContainer DepthTransducer;
dataContainer Deviation;
dataContainer HDOP;
dataContainer Heading;
dataContainer Latitude;
dataContainer Log;
dataContainer Longitude;
dataContainer MagneticHeading;
dataContainer MaxAws;
dataContainer MaxTws;
dataContainer PDOP;
dataContainer ROT;
dataContainer RudderPosition;
dataContainer SOG;
dataContainer STW;
dataContainer SatInfo;
dataContainer Time;
dataContainer TWD;
dataContainer TWS;
dataContainer Timezone;
dataContainer TripLog;
dataContainer VDOP;
dataContainer Variation;
dataContainer WPLatitude;
dataContainer WPLongitude;
dataContainer WaterDepth;
dataContainer WaterTemperature;
dataContainer XTE;
} busData;
busData busInfo;
#endif