mirror of
https://github.com/BotChain-Robots/firmware.git
synced 2026-07-08 09:37:21 +02:00
OTA + remote logging + profiling
This commit is contained in:
@@ -9,12 +9,12 @@
|
||||
#define RPC_CALL_ENQUEUE_TIMEOUT_MS 250
|
||||
#define RPC_CALL_DEQUEUE_TIMEOUT_MS 3000
|
||||
#define RPC_CALL_THREAD_POOL_SIZE 3
|
||||
#define RPC_CALL_PARAMETERS_MAX_SIZE 512
|
||||
#define RPC_CALL_PARAMETERS_MAX_SIZE 1152
|
||||
|
||||
#define RX_QUEUE_SIZE 4
|
||||
#define MAX_RX_BUFFER_SIZE 512
|
||||
#define MAX_RX_BUFFER_SIZE 1152
|
||||
|
||||
#define MPI_QUEUE_SIZE 4
|
||||
#define MAX_MPI_BUFFER_SIZE 512
|
||||
#define MAX_MPI_BUFFER_SIZE 1152
|
||||
|
||||
#endif //APP_COMMS_H
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
idf_component_register(SRCS "MPIMessageBuilder.cpp" "AngleControlMessageBuilder.cpp" "TopologyMessageBuilder.cpp" "SensorMessageBuilder.cpp" "TextControlMessageBuilder.cpp" "CallBuilder.cpp"
|
||||
idf_component_register(SRCS "MPIMessageBuilder.cpp" "AngleControlMessageBuilder.cpp" "TopologyMessageBuilder.cpp" "SensorMessageBuilder.cpp" "TextControlMessageBuilder.cpp" "CallBuilder.cpp" "OTAPacketBuilder.cpp"
|
||||
INCLUDE_DIRS "include")
|
||||
|
||||
10
components/flatbuffers/OTAPacketBuilder.cpp
Normal file
10
components/flatbuffers/OTAPacketBuilder.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
#include "OTAPacketBuilder.h"
|
||||
|
||||
namespace Flatbuffers {
|
||||
|
||||
const Messaging::OTAPacket *OTAPacketBuilder::parse_ota_packet(const uint8_t *buffer) {
|
||||
return flatbuffers::GetRoot<Messaging::OTAPacket>(buffer);
|
||||
}
|
||||
|
||||
} // namespace Flatbuffers
|
||||
20
components/flatbuffers/include/OTAPacketBuilder.h
Normal file
20
components/flatbuffers/include/OTAPacketBuilder.h
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
#ifndef OTAPACKETUILDER_H
|
||||
#define OTAPACKETBUILDER_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "flatbuffers/flatbuffers.h"
|
||||
#include "flatbuffers_generated/OTAPacket_generated.h"
|
||||
|
||||
namespace Flatbuffers {
|
||||
|
||||
class OTAPacketBuilder{
|
||||
public:
|
||||
OTAPacketBuilder() {}
|
||||
static const Messaging::OTAPacket *parse_ota_packet(const uint8_t *buffer);
|
||||
};
|
||||
} // namespace Flatbuffers
|
||||
|
||||
#endif // OTAPACKETBUILDER_H
|
||||
@@ -0,0 +1,128 @@
|
||||
// automatically generated by the FlatBuffers compiler, do not modify
|
||||
|
||||
|
||||
#ifndef FLATBUFFERS_GENERATED_OTAPACKET_MESSAGING_H_
|
||||
#define FLATBUFFERS_GENERATED_OTAPACKET_MESSAGING_H_
|
||||
|
||||
#include "flatbuffers/flatbuffers.h"
|
||||
|
||||
// Ensure the included flatbuffers.h is the same version as when this file was
|
||||
// generated, otherwise it may not be compatible.
|
||||
// static_assert(FLATBUFFERS_VERSION_MAJOR == 25 &&
|
||||
// FLATBUFFERS_VERSION_MINOR == 2 &&
|
||||
// FLATBUFFERS_VERSION_REVISION == 10,
|
||||
// "Non-compatible flatbuffers version included");
|
||||
|
||||
namespace Messaging {
|
||||
|
||||
struct OTAPacket;
|
||||
struct OTAPacketBuilder;
|
||||
|
||||
struct OTAPacket FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
|
||||
typedef OTAPacketBuilder Builder;
|
||||
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
|
||||
VT_SEQUENCE_NUMBER = 4,
|
||||
VT_LENGTH = 6,
|
||||
VT_PAYLOAD = 8
|
||||
};
|
||||
uint16_t sequence_number() const {
|
||||
return GetField<uint16_t>(VT_SEQUENCE_NUMBER, 0);
|
||||
}
|
||||
uint16_t length() const {
|
||||
return GetField<uint16_t>(VT_LENGTH, 0);
|
||||
}
|
||||
const ::flatbuffers::Vector<uint8_t> *payload() const {
|
||||
return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_PAYLOAD);
|
||||
}
|
||||
bool Verify(::flatbuffers::Verifier &verifier) const {
|
||||
return VerifyTableStart(verifier) &&
|
||||
VerifyField<uint16_t>(verifier, VT_SEQUENCE_NUMBER, 2) &&
|
||||
VerifyField<uint16_t>(verifier, VT_LENGTH, 2) &&
|
||||
VerifyOffset(verifier, VT_PAYLOAD) &&
|
||||
verifier.VerifyVector(payload()) &&
|
||||
verifier.EndTable();
|
||||
}
|
||||
};
|
||||
|
||||
struct OTAPacketBuilder {
|
||||
typedef OTAPacket Table;
|
||||
::flatbuffers::FlatBufferBuilder &fbb_;
|
||||
::flatbuffers::uoffset_t start_;
|
||||
void add_sequence_number(uint16_t sequence_number) {
|
||||
fbb_.AddElement<uint16_t>(OTAPacket::VT_SEQUENCE_NUMBER, sequence_number, 0);
|
||||
}
|
||||
void add_length(uint16_t length) {
|
||||
fbb_.AddElement<uint16_t>(OTAPacket::VT_LENGTH, length, 0);
|
||||
}
|
||||
void add_payload(::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> payload) {
|
||||
fbb_.AddOffset(OTAPacket::VT_PAYLOAD, payload);
|
||||
}
|
||||
explicit OTAPacketBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
|
||||
: fbb_(_fbb) {
|
||||
start_ = fbb_.StartTable();
|
||||
}
|
||||
::flatbuffers::Offset<OTAPacket> Finish() {
|
||||
const auto end = fbb_.EndTable(start_);
|
||||
auto o = ::flatbuffers::Offset<OTAPacket>(end);
|
||||
return o;
|
||||
}
|
||||
};
|
||||
|
||||
inline ::flatbuffers::Offset<OTAPacket> CreateOTAPacket(
|
||||
::flatbuffers::FlatBufferBuilder &_fbb,
|
||||
uint16_t sequence_number = 0,
|
||||
uint16_t length = 0,
|
||||
::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> payload = 0) {
|
||||
OTAPacketBuilder builder_(_fbb);
|
||||
builder_.add_payload(payload);
|
||||
builder_.add_length(length);
|
||||
builder_.add_sequence_number(sequence_number);
|
||||
return builder_.Finish();
|
||||
}
|
||||
|
||||
inline ::flatbuffers::Offset<OTAPacket> CreateOTAPacketDirect(
|
||||
::flatbuffers::FlatBufferBuilder &_fbb,
|
||||
uint16_t sequence_number = 0,
|
||||
uint16_t length = 0,
|
||||
const std::vector<uint8_t> *payload = nullptr) {
|
||||
auto payload__ = payload ? _fbb.CreateVector<uint8_t>(*payload) : 0;
|
||||
return Messaging::CreateOTAPacket(
|
||||
_fbb,
|
||||
sequence_number,
|
||||
length,
|
||||
payload__);
|
||||
}
|
||||
|
||||
inline const Messaging::OTAPacket *GetOTAPacket(const void *buf) {
|
||||
return ::flatbuffers::GetRoot<Messaging::OTAPacket>(buf);
|
||||
}
|
||||
|
||||
inline const Messaging::OTAPacket *GetSizePrefixedOTAPacket(const void *buf) {
|
||||
return ::flatbuffers::GetSizePrefixedRoot<Messaging::OTAPacket>(buf);
|
||||
}
|
||||
|
||||
inline bool VerifyOTAPacketBuffer(
|
||||
::flatbuffers::Verifier &verifier) {
|
||||
return verifier.VerifyBuffer<Messaging::OTAPacket>(nullptr);
|
||||
}
|
||||
|
||||
inline bool VerifySizePrefixedOTAPacketBuffer(
|
||||
::flatbuffers::Verifier &verifier) {
|
||||
return verifier.VerifySizePrefixedBuffer<Messaging::OTAPacket>(nullptr);
|
||||
}
|
||||
|
||||
inline void FinishOTAPacketBuffer(
|
||||
::flatbuffers::FlatBufferBuilder &fbb,
|
||||
::flatbuffers::Offset<Messaging::OTAPacket> root) {
|
||||
fbb.Finish(root);
|
||||
}
|
||||
|
||||
inline void FinishSizePrefixedOTAPacketBuffer(
|
||||
::flatbuffers::FlatBufferBuilder &fbb,
|
||||
::flatbuffers::Offset<Messaging::OTAPacket> root) {
|
||||
fbb.FinishSizePrefixed(root);
|
||||
}
|
||||
|
||||
} // namespace Messaging
|
||||
|
||||
#endif // FLATBUFFERS_GENERATED_OTAPACKET_MESSAGING_H_
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
xTaskCreate(handleRecvCall, "rpc_rx", 3072, this, 5, &m_handle_recv_call_task);
|
||||
m_thread_pool.resize(RPC_CALL_THREAD_POOL_SIZE);
|
||||
for (int i = 0; i < RPC_CALL_THREAD_POOL_SIZE; i++) {
|
||||
xTaskCreate(processRPCCall, "rpc_thread", 3072, this, 5, &m_thread_pool[i]);
|
||||
xTaskCreate(processRPCCall, "rpc_thread", 4096, this, 5, &m_thread_pool[i]);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user