Files
IBVS/include/main.h

64 lines
1.6 KiB
C
Raw Normal View History

#ifndef MAIN_H
#define MAIN_H
#include <Arduino.h>
#include <vector>
#include <lvgl.h>
#include <TFT_eSPI.h>
#include <XPT2046_Touchscreen.h>
#include <SPI.h>
#include <ui.h>
#include <WiFi.h>
#include <PicoMQTT.h>
#include <SPIFFS.h>
#include <WebServer.h>
#include "vars.h"
#include "actions.h"
#define IBVS_BADGE 1
#define IBVS_PROCESSOR 2
#define START_SCREEN_WAIT (4 * 200) // First number is the time in seconds
#define NUM_OF_BADGES (10 + (10*8)) // First and second number have to be equal and is the number of badges
// 0 = off
// 1 = level-1 (verbose) prints ONLY level-1 messages
// 2 = level-2 (normal) prints level-2 AND (because level-2 “contains” level-1) also level-1
#define DBG_LEVEL 1 // change at build-time
#define DBG_L1(fmt, ...) do { if (DBG_LEVEL >= 1) Serial.printf(fmt, ##__VA_ARGS__); } while (0)
#define DBG_L2(fmt, ...) do { if (DBG_LEVEL >= 2) Serial.printf(fmt, ##__VA_ARGS__); } while (0)
// Struct objects for main data
struct ShortText {
char text[20];
int w;
int h;
};
struct LongText {
char text[30];
int w;
int h;
};
extern bool screenNeedsUpdate;
extern char current_screen;
extern int ibvs_mode;
// Funcion declarations
void serial_config();
bool connect_wifi();
void mqtt_subs();
void mqtt_send_result(char result);
void Winner_Screen();
void badge_registration();
void log_print(lv_log_level_t level, const char * buf);
void touchscreen_read(lv_indev_t * indev, lv_indev_data_t * data);
void screen_manager(void *pvParameters);
void mqtt_manager(void *pvParameters);
bool load_image(const char* filename);
void listSPIFFS();
void handleImageUpload();
void handleUploadComplete();
#endif