fix: Spit working again also with linux
This commit is contained in:
@@ -2,8 +2,12 @@
|
||||
#include "spit_client.hpp"
|
||||
#include "esp_log.h"
|
||||
|
||||
#include "Queue.hpp"
|
||||
|
||||
namespace spit {
|
||||
static const char *TAG = "SPIT";
|
||||
static fos::Queue<vector<char>> incommingSpit(64);
|
||||
|
||||
|
||||
/**
|
||||
* Create a new SPIT_client instance, should be done once by the user app.
|
||||
@@ -225,7 +229,8 @@ bool SClient::startReceiveSPITMessages() {
|
||||
if (!mSocket.getIsBound())
|
||||
return false;
|
||||
mStopReceiveMessages = false;
|
||||
mThreadReceive = new fos::TaskT<SClient &>(receiveSPITMessage, *this, "receiveTask", fos::Task::DefaultStackSize * 4);
|
||||
mThreadReceive = new fos::TaskT<SClient &>(receiveSpitMessage, *this, "receiveTask", fos::Task::DefaultStackSize, fos::Task::MAX_PRIORITY-3);
|
||||
mThreadProcess = new fos::TaskT<SClient &>(processSpitMessage, *this, "processTask", fos::Task::DefaultStackSize);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -233,7 +238,7 @@ void SClient::stopReceiveSPITMessages() {
|
||||
mStopReceiveMessages = true;
|
||||
}
|
||||
|
||||
void SClient::receiveSPITMessage(SClient &rM) {
|
||||
void SClient::receiveSpitMessage(SClient &rM) {
|
||||
char buffer[MAXSPITMESSAGEBYTECOUNT + 1];
|
||||
int rdLen;
|
||||
while (rM.mStopReceiveMessages == false) {
|
||||
@@ -244,13 +249,21 @@ void SClient::receiveSPITMessage(SClient &rM) {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
auto vec = vector<char>(buffer, buffer + rdLen);
|
||||
auto spitMsg = make_unique<Message>(vec);
|
||||
rM.parseMessage(move(spitMsg));
|
||||
// rM.checkParseMessage(move(spitMsg));
|
||||
auto vec = make_unique<vector<char>>(buffer, buffer + rdLen);
|
||||
|
||||
incommingSpit.enqueue(std::move(vec));
|
||||
}
|
||||
}
|
||||
|
||||
void SClient::processSpitMessage(SClient &rM) {
|
||||
while (true) {
|
||||
auto data = *incommingSpit.dequeue();
|
||||
auto spitMsg = make_unique<Message>(data);
|
||||
rM.parseMessage(move(spitMsg));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SClient::resetMessageNumberReceived() {
|
||||
mMessageNumberReceived = -1;
|
||||
mOvertakingMessages.clear();
|
||||
|
||||
Reference in New Issue
Block a user