Board to PC

This commit is contained in:
2025-07-12 14:13:11 -04:00
parent bf1c72215f
commit 6d2d646a0f
9 changed files with 139 additions and 686 deletions

View File

@@ -1,634 +0,0 @@
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_CONFIGMESSAGE_MESSAGING_H_
#define FLATBUFFERS_GENERATED_CONFIGMESSAGE_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 I32Value;
struct I32ValueBuilder;
struct U32Value;
struct U32ValueBuilder;
struct I64Value;
struct I64ValueBuilder;
struct U64Value;
struct U64ValueBuilder;
struct StringValue;
struct StringValueBuilder;
struct BlobValue;
struct BlobValueBuilder;
struct ConfigMessage;
struct ConfigMessageBuilder;
enum EntryType : int8_t {
EntryType_NONE = 0,
EntryType_I32 = 1,
EntryType_U32 = 2,
EntryType_I64 = 3,
EntryType_U64 = 4,
EntryType_STRING = 5,
EntryType_BLOB = 6,
EntryType_MIN = EntryType_NONE,
EntryType_MAX = EntryType_BLOB
};
inline const EntryType (&EnumValuesEntryType())[7] {
static const EntryType values[] = {
EntryType_NONE,
EntryType_I32,
EntryType_U32,
EntryType_I64,
EntryType_U64,
EntryType_STRING,
EntryType_BLOB
};
return values;
}
inline const char * const *EnumNamesEntryType() {
static const char * const names[8] = {
"NONE",
"I32",
"U32",
"I64",
"U64",
"STRING",
"BLOB",
nullptr
};
return names;
}
inline const char *EnumNameEntryType(EntryType e) {
if (::flatbuffers::IsOutRange(e, EntryType_NONE, EntryType_BLOB)) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesEntryType()[index];
}
enum NvsValue : uint8_t {
NvsValue_NONE = 0,
NvsValue_I32Value = 1,
NvsValue_U32Value = 2,
NvsValue_I64Value = 3,
NvsValue_U64Value = 4,
NvsValue_StringValue = 5,
NvsValue_BlobValue = 6,
NvsValue_MIN = NvsValue_NONE,
NvsValue_MAX = NvsValue_BlobValue
};
inline const NvsValue (&EnumValuesNvsValue())[7] {
static const NvsValue values[] = {
NvsValue_NONE,
NvsValue_I32Value,
NvsValue_U32Value,
NvsValue_I64Value,
NvsValue_U64Value,
NvsValue_StringValue,
NvsValue_BlobValue
};
return values;
}
inline const char * const *EnumNamesNvsValue() {
static const char * const names[8] = {
"NONE",
"I32Value",
"U32Value",
"I64Value",
"U64Value",
"StringValue",
"BlobValue",
nullptr
};
return names;
}
inline const char *EnumNameNvsValue(NvsValue e) {
if (::flatbuffers::IsOutRange(e, NvsValue_NONE, NvsValue_BlobValue)) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesNvsValue()[index];
}
template<typename T> struct NvsValueTraits {
static const NvsValue enum_value = NvsValue_NONE;
};
template<> struct NvsValueTraits<Messaging::I32Value> {
static const NvsValue enum_value = NvsValue_I32Value;
};
template<> struct NvsValueTraits<Messaging::U32Value> {
static const NvsValue enum_value = NvsValue_U32Value;
};
template<> struct NvsValueTraits<Messaging::I64Value> {
static const NvsValue enum_value = NvsValue_I64Value;
};
template<> struct NvsValueTraits<Messaging::U64Value> {
static const NvsValue enum_value = NvsValue_U64Value;
};
template<> struct NvsValueTraits<Messaging::StringValue> {
static const NvsValue enum_value = NvsValue_StringValue;
};
template<> struct NvsValueTraits<Messaging::BlobValue> {
static const NvsValue enum_value = NvsValue_BlobValue;
};
bool VerifyNvsValue(::flatbuffers::Verifier &verifier, const void *obj, NvsValue type);
bool VerifyNvsValueVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<uint8_t> *types);
struct I32Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef I32ValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
int32_t value() const {
return GetField<int32_t>(VT_VALUE, 0);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int32_t>(verifier, VT_VALUE, 4) &&
verifier.EndTable();
}
};
struct I32ValueBuilder {
typedef I32Value Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(int32_t value) {
fbb_.AddElement<int32_t>(I32Value::VT_VALUE, value, 0);
}
explicit I32ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<I32Value> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<I32Value>(end);
return o;
}
};
inline ::flatbuffers::Offset<I32Value> CreateI32Value(
::flatbuffers::FlatBufferBuilder &_fbb,
int32_t value = 0) {
I32ValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
struct U32Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef U32ValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
uint32_t value() const {
return GetField<uint32_t>(VT_VALUE, 0);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<uint32_t>(verifier, VT_VALUE, 4) &&
verifier.EndTable();
}
};
struct U32ValueBuilder {
typedef U32Value Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(uint32_t value) {
fbb_.AddElement<uint32_t>(U32Value::VT_VALUE, value, 0);
}
explicit U32ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<U32Value> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<U32Value>(end);
return o;
}
};
inline ::flatbuffers::Offset<U32Value> CreateU32Value(
::flatbuffers::FlatBufferBuilder &_fbb,
uint32_t value = 0) {
U32ValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
struct I64Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef I64ValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
int64_t value() const {
return GetField<int64_t>(VT_VALUE, 0);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int64_t>(verifier, VT_VALUE, 8) &&
verifier.EndTable();
}
};
struct I64ValueBuilder {
typedef I64Value Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(int64_t value) {
fbb_.AddElement<int64_t>(I64Value::VT_VALUE, value, 0);
}
explicit I64ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<I64Value> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<I64Value>(end);
return o;
}
};
inline ::flatbuffers::Offset<I64Value> CreateI64Value(
::flatbuffers::FlatBufferBuilder &_fbb,
int64_t value = 0) {
I64ValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
struct U64Value FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef U64ValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
uint64_t value() const {
return GetField<uint64_t>(VT_VALUE, 0);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<uint64_t>(verifier, VT_VALUE, 8) &&
verifier.EndTable();
}
};
struct U64ValueBuilder {
typedef U64Value Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(uint64_t value) {
fbb_.AddElement<uint64_t>(U64Value::VT_VALUE, value, 0);
}
explicit U64ValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<U64Value> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<U64Value>(end);
return o;
}
};
inline ::flatbuffers::Offset<U64Value> CreateU64Value(
::flatbuffers::FlatBufferBuilder &_fbb,
uint64_t value = 0) {
U64ValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
struct StringValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef StringValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
const ::flatbuffers::String *value() const {
return GetPointer<const ::flatbuffers::String *>(VT_VALUE);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_VALUE) &&
verifier.VerifyString(value()) &&
verifier.EndTable();
}
};
struct StringValueBuilder {
typedef StringValue Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(::flatbuffers::Offset<::flatbuffers::String> value) {
fbb_.AddOffset(StringValue::VT_VALUE, value);
}
explicit StringValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<StringValue> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<StringValue>(end);
return o;
}
};
inline ::flatbuffers::Offset<StringValue> CreateStringValue(
::flatbuffers::FlatBufferBuilder &_fbb,
::flatbuffers::Offset<::flatbuffers::String> value = 0) {
StringValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
inline ::flatbuffers::Offset<StringValue> CreateStringValueDirect(
::flatbuffers::FlatBufferBuilder &_fbb,
const char *value = nullptr) {
auto value__ = value ? _fbb.CreateString(value) : 0;
return Messaging::CreateStringValue(
_fbb,
value__);
}
struct BlobValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef BlobValueBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_VALUE = 4
};
const ::flatbuffers::Vector<uint8_t> *value() const {
return GetPointer<const ::flatbuffers::Vector<uint8_t> *>(VT_VALUE);
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_VALUE) &&
verifier.VerifyVector(value()) &&
verifier.EndTable();
}
};
struct BlobValueBuilder {
typedef BlobValue Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_value(::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> value) {
fbb_.AddOffset(BlobValue::VT_VALUE, value);
}
explicit BlobValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<BlobValue> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<BlobValue>(end);
return o;
}
};
inline ::flatbuffers::Offset<BlobValue> CreateBlobValue(
::flatbuffers::FlatBufferBuilder &_fbb,
::flatbuffers::Offset<::flatbuffers::Vector<uint8_t>> value = 0) {
BlobValueBuilder builder_(_fbb);
builder_.add_value(value);
return builder_.Finish();
}
inline ::flatbuffers::Offset<BlobValue> CreateBlobValueDirect(
::flatbuffers::FlatBufferBuilder &_fbb,
const std::vector<uint8_t> *value = nullptr) {
auto value__ = value ? _fbb.CreateVector<uint8_t>(*value) : 0;
return Messaging::CreateBlobValue(
_fbb,
value__);
}
struct ConfigMessage FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
typedef ConfigMessageBuilder Builder;
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_KEY = 4,
VT_TYPE = 6,
VT_VALUE_TYPE = 8,
VT_VALUE = 10
};
const ::flatbuffers::String *key() const {
return GetPointer<const ::flatbuffers::String *>(VT_KEY);
}
Messaging::EntryType type() const {
return static_cast<Messaging::EntryType>(GetField<int8_t>(VT_TYPE, 0));
}
Messaging::NvsValue value_type() const {
return static_cast<Messaging::NvsValue>(GetField<uint8_t>(VT_VALUE_TYPE, 0));
}
const void *value() const {
return GetPointer<const void *>(VT_VALUE);
}
template<typename T> const T *value_as() const;
const Messaging::I32Value *value_as_I32Value() const {
return value_type() == Messaging::NvsValue_I32Value ? static_cast<const Messaging::I32Value *>(value()) : nullptr;
}
const Messaging::U32Value *value_as_U32Value() const {
return value_type() == Messaging::NvsValue_U32Value ? static_cast<const Messaging::U32Value *>(value()) : nullptr;
}
const Messaging::I64Value *value_as_I64Value() const {
return value_type() == Messaging::NvsValue_I64Value ? static_cast<const Messaging::I64Value *>(value()) : nullptr;
}
const Messaging::U64Value *value_as_U64Value() const {
return value_type() == Messaging::NvsValue_U64Value ? static_cast<const Messaging::U64Value *>(value()) : nullptr;
}
const Messaging::StringValue *value_as_StringValue() const {
return value_type() == Messaging::NvsValue_StringValue ? static_cast<const Messaging::StringValue *>(value()) : nullptr;
}
const Messaging::BlobValue *value_as_BlobValue() const {
return value_type() == Messaging::NvsValue_BlobValue ? static_cast<const Messaging::BlobValue *>(value()) : nullptr;
}
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_KEY) &&
verifier.VerifyString(key()) &&
VerifyField<int8_t>(verifier, VT_TYPE, 1) &&
VerifyField<uint8_t>(verifier, VT_VALUE_TYPE, 1) &&
VerifyOffset(verifier, VT_VALUE) &&
VerifyNvsValue(verifier, value(), value_type()) &&
verifier.EndTable();
}
};
template<> inline const Messaging::I32Value *ConfigMessage::value_as<Messaging::I32Value>() const {
return value_as_I32Value();
}
template<> inline const Messaging::U32Value *ConfigMessage::value_as<Messaging::U32Value>() const {
return value_as_U32Value();
}
template<> inline const Messaging::I64Value *ConfigMessage::value_as<Messaging::I64Value>() const {
return value_as_I64Value();
}
template<> inline const Messaging::U64Value *ConfigMessage::value_as<Messaging::U64Value>() const {
return value_as_U64Value();
}
template<> inline const Messaging::StringValue *ConfigMessage::value_as<Messaging::StringValue>() const {
return value_as_StringValue();
}
template<> inline const Messaging::BlobValue *ConfigMessage::value_as<Messaging::BlobValue>() const {
return value_as_BlobValue();
}
struct ConfigMessageBuilder {
typedef ConfigMessage Table;
::flatbuffers::FlatBufferBuilder &fbb_;
::flatbuffers::uoffset_t start_;
void add_key(::flatbuffers::Offset<::flatbuffers::String> key) {
fbb_.AddOffset(ConfigMessage::VT_KEY, key);
}
void add_type(Messaging::EntryType type) {
fbb_.AddElement<int8_t>(ConfigMessage::VT_TYPE, static_cast<int8_t>(type), 0);
}
void add_value_type(Messaging::NvsValue value_type) {
fbb_.AddElement<uint8_t>(ConfigMessage::VT_VALUE_TYPE, static_cast<uint8_t>(value_type), 0);
}
void add_value(::flatbuffers::Offset<void> value) {
fbb_.AddOffset(ConfigMessage::VT_VALUE, value);
}
explicit ConfigMessageBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
::flatbuffers::Offset<ConfigMessage> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = ::flatbuffers::Offset<ConfigMessage>(end);
return o;
}
};
inline ::flatbuffers::Offset<ConfigMessage> CreateConfigMessage(
::flatbuffers::FlatBufferBuilder &_fbb,
::flatbuffers::Offset<::flatbuffers::String> key = 0,
Messaging::EntryType type = Messaging::EntryType_NONE,
Messaging::NvsValue value_type = Messaging::NvsValue_NONE,
::flatbuffers::Offset<void> value = 0) {
ConfigMessageBuilder builder_(_fbb);
builder_.add_value(value);
builder_.add_key(key);
builder_.add_value_type(value_type);
builder_.add_type(type);
return builder_.Finish();
}
inline ::flatbuffers::Offset<ConfigMessage> CreateConfigMessageDirect(
::flatbuffers::FlatBufferBuilder &_fbb,
const char *key = nullptr,
Messaging::EntryType type = Messaging::EntryType_NONE,
Messaging::NvsValue value_type = Messaging::NvsValue_NONE,
::flatbuffers::Offset<void> value = 0) {
auto key__ = key ? _fbb.CreateString(key) : 0;
return Messaging::CreateConfigMessage(
_fbb,
key__,
type,
value_type,
value);
}
inline bool VerifyNvsValue(::flatbuffers::Verifier &verifier, const void *obj, NvsValue type) {
switch (type) {
case NvsValue_NONE: {
return true;
}
case NvsValue_I32Value: {
auto ptr = reinterpret_cast<const Messaging::I32Value *>(obj);
return verifier.VerifyTable(ptr);
}
case NvsValue_U32Value: {
auto ptr = reinterpret_cast<const Messaging::U32Value *>(obj);
return verifier.VerifyTable(ptr);
}
case NvsValue_I64Value: {
auto ptr = reinterpret_cast<const Messaging::I64Value *>(obj);
return verifier.VerifyTable(ptr);
}
case NvsValue_U64Value: {
auto ptr = reinterpret_cast<const Messaging::U64Value *>(obj);
return verifier.VerifyTable(ptr);
}
case NvsValue_StringValue: {
auto ptr = reinterpret_cast<const Messaging::StringValue *>(obj);
return verifier.VerifyTable(ptr);
}
case NvsValue_BlobValue: {
auto ptr = reinterpret_cast<const Messaging::BlobValue *>(obj);
return verifier.VerifyTable(ptr);
}
default: return true;
}
}
inline bool VerifyNvsValueVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset<void>> *values, const ::flatbuffers::Vector<uint8_t> *types) {
if (!values || !types) return !values && !types;
if (values->size() != types->size()) return false;
for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
if (!VerifyNvsValue(
verifier, values->Get(i), types->GetEnum<NvsValue>(i))) {
return false;
}
}
return true;
}
inline const Messaging::ConfigMessage *GetConfigMessage(const void *buf) {
return ::flatbuffers::GetRoot<Messaging::ConfigMessage>(buf);
}
inline const Messaging::ConfigMessage *GetSizePrefixedConfigMessage(const void *buf) {
return ::flatbuffers::GetSizePrefixedRoot<Messaging::ConfigMessage>(buf);
}
inline bool VerifyConfigMessageBuffer(
::flatbuffers::Verifier &verifier) {
return verifier.VerifyBuffer<Messaging::ConfigMessage>(nullptr);
}
inline bool VerifySizePrefixedConfigMessageBuffer(
::flatbuffers::Verifier &verifier) {
return verifier.VerifySizePrefixedBuffer<Messaging::ConfigMessage>(nullptr);
}
inline void FinishConfigMessageBuffer(
::flatbuffers::FlatBufferBuilder &fbb,
::flatbuffers::Offset<Messaging::ConfigMessage> root) {
fbb.Finish(root);
}
inline void FinishSizePrefixedConfigMessageBuffer(
::flatbuffers::FlatBufferBuilder &fbb,
::flatbuffers::Offset<Messaging::ConfigMessage> root) {
fbb.FinishSizePrefixed(root);
}
} // namespace Messaging
#endif // FLATBUFFERS_GENERATED_CONFIGMESSAGE_MESSAGING_H_

View File

@@ -5,6 +5,7 @@
#include "freertos/queue.h"
CommunicationRouter::~CommunicationRouter() {
vTaskDelete(m_router_thread);
vQueueDelete(m_tcp_rx_queue);
}
@@ -19,3 +20,7 @@ CommunicationRouter::~CommunicationRouter() {
std::cout << "callback" << std::endl;
}
}
int CommunicationRouter::send_msg(char* buffer, const size_t length) const {
return this->m_tcp_server->send_msg(buffer, length);
}

View File

@@ -4,21 +4,31 @@
#include "MessagingInterface.h"
#include <ConfigManager.h>
#include <freertos/queue.h>
#include <freertos/semphr.h>
#include "MPIMessageBuilder.h"
MessagingInterface::~MessagingInterface() {
vQueueDelete(m_mpi_rx_queue);
vSemaphoreDelete(m_map_semaphore);
for (const auto [_tag, queue] : m_tag_to_queue) {
vQueueDelete(queue);
}
}
int MessagingInterface::send(char* buffer, int size, int destination, int tag, bool durable) {
Flatbuffers::MPIMessageBuilder builder;
const auto [mpi_buffer, mpi_size] = builder.build_mpi_message(Messaging::MessageType_PTP, ConfigManager::get_module_id(), destination, sequence_number++, durable, tag, std::vector<uint8_t>(buffer, buffer + size));
m_router->send_msg(static_cast<char *>(mpi_buffer), mpi_size);
return 0;
}
int MessagingInterface::broadcast(char* buffer, int size, int root, bool durable) {
// todo: impl
return 0;
}

View File

@@ -9,6 +9,7 @@
#include "lwip/sockets.h"
#include "lwip/sys.h"
#include <lwip/netdb.h>
#include <iostream>
#include "TCPServer.h"
@@ -20,13 +21,12 @@
// - authenticate (don't just return true from the auth function)
// - tx from board
TCPServer::TCPServer(const int port, QueueHandle_t rx_queue) {
TCPServer::TCPServer(const int port, const QueueHandle_t rx_queue) {
this->m_port = port;
this->m_mutex = xSemaphoreCreateMutex();
this->m_clients = std::unordered_set<int>();
this->m_task = nullptr;
this->m_rx_task = nullptr;
this->m_tx_task = nullptr;
this->m_rx_queue = rx_queue;
this->m_server_sock = 0;
@@ -37,7 +37,6 @@ TCPServer::TCPServer(const int port, QueueHandle_t rx_queue) {
TCPServer::~TCPServer() {
vTaskDelete(this->m_task);
vTaskDelete(this->m_rx_task);
vTaskDelete(this->m_tx_task);
vSemaphoreDelete(this->m_mutex);
}
@@ -149,6 +148,7 @@ TCPServer::~TCPServer() {
if (len < 0) {
printf("Error occurred during receiving: errno %d\n", errno);
to_remove.emplace_back(sock);
} else if (0 == len) {
printf("Connection closed\n");
close(sock);
@@ -198,3 +198,19 @@ bool TCPServer::authenticate_client(int sock) {
// todo: authentication (wait for a passphrase from the client)
return 0;
}
int TCPServer::send_msg(char *buffer, size_t length) const {
// todo: should we assign a unique rank to each pc?
if (!is_network_connected()) {
return -1;
}
for (const auto client_sock : m_clients) {
std::cout << "sending tcp" << std::endl;
send(client_sock, buffer, length, 0);
}
return 0;
}

View File

@@ -28,6 +28,8 @@ public:
[[noreturn]] static void router_thread(void *args);
int send_msg(char* buffer, size_t length) const;
// todo: does this really need to be here (so i can access from thread)?
QueueHandle_t m_tcp_rx_queue;
std::function<void(char*, int)> m_rx_callback;

View File

@@ -16,6 +16,7 @@ class TCPServer : IRPCServer {
public:
TCPServer(int port, QueueHandle_t rx_queue);
~TCPServer();
int send_msg(char* buffer, size_t length) const;
private:
bool authenticate_client(int client_sock);
@@ -29,7 +30,6 @@ private:
TaskHandle_t m_task;
TaskHandle_t m_rx_task;
TaskHandle_t m_tx_task;
QueueHandle_t m_rx_queue;

View File

@@ -10,7 +10,7 @@
#include "esp_log.h"
void LoopManager::control_loop() {
[[noreturn]] void LoopManager::control_loop() {
const auto messaging_interface = std::make_unique<MessagingInterface>();
char buffer[512];
@@ -18,9 +18,12 @@ void LoopManager::control_loop() {
messaging_interface->recv(buffer, 512, 0, 1);
std::cout << buffer << std::endl;
char s[21] = {'H', 'e', 'l', 'l', 'o', ' ', 'f', 'r', 'o', 'm', ' ', 't', 'h', 'e', ' ', 'B', 'O', 'A', 'R', 'D', '!' };
messaging_interface->send(s, 21, 1, 2, true);
ESP_LOGI("MEM", "Free internal RAM: %d", heap_caps_get_free_size(MALLOC_CAP_8BIT));
ESP_LOGI("MEM", "Free PSRAM: %d", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
}
}

View File

@@ -7,7 +7,7 @@
class LoopManager {
public:
static void control_loop();
[[noreturn]] static void control_loop();
private:

139
sdkconfig
View File

@@ -95,6 +95,7 @@ CONFIG_SOC_APB_BACKUP_DMA=y
CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y
CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y
CONFIG_SOC_CACHE_ACS_INVALID_STATE_ON_PANIC=y
CONFIG_SOC_CPU_CORES_NUM=2
CONFIG_SOC_CPU_INTR_NUM=32
CONFIG_SOC_CPU_HAS_FPU=y
@@ -146,8 +147,10 @@ CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y
CONFIG_SOC_I2S_SUPPORTS_PCM=y
CONFIG_SOC_I2S_SUPPORTS_PDM=y
CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2
CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y
CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y
CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y
CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2
CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4
CONFIG_SOC_I2S_SUPPORTS_TDM=y
CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y
@@ -169,6 +172,8 @@ CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3
CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y
CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1
CONFIG_SOC_MMU_PERIPH_NUM=1
CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
CONFIG_SOC_PCNT_GROUPS=1
CONFIG_SOC_PCNT_UNITS_PER_GROUP=4
CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2
@@ -229,7 +234,7 @@ CONFIG_SOC_SPI_SCT_SUPPORTED=y
CONFIG_SOC_SPI_SCT_REG_NUM=14
CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
CONFIG_SOC_MEMSPI_SRC_FREQ_120M=y
CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y
CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
@@ -258,6 +263,7 @@ CONFIG_SOC_TOUCH_SUPPORT_BENCHMARK=y
CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y
CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y
CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y
CONFIG_SOC_TOUCH_SUPPORT_DENOISE_CHAN=y
CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3
CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y
CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1
@@ -320,6 +326,7 @@ CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y
CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y
CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y
CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y
CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y
CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y
CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y
CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y
@@ -346,7 +353,7 @@ CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
CONFIG_SOC_SPI_MEM_SUPPORT_OPI_MODE=y
CONFIG_SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE=y
CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y
CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y
CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
@@ -432,6 +439,8 @@ CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
#
# Log
#
CONFIG_BOOTLOADER_LOG_VERSION_1=y
CONFIG_BOOTLOADER_LOG_VERSION=1
# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
@@ -469,7 +478,6 @@ CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
CONFIG_BOOTLOADER_WDT_ENABLE=y
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
@@ -513,6 +521,7 @@ CONFIG_ESP_ROM_HAS_HAL_WDT=y
CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y
CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
CONFIG_ESP_ROM_HAS_SPI_FLASH=y
CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y
CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y
CONFIG_ESP_ROM_HAS_NEWLIB=y
CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y
@@ -526,6 +535,7 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y
CONFIG_ESP_ROM_HAS_VERSION=y
CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y
CONFIG_ESP_ROM_CONSOLE_OUTPUT_SECONDARY=y
#
# Boot ROM Behavior
@@ -717,7 +727,8 @@ CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
#
CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set
CONFIG_GPTIMER_OBJ_CACHE_SAFE=y
# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
# end of ESP-Driver:GPTimer Configurations
@@ -763,9 +774,15 @@ CONFIG_MCPWM_OBJ_CACHE_SAFE=y
#
# ESP-Driver:RMT Configurations
#
# CONFIG_RMT_ISR_IRAM_SAFE is not set
CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y
CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y
CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y
# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set
# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set
CONFIG_RMT_OBJ_CACHE_SAFE=y
# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
# CONFIG_RMT_ISR_IRAM_SAFE is not set
# end of ESP-Driver:RMT Configurations
#
@@ -900,7 +917,8 @@ CONFIG_RTC_CLK_CAL_CYCLES=1024
#
# Peripheral Control
#
CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y
CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y
# end of Peripheral Control
#
@@ -919,7 +937,28 @@ CONFIG_XTAL_FREQ_40=y
CONFIG_XTAL_FREQ=40
# end of Main XTAL Config
#
# Power Supplier
#
#
# Brownout Detector
#
CONFIG_ESP_BROWNOUT_DET=y
CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set
CONFIG_ESP_BROWNOUT_DET_LVL=7
CONFIG_ESP_BROWNOUT_USE_INTR=y
# end of Brownout Detector
# end of Power Supplier
CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
CONFIG_ESP_INTR_IN_IRAM=y
# end of Hardware Settings
#
@@ -971,6 +1010,7 @@ CONFIG_ESP_PHY_IRAM_OPT=y
#
# Power Management
#
CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
# CONFIG_PM_ENABLE is not set
CONFIG_PM_SLP_IRAM_OPT=y
CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
@@ -1128,22 +1168,6 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
CONFIG_ESP_DEBUG_OCDAWARE=y
CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
#
# Brownout Detector
#
CONFIG_ESP_BROWNOUT_DET=y
CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set
CONFIG_ESP_BROWNOUT_DET_LVL=7
# end of Brownout Detector
CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y
# end of ESP System Settings
@@ -1159,6 +1183,7 @@ CONFIG_ESP_IPC_ISR_ENABLE=y
#
# ESP Timer (High Resolution Timer)
#
CONFIG_ESP_TIMER_IN_IRAM=y
# CONFIG_ESP_TIMER_PROFILING is not set
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
@@ -1201,10 +1226,12 @@ CONFIG_ESP_WIFI_IRAM_OPT=y
CONFIG_ESP_WIFI_RX_IRAM_OPT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y
CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set
CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
# CONFIG_ESP_WIFI_FTM_ENABLE is not set
@@ -1306,6 +1333,7 @@ CONFIG_FREERTOS_DEBUG_OCDAWARE=y
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
CONFIG_FREERTOS_NUMBER_OF_CORES=2
CONFIG_FREERTOS_IN_IRAM=y
# end of FreeRTOS
#
@@ -1338,6 +1366,9 @@ CONFIG_HEAP_TRACING_OFF=y
#
# Log
#
CONFIG_LOG_VERSION_1=y
# CONFIG_LOG_VERSION_2 is not set
CONFIG_LOG_VERSION=1
#
# Log Level
@@ -1391,7 +1422,6 @@ CONFIG_LOG_IN_IRAM=y
#
CONFIG_LWIP_ENABLE=y
CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
# CONFIG_LWIP_NETIF_API is not set
CONFIG_LWIP_TCPIP_TASK_PRIO=18
# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set
@@ -1539,6 +1569,7 @@ CONFIG_LWIP_DNS_MAX_HOST_IP=1
CONFIG_LWIP_DNS_MAX_SERVERS=3
# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set
# end of DNS
CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
@@ -1559,6 +1590,9 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set
# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set
CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y
# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set
# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
@@ -1627,6 +1661,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y
# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
CONFIG_MBEDTLS_SHA1_C=y
CONFIG_MBEDTLS_SHA512_C=y
# CONFIG_MBEDTLS_SHA3_C is not set
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
@@ -1708,10 +1743,11 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
# CONFIG_MBEDTLS_THREADING_C is not set
CONFIG_MBEDTLS_ERROR_STRINGS=y
CONFIG_MBEDTLS_FS_IO=y
# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set
# end of mbedTLS
#
# Newlib
# LibC
#
CONFIG_LIBC_NEWLIB=y
CONFIG_LIBC_MISC_IN_IRAM=y
@@ -1788,6 +1824,8 @@ CONFIG_SPI_FLASH_HPM_DC_AUTO=y
# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set
CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y
# end of Optional and Experimental Features (READ DOCS FIRST)
# end of Main Flash configuration
@@ -1898,6 +1936,7 @@ CONFIG_MDNS_PREDEF_NETIF_AP=y
# Deprecated options for backward compatibility
# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
# CONFIG_NO_BLOBS is not set
# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
@@ -1905,7 +1944,6 @@ CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
CONFIG_LOG_BOOTLOADER_LEVEL=3
# CONFIG_APP_ROLLBACK_ENABLE is not set
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
# CONFIG_FLASHMODE_QIO is not set
# CONFIG_FLASHMODE_QOUT is not set
@@ -1941,6 +1979,26 @@ CONFIG_ESP32S3_RTC_CLK_SRC_INT_RC=y
# CONFIG_ESP32S3_RTC_CLK_SRC_EXT_OSC is not set
# CONFIG_ESP32S3_RTC_CLK_SRC_INT_8MD256 is not set
CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=1024
CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
CONFIG_BROWNOUT_DET=y
CONFIG_ESP32S3_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_7=y
CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set
CONFIG_BROWNOUT_DET_LVL=7
CONFIG_ESP32S3_BROWNOUT_DET_LVL=7
CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
@@ -1977,24 +2035,6 @@ CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
CONFIG_ESP32S3_DEBUG_OCDAWARE=y
CONFIG_BROWNOUT_DET=y
CONFIG_ESP32S3_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_7=y
CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set
CONFIG_BROWNOUT_DET_LVL=7
CONFIG_ESP32S3_BROWNOUT_DET_LVL=7
CONFIG_IPC_TASK_STACK_SIZE=1280
CONFIG_TIMER_TASK_STACK_SIZE=3584
CONFIG_ESP32_WIFI_ENABLED=y
@@ -2058,11 +2098,22 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_PPP_SUPPORT is not set
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
# CONFIG_NEWLIB_NANO_FORMAT is not set
CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y
CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y
# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
# CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set
# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
# CONFIG_ESP32S3_TIME_SYSCALL_USE_SYSTIMER is not set
# CONFIG_ESP32S3_TIME_SYSCALL_USE_FRC1 is not set
# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
# CONFIG_ESP32S3_TIME_SYSCALL_USE_NONE is not set
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072