re-merge fixes by @lesykm

This commit is contained in:
Thomas Göttgens 2023-01-12 19:08:41 +01:00
parent a3636ae8a1
commit 8db3f317ab

View File

@ -61,7 +61,8 @@ SerialModuleRadio *serialModuleRadio;
SerialModule::SerialModule() : StreamAPI(&Serial2), concurrency::OSThread("SerialModule") {} SerialModule::SerialModule() : StreamAPI(&Serial2), concurrency::OSThread("SerialModule") {}
char serialStringChar[Constants_DATA_PAYLOAD_LEN]; char serialBytes[Constants_DATA_PAYLOAD_LEN];
size_t serialPayloadSize;
SerialModuleRadio::SerialModuleRadio() : MeshModule("SerialModuleRadio") SerialModuleRadio::SerialModuleRadio() : MeshModule("SerialModuleRadio")
{ {
@ -203,15 +204,9 @@ int32_t SerialModule::runOnce()
Serial2.printf("%s", outbuf); Serial2.printf("%s", outbuf);
} }
} else { } else {
String serialString;
while (Serial2.available()) { while (Serial2.available()) {
serialString = Serial2.readString(); serialPayloadSize = Serial2.readBytes(serialBytes, Constants_DATA_PAYLOAD_LEN);
serialString.toCharArray(serialStringChar, Constants_DATA_PAYLOAD_LEN);
serialModuleRadio->sendPayload(); serialModuleRadio->sendPayload();
LOG_INFO("Received: %s\n", serialStringChar);
} }
} }
} }
@ -231,14 +226,18 @@ MeshPacket *SerialModuleRadio::allocReply()
void SerialModuleRadio::sendPayload(NodeNum dest, bool wantReplies) void SerialModuleRadio::sendPayload(NodeNum dest, bool wantReplies)
{ {
Channel *ch = (boundChannel != NULL) ? &channels.getByName(boundChannel) : NULL;
MeshPacket *p = allocReply(); MeshPacket *p = allocReply();
p->to = dest; p->to = dest;
if (ch != NULL) {
p->channel = ch->index;
}
p->decoded.want_response = wantReplies; p->decoded.want_response = wantReplies;
p->want_ack = ACK; p->want_ack = ACK;
p->decoded.payload.size = strlen(serialStringChar); // You must specify how many bytes are in the reply p->decoded.payload.size = serialPayloadSize; // You must specify how many bytes are in the reply
memcpy(p->decoded.payload.bytes, serialStringChar, p->decoded.payload.size); memcpy(p->decoded.payload.bytes, serialBytes, p->decoded.payload.size);
service.sendToMesh(p); service.sendToMesh(p);
} }