Files
IBVS/include/main.h

69 lines
1.9 KiB
C
Raw Permalink 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 <HTTPClient.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[40];
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 handleImageUpload();
void handleUploadComplete();
void update_voting(char load);
void voting_setup();
bool ask_input(const char* prompt, const char* item_name, char* output, size_t output_size);
char get_winner();
void upload_results_http(const char* server_url);
#endif