реорганизация файлов, перенос лишнего, рабочая версия

This commit is contained in:
Dmitry Borisenko
2022-01-24 22:28:33 +01:00
parent eca80d7dba
commit 9d56087973
10 changed files with 7 additions and 50 deletions

View File

@@ -0,0 +1,32 @@
#include "classes/QueueFromStruct.h"
#ifdef QUEUE_FROM_STR
QueueFromStruct::QueueFromStruct() {}
QueueFromStruct::~QueueFromStruct() {}
//добавим элемент в конец очереди
void QueueFromStruct::push(QueueItems word) {
queue1.push(word);
}
//удалим элемент из начала очереди
void QueueFromStruct::pop() {
if (!queue1.empty()) {
queue1.pop();
}
}
//вернуть элемент из начала очереди и удалить его
QueueItems QueueFromStruct::front() {
if (!queue1.empty()) {
tmpItem = queue1.front();
queue1.pop();
}
return tmpItem;
}
bool QueueFromStruct::empty() {
return queue1.empty();
}
QueueFromStruct* filesQueue;
#endif

View File

@@ -0,0 +1,46 @@
#pragma once
#include "Global.h"
#ifdef QUEUE_FROM_STR
#include <queue>
//#include <iostream> долбанный стрим сука
using namespace std;
struct QueueItems {
String myword;
uint8_t num;
};
class QueueFromStruct;
class QueueFromStruct {
public:
QueueFromStruct();
~QueueFromStruct();
void push(QueueItems word);
void pop();
QueueItems front();
bool empty();
private:
queue<QueueItems> queue1;
QueueItems tmpItem;
};
extern QueueFromStruct* filesQueue;
//=======проверка очереди из структур=================
// myQueueStruct = new QueueFromStruct;
// QueueItems myItem;
// myItem.myword = "word1";
// myQueueStruct->push(myItem);
// myItem.myword = "word2";
// myQueueStruct->push(myItem);
// myItem.myword = "word3";
// myQueueStruct->push(myItem);
// Serial.println(myQueueStruct->front().myword);
// Serial.println(myQueueStruct->front().myword);
// Serial.println(myQueueStruct->front().myword);
#endif

44
training/SendJson.cpp Normal file
View File

@@ -0,0 +1,44 @@
#include "classes/SendJson.h"
#ifdef QUEUE_FROM_STR
SendJson::SendJson() {
filesQueue = new QueueFromStruct;
}
SendJson::~SendJson() {}
void SendJson::addFileToQueue(String path, uint8_t num) {
myItem.myword = path;
myItem.num = num;
filesQueue->push(myItem);
SerialPrint(F("i"), F("WS"), "file added to Queue " + path);
}
//опсылает массив json по объектно в сокеты
void SendJson::loop() {
if (!filesQueue->empty() && !sendingInProgress) {
Serial.println("Queue not empty");
myItem = filesQueue->front();
_path = myItem.myword;
_num = myItem.num;
file = seekFile(_path);
SerialPrint(F("i"), F("WS"), "seek File to WS " + _path);
sendingInProgress = true;
}
if (file.available()) {
String jsonArrayElement = _path + file.readStringUntil('}') + "}";
sendWs(jsonArrayElement);
} else {
sendingInProgress = false;
}
}
void SendJson::sendWs(String& jsonArrayElement) {
standWebSocket.sendTXT(_num, jsonArrayElement);
}
void SendJson::sendMqtt(String& jsonArrayElement) {
// mqtt send to do
}
SendJson* sendJsonFiles;
#endif

31
training/SendJson.h Normal file
View File

@@ -0,0 +1,31 @@
#pragma once
#include "Global.h"
#ifdef QUEUE_FROM_STR
#include "classes/QueueFromStruct.h"
class SendJson;
class SendJson {
public:
SendJson();
~SendJson();
void addFileToQueue(String path, uint8_t num);
void loop();
void sendWs(String& jsonArrayElement);
void sendMqtt(String& jsonArrayElement);
QueueItems myItem;
private:
File file;
String _path;
uint8_t _num;
bool sendingInProgress = false;
};
extern SendJson* sendJsonFiles;
#endif