#ifndef Sonde_h #define Sonde_h #include "aprs.h" // RX_TIMEOUT: no header detected // RX_ERROR: header detected, but data not decoded (crc error, etc.) // RX_OK: header and data ok enum RxResult { RX_OK, RX_TIMEOUT, RX_ERROR, RX_UNKNOWN, RX_NOPOS }; #define RX_UPDATERSSI 0xFFFE // Events that change what is displayed (mode, sondenr) // Keys: // 1 Button (short) or Touch (short) // 2 Button (double) or Touch (double) // 3 Button (mid) or Touch (mid) // 4 Button (long) or Touch (long) // 5 Touch1/2 (short) // 6 Touch1/2 (double) // 7 Touch1/2 (mid) // 8 Touch1/2 (long) /* Keypress => Sonde++ / Sonde-- / Display:=N*/ enum Events { EVT_NONE, EVT_KEY1SHORT, EVT_KEY1DOUBLE, EVT_KEY1MID, EVT_KEY1LONG, EVT_KEY2SHORT, EVT_KEY2DOUBLE, EVT_KEY2MID, EVT_KEY2LONG, EVT_VIEWTO, EVT_RXTO, EVT_NORXTO, EVT_MAX }; extern const char *evstring[]; extern const char *RXstr[]; #define EVENTNAME(s) evstring[s] //int8_t actions[EVT_MAX]; #define ACT_NONE 255 #define ACT_DISPLAY(n) (n) #define ACT_DISPLAY_DEFAULT 63 #define ACT_DISPLAY_SPECTRUM 62 #define ACT_DISPLAY_WIFI 61 #define ACT_NEXTSONDE 65 #define ACT_PREVSONDE 66 #define ACT_SONDE(n) ((n)+128) // 0000nnnn => goto display nnnn // 01000000 => goto sonde -1 // 01000001 => goto sonde +1 enum SondeType { STYPE_DFM06, STYPE_DFM09, STYPE_RS41, STYPE_RS92 }; extern const char *sondeTypeStr[5]; // Used for interacting with the RX background task typedef struct st_RXTask { // Variables set by Arduino main loop to value >=0 for requesting // mode change to sonde reception for sonde