/// // // shared.h contains some shared settings and functionality // /// #ifndef _shared_h #define _shared_h #include // wifi configuration #define SSID "ESP8266" #define PASSW "XR-Lab2023" static const char* APP_TAG="CINEKID_LEDS"; // print a line with the app tag as a prefix to easilly separate our own logging from system logging #define LOGLN(...) do {\ printf("%s | ", APP_TAG);\ printf(__VA_ARGS__);\ printf("\n");\ } while(0) static inline int min(int a, int b) { return a < b ? a : b; } static inline int max(int a, int b) { return a > b ? a : b; } static inline int clamp(int x, int mi, int ma) { return max(mi, min(ma, x)); } #define GLOBAL(__a) (uint8_t)(__a|0xE0) typedef struct Result { uint8_t is_ok; union { void* ok; const char* error; }; } Result; #define PARSE_ERR(__err) (Result){.is_ok=0,.error=__err} #define PARSE_OK(__result) (Result){.is_ok=1,.ok=__result} #endif // !_shared_h