Add files via upload
This commit is contained in:
84
include/menu.h
Normal file
84
include/menu.h
Normal file
@@ -0,0 +1,84 @@
|
||||
#pragma once
|
||||
#define _LCD_TYPE 1
|
||||
#include <LCD_1602_RUS_ALL.h>
|
||||
#include <EncButton.h>
|
||||
|
||||
#include "pizzas.h"
|
||||
#include "config.h"
|
||||
|
||||
|
||||
class Menu {
|
||||
public:
|
||||
static Menu& getInstance() {
|
||||
static Menu instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
enum Page {
|
||||
WIFI_CONNECT,
|
||||
PRELOAD,
|
||||
PIZZA_SELECT,
|
||||
DOUGH_SELECT,
|
||||
SIZE_SELECT,
|
||||
CONFIRMATION,
|
||||
PLACING_ORDER,
|
||||
TRACKING
|
||||
};
|
||||
|
||||
enum TrackingStatus {
|
||||
UNKNOWN = -1,
|
||||
PROCESSING,
|
||||
ACCEPTED,
|
||||
COOKING,
|
||||
COURIER_WAIT,
|
||||
DELIVERY,
|
||||
FINISHED,
|
||||
CANCELLED
|
||||
};
|
||||
|
||||
void tick();
|
||||
void setMenuPage(Page page);
|
||||
uint8_t getMenuPage() {return menuPage;}
|
||||
void setTrackingStatus(TrackingStatus status);
|
||||
void updateIndex();
|
||||
uint32_t getSelectedPizzaId() {return selectedPizzaId;}
|
||||
private:
|
||||
LCD_1602_RUS lcd;
|
||||
EncButton enc;
|
||||
void animation();
|
||||
void scroll(int8_t direction);
|
||||
void initVariations();
|
||||
void drawSizes();
|
||||
void drawSizeSelectUpdate();
|
||||
void drawTrackingStatus();
|
||||
void drawPizzaName(char* name);
|
||||
void drawVariation(Pizzas::Variation var);
|
||||
void draw();
|
||||
void drawPrice(uint16_t price);
|
||||
void drawPriceShort(uint16_t price);
|
||||
void drawIndex();
|
||||
void drawDough(Pizzas::Dough dough);
|
||||
const char* trackingStatusStrings[7] = {
|
||||
"Обработка",
|
||||
"Принят",
|
||||
"Готовится",
|
||||
"Ожидание курьера",
|
||||
"Курьер в пути",
|
||||
"Доставлено",
|
||||
"Отменён"
|
||||
};
|
||||
boolean brbflag;
|
||||
uint32_t animationTick;
|
||||
boolean animationState;
|
||||
Pizzas& pizzas = Pizzas::getInstance();
|
||||
uint8_t curentPizzaIndex;
|
||||
Page menuPage;
|
||||
Pizzas::Dough selectedDough;
|
||||
Pizzas::Variation pizzaSizes[4];
|
||||
uint8_t pizzaSizesIndex;
|
||||
uint32_t selectedPizzaId;
|
||||
TrackingStatus trackingStatus = UNKNOWN;
|
||||
|
||||
Menu();
|
||||
|
||||
};
|
||||
28
include/parser.h
Normal file
28
include/parser.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "JsonHandler.h"
|
||||
#include "pizzas.h"
|
||||
#include "menu.h"
|
||||
|
||||
class PizzaHandler: public JsonHandler {
|
||||
public:
|
||||
virtual void startDocument();
|
||||
|
||||
virtual void startArray(ElementPath path);
|
||||
|
||||
virtual void startObject(ElementPath path);
|
||||
|
||||
virtual void endArray(ElementPath path);
|
||||
|
||||
virtual void endObject(ElementPath path);
|
||||
|
||||
virtual void endDocument();
|
||||
|
||||
virtual void value(ElementPath path, ElementValue value);
|
||||
|
||||
virtual void whitespace(char c);
|
||||
private:
|
||||
Pizzas& pizzas = Pizzas::getInstance();
|
||||
Pizzas::Pizza last_pizza;
|
||||
Pizzas::Variation new_variation;
|
||||
};
|
||||
48
include/pizzas.h
Normal file
48
include/pizzas.h
Normal file
@@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
class Pizzas {
|
||||
public:
|
||||
static Pizzas& getInstance() {
|
||||
static Pizzas instance;
|
||||
return instance;
|
||||
}
|
||||
enum Dough {
|
||||
THIN = 1,
|
||||
TRADITIONAL = 3
|
||||
};
|
||||
|
||||
struct Variation {
|
||||
uint32_t id;
|
||||
uint16_t price;
|
||||
Dough dough;
|
||||
uint8_t size;
|
||||
};
|
||||
|
||||
struct Pizza {
|
||||
uint16_t id;
|
||||
char name[100];
|
||||
uint16_t price;
|
||||
Variation variations[20];
|
||||
uint8_t variations_count = 0;
|
||||
};
|
||||
|
||||
Pizza* get_all() {
|
||||
return pizzas;
|
||||
}
|
||||
Pizza get(uint8_t index) {
|
||||
return pizzas[index];
|
||||
}
|
||||
uint8_t get_count() {
|
||||
return pizzas_count;
|
||||
}
|
||||
|
||||
void add_pizza(Pizza pizza) {
|
||||
pizzas[pizzas_count] = pizza;
|
||||
pizzas_count++;
|
||||
}
|
||||
private:
|
||||
Pizzas() {};
|
||||
Pizza pizzas[100];
|
||||
uint8_t pizzas_count = 0;
|
||||
};
|
||||
15
include/requests.h
Normal file
15
include/requests.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
#include <HTTPClient.h>
|
||||
#include <config.h>
|
||||
#include <ArduinoStreamParser.h>
|
||||
|
||||
class Request {
|
||||
public:
|
||||
char* request(const char* method, const char* path);
|
||||
char* request(const char* method, const char* path, const char* payload);
|
||||
void request(const char* method, char* path, ArudinoStreamParser& parser);
|
||||
private:
|
||||
HTTPClient* _get_client(const char* method, char* path);
|
||||
char* _get_url(const char* path);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user