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