From 598f1262d73c006d2bf4e99e2d6986aee2c7eb16 Mon Sep 17 00:00:00 2001 From: Gustice Date: Sun, 9 Nov 2025 19:04:54 +0100 Subject: [PATCH] proj: refinement --- .vscode/cmake-kits.json | 11 +- .vscode/settings.json | 1 - CMakeLists.txt | 11 +- components/spit/src/SPIT_Client.cpp | 24 +- components/spit/tools/spit.lua | 362 +++++++++++++++++++++++ core | 2 +- dependencies.lock | 2 +- doc/Gegengier_Engineering_CatasWatch.dvd | Bin 0 -> 168187 bytes main/watchMain.cpp | 12 +- sdkconfig | 14 +- test/unitOnTarget/CMakeLists.txt | 3 +- test/unitOnTarget/ReadMe.md | 34 +-- test/unitOnTarget/dependencies.lock | 9 +- test/unitOnTarget/main/makefile | 7 + test/unitOnTarget/sdkconfig | 221 +++++++++++--- 15 files changed, 596 insertions(+), 117 deletions(-) create mode 100644 components/spit/tools/spit.lua create mode 100644 doc/Gegengier_Engineering_CatasWatch.dvd create mode 100644 test/unitOnTarget/main/makefile diff --git a/.vscode/cmake-kits.json b/.vscode/cmake-kits.json index a48c891..d1aa225 100644 --- a/.vscode/cmake-kits.json +++ b/.vscode/cmake-kits.json @@ -16,6 +16,15 @@ }, "cmakeSettings": { "TgtEnv": "Host" - } + }, + "isTrusted": true + }, + { + "name": "Esp32 Tests", + "environmentSetupScript": "/home/gustice/esp/v5.4.1/esp-idf/export.sh", + "cmakeSettings": { + "TgtEnv": "Target" + }, + "isTrusted": true } ] \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 5f13472..d1044ae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,7 +19,6 @@ "sonarlint.pathToCompileCommands": "${workspaceFolder}\\build\\compile_commands.json", "idf.port": "/dev/ttyACM0", "cmake.showSystemKits": false, - "cmake.buildDirectory": "${workspaceFolder}/buildHost", "cmake.defaultVariants": { "buildType": { "default": "debug", diff --git a/CMakeLists.txt b/CMakeLists.txt index 78563d7..4d6bc22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,18 +1,17 @@ cmake_minimum_required(VERSION 3.16) -if(CMAKE_BUILD_TYPE) +if(TgtEnv STREQUAL "Host") message("Using Host-Branch") - if(${CMAKE_BUILD_TYPE} STREQUAL "uTest") - # Own Workspace scaffold - add_subdirectory(test/unitOnHost) - endif() + add_subdirectory("test/unitOnHost") +elseif(TgtEnv STREQUAL "Target") + # add_subdirectory("test/unitOnTarget") + add_subdirectory("core/test/unitOnTarget") else() message("Using ESP-Branch") set(EXTRA_COMPONENT_DIRS "core/components" "core/managed_components" ) - include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(X_WatchController_FW) endif() diff --git a/components/spit/src/SPIT_Client.cpp b/components/spit/src/SPIT_Client.cpp index 329237e..bc251b0 100644 --- a/components/spit/src/SPIT_Client.cpp +++ b/components/spit/src/SPIT_Client.cpp @@ -194,7 +194,7 @@ void SPIT_Client::eventServerChanged(SAD_DetectedServer &server) { // m_ServerIP = detected.getIP(); // #if defined(DEBUGOUTPUT) -// printf("MySPITApp: connect to %s ", detected.getIP().data()); +// ESP_LOGD(TAG, "MySPITApp: connect to %s ", detected.getIP().data()); // #endif // // Use the m_BoardNumber as login name // string stringLoginName = ""; @@ -573,7 +573,7 @@ void SPIT_Client::parseDisconnect(SPIT_Message::Disconnect &p_Disconnect) { * @param p_Watchdog */ void SPIT_Client::parseWatchdog(SPIT_Message::Watchdog &p_Watchdog) { - // printf("parse Watchdog \n"); + // ESP_LOGD(TAG, "parse Watchdog "); SPIT_Message::WatchdogAnswer o_WatchdogAnswer; sendSPITMessage(o_WatchdogAnswer); } @@ -604,7 +604,7 @@ void SPIT_Client::eventWatchdogLost() { //----- SPIT Project ------ void SPIT_Client::parseReportSPITProject(SPIT_Message::ReportSPITProject &p_ReportSPITProject) { - // printf("parse ReportSPITProject \n"); + ESP_LOGD(TAG, "parse ReportSPITProject"); m_ServerProjectID = p_ReportSPITProject.getProjectID(); m_ServerProjectName = p_ReportSPITProject.getProjectName(); m_ServerFramesPerSecond = p_ReportSPITProject.getFramesPerSecond(); @@ -617,7 +617,7 @@ void SPIT_Client::parseReportSPITProject(SPIT_Message::ReportSPITProject &p_Repo // Send RequestProjectTransfer SPIT_Message::RequestProjectTransfer sMRequestProjectTransfer; if (sendSPITMessage(sMRequestProjectTransfer) < 0) { - ESP_LOGD(TAG, "SPIT_Client::parseReportSPITProject could not send RequestProjectTransfer\n"); + ESP_LOGD(TAG, "SPIT_Client::parseReportSPITProject could not send RequestProjectTransfer"); } // todo Don't send the ReportSPITProject here it should be sended after parseEndProjectTransfer @@ -629,7 +629,7 @@ void SPIT_Client::parseReportSPITProject(SPIT_Message::ReportSPITProject &p_Repo } } void SPIT_Client::parseCloseSPITProject(SPIT_Message::CloseSPITProject &p_CloseSPITProject) { - // printf("parse CloseSPITProject \n"); + ESP_LOGD(TAG, "parse CloseSPITProject"); string stringProjectID; mCallbacks.onProjectUpdate(ProjUpdate::ServerClosed, p_CloseSPITProject.getProjectID()); SPITPlayer::clearPlayers(); @@ -640,7 +640,7 @@ string SPIT_Client::getServerProjectName() { return m_ServerProjectName; } int SPIT_Client::getServerFramesPerSecond() { return m_ServerFramesPerSecond; } void SPIT_Client::parseRequestProjectTransfer(SPIT_Message::RequestProjectTransfer &p_RequestProjectTransfer) { - // printf("parse RequestProjectTransfer \n"); + ESP_LOGD(TAG, "parse RequestProjectTransfer"); // StartProjectTransfer SPIT_Message::StartProjectTransfer sMStartProjectTransfer; if (sendSPITMessage(sMStartProjectTransfer) < 0) { @@ -674,7 +674,7 @@ void SPIT_Client::parseRequestProjectTransfer(SPIT_Message::RequestProjectTransf /* NEW IMPLEMENTATION void SPIT_Client::parseRequestProjectTransfer(SPIT_Message::RequestProjectTransfer* p_RequestProjectTransfer) { -// printf("parse RequestProjectTransfer \n"); +// ESP_LOGD(TAG, "parse RequestProjectTransfer"); thread* o_ThreadSend; o_ThreadSend = new thread(&this->sendProject, this); // int intResult; @@ -814,7 +814,7 @@ void SPIT_Client::parseEndProjectTransfer(SPIT_Message::EndProjectTransfer &p_En //----- SPIT Types ------ void SPIT_Client::parseReportSPITType(SPIT_Message::ReportSPITType &p_ReportSPITType) { - // printf("parse ReportSPITType ID %s Name %s \n",p_ReportSPITType.getID(), p_ReportSPITType.getName()); + ESP_LOGD(TAG, "parse ReportSPITType ID %s Name %s",p_ReportSPITType.getID().c_str(), p_ReportSPITType.getName().c_str()); SPITType *ptrSPITType; bool boolNew = false; bool boolChanged = false; @@ -864,7 +864,7 @@ void SPIT_Client::parseReportSPITType(SPIT_Message::ReportSPITType &p_ReportSPIT } } void SPIT_Client::parseRemoveSPITType(SPIT_Message::RemoveSPITType &p_RemoveSPITType) { - // printf("parse RemoveSPITType %s\n", p_RemoveSPITType.getID()); + ESP_LOGD(TAG, "parse RemoveSPITType %s", p_RemoveSPITType.getID().c_str()); bool boolRemote = false; string stringSPITTypeID = p_RemoveSPITType.getID(); @@ -989,14 +989,14 @@ SPITType *SPIT_Client::createSPITType(string p_ID, string p_GroupName, string p_ //----- SPIT Objects ------ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject &p_ReportSPITObject) { - ESP_LOGD(TAG, "parse ReportSPITObject %s\n", p_ReportSPITObject.getID().c_str()); + ESP_LOGD(TAG, "parse ReportSPITObject %s", p_ReportSPITObject.getID().c_str()); SPITObject *ptrSPITObject; SPITType *ptrSPITType; bool boolNew = false; bool boolRemote = false; bool boolChanged = false; { - ESP_LOGD(TAG, "parseReportSPITObject %s / %s", p_ReportSPITObject.getID().c_str(), p_ReportSPITObject.getName().c_str()); + ESP_LOGD(TAG, "parse ReportSPITObject %s / %s", p_ReportSPITObject.getID().c_str(), p_ReportSPITObject.getName().c_str()); if (p_ReportSPITObject.getServerRemote() == false) { boolRemote = false; ptrSPITObject = mSpitObjects.getEntry(p_ReportSPITObject.getID()); @@ -1069,7 +1069,7 @@ void SPIT_Client::parseReportSPITObject(SPIT_Message::ReportSPITObject &p_Report } } void SPIT_Client::parseRemoveSPITObject(SPIT_Message::RemoveSPITObject &p_RemoveSPITObject) { - // printf("parse RemoveSPITObject %s\n", p_RemoveSPITObject.getID()); + ESP_LOGD(TAG, "parse RemoveSPITObject %s", p_RemoveSPITObject.getID().c_str()); SPITObject *ptrSPITObject = mRemoteSpitObjects.getEntry(p_RemoveSPITObject.getID()); if (ptrSPITObject != nullptr) { SPITType *ptrSPITType = mRemoteSpitTypes.getEntry(ptrSPITObject->getSPITTypeID()); diff --git a/components/spit/tools/spit.lua b/components/spit/tools/spit.lua new file mode 100644 index 0000000..0c1636a --- /dev/null +++ b/components/spit/tools/spit.lua @@ -0,0 +1,362 @@ +-- LiveShowSoftware SPIT-Protocol +spit_proto = Proto("spit", "LiveShowSoftware SPIT") +spit_sad_proto = Proto("spit_sad", "LiveShowSoftware SPIT SAD") + +-- Define fields (add more as needed) +local f_hVer = ProtoField.uint32("spit.version", "Version") +local f_hNum = ProtoField.uint8("spit.msgCount", "MsgCount") +local f_hLen = ProtoField.uint32("spit.len", "Length") +local f_hSerId = ProtoField.string("spit.serverId", "ServerID") +local f_hCliId = ProtoField.string("spit.clientId", "ClientID") +local f_hType = ProtoField.uint8("spit.msgType", "MsgType") +local f_pLen = ProtoField.uint32("spit.paylen", "Length") + +local f_pSession = ProtoField.string("spit.key", "Spit Session") +local f_pKey = ProtoField.string("spit.key", "Spit Key") +local f_pSadKey = ProtoField.string("spit.sadKey", "Spit SAD Key") +local f_pServerDevName = ProtoField.string("spit.serverDevName", "Server Device Name") + +local f_pClientDevName = ProtoField.string("spit.clientDevName", "Client Device Name") +local f_pClientName = ProtoField.string("spit.clientName", "Client Name") +local f_pLoginName = ProtoField.string("spit.loginName", "Login Name") +local f_pLoginPassword = ProtoField.string("spit.loginPassword", "Login Password") +local f_pServerName = ProtoField.string("spit.serverName", "Server Name") +local f_pServerIp = ProtoField.string("spit.serverIp", "Server IP") +local f_pServerPort = ProtoField.uint16("spit.serverIp", "Server Port") +local f_pSrvParam = ProtoField.string("spit.serverParam", "Server Paramter") +local f_pStepTime = ProtoField.string("spit.stepTime", "Step Time") +local f_pConnected = ProtoField.string("spit.connected", "Connected") +local f_pProjectId = ProtoField.string("spit.projectId", "Project ID") +local f_pProjectName = ProtoField.string("spit.projectName", "Project Name") + +local f_pObjectId = ProtoField.string("spit.ObjectId", "Object ID") +local f_pObjectName = ProtoField.string("spit.ObjectName", "Object Name") +local f_pTypeId = ProtoField.string("spit.TypeId", "Type ID") +local f_pTypeName = ProtoField.string("spit.TypeName", "Type Name") +local f_pTypeGroupName = ProtoField.string("spit.TypeGroupName", "Type Group Name") +local f_pObjectsFrames = ProtoField.uint64("spit.ObjectFrames", "Object Frames") +local f_pValue = ProtoField.uint64("spit.Value", "Value") +local f_pValueFlag = ProtoField.uint8("spit.ValueFlag", "ValueFlag") + +local f_pConfirm = ProtoField.uint8("spit.confirmed", "Confirmation") +local f_pFixed = ProtoField.uint8("spit.fixed", "Fixed") +local f_pAssigned = ProtoField.uint8("spit.assigned", "Action assigned") +local f_pSrvRemote = ProtoField.uint8("spit.serverRemote", "Server Remote") +local f_pProjIndep = ProtoField.uint8("spit.projectIndipendent", "Project Indipendent") +local f_pValueUse = ProtoField.uint8("spit.valueUse", "Value Use") + +local f_pFrameStart = ProtoField.uint64("spit.frameStart", "Frame Start") +local f_pFrameLength = ProtoField.uint64("spit.frameLength", "Frame Length") +local f_pFrameFadeIn = ProtoField.uint64("spit.fadeInLength", "Fade In Length") +local f_pFrameFadeOut = ProtoField.uint64("spit.fadeOutLength", "Fade Out Length") +local f_pValueFactor = ProtoField.uint32("spit.valueFactor", "Value Factor") +local f_pFramesPerSec = ProtoField.uint32("spit.framesPerSec", "Frames per second") +local f_pTrack = ProtoField.uint32("spit.track", "Track") +local f_pRemark = ProtoField.string("spit.remark", "Remack") +local f_pDelay = ProtoField.uint64("spit.delay", "Delay") +local f_pDuration = ProtoField.uint64("spit.duration", "Duration") + +local f_pPlayerId = ProtoField.string("spit.PlayerId", "Player ID") +local f_pPlayerName = ProtoField.string("spit.PlayerName", "Player Name") +local f_pPlayerType = ProtoField.uint8("spit.PlayerType", "Player Type") +local f_pPlayerRunning = ProtoField.uint8("spit.PlayerRunning", "Player Running") +local f_pPlayerFrames = ProtoField.uint64("spit.PlayerFrame", "Player Frames") +local f_pPlayerPrePos = ProtoField.uint8("spit.PlayerPrePos", "Player Preposition") + +local sessionInfos = {} + +spit_proto.fields = { + f_pSession, f_pKey, f_pSadKey, f_pServerDevName, + f_hVer, f_hNum, f_hLen, f_hSerId, f_hCliId, f_hType, f_pLen, + f_pClientDevName, f_pClientName, f_pLoginName, f_pLoginPassword, f_pServerName, f_pServerIp, f_pServerPort, f_pSrvParam, f_pStepTime, f_pConnected, f_pProjectId, f_pProjectName, + f_pObjectId, f_pObjectName, f_pTypeId, f_pTypeName, f_pTypeGroupName, f_pObjectsFrames, f_pValue, f_pValueFlag, + f_pConfirm, f_pFixed, f_pAssigned, f_pSrvRemote, f_pProjIndep, f_pValueUse, + f_pFrameStart, f_pFrameLength, f_pFrameFadeIn, f_pFrameFadeOut, f_pValueFactor, f_pFramesPerSec, f_pTrack, f_pRemark, f_pDelay, f_pDuration, + f_pPlayerId, f_pPlayerName, f_pPlayerType, f_pPlayerRunning, f_pPlayerFrames, f_pPlayerPrePos + } + +function extractSession(buffer, pinfo) + local serverHash = buffer(16,41):string() + local clientHash = buffer(57,41):string() + return string.format("%s - %s", sessionInfos[serverHash], sessionInfos[clientHash]) +end + +function extractVersionString(buffer) + local vBytes = buffer(7,4):bytes() + local vStr = "" + for i = 0, 3 do + local byte = vBytes:get_index(i) + local high_nibble = bit.rshift(byte, 4) + local low_nibble = bit.band(byte, 0x0F) + vStr = vStr .. tostring(high_nibble) .. tostring(low_nibble) + end + return vStr + +end + +-- Heuristic dissector function +function spit_proto.dissector(buffer, pinfo, tree) + if buffer:len() < 6 then return false end + if buffer(0,6):string() ~= "#spit#" then return false end + + pinfo.cols.protocol = "SPIT" + local subtree = tree:add(spit_proto, buffer(), "SPIT Protocol Data") + + local hTree = subtree:add("Header") + hTree:add(f_hVer, buffer(7,4)):set_text("Version: " .. extractVersionString(buffer)) + hTree:add(f_hNum, buffer(11,1)) + local hLen = buffer(12,4):le_uint() + subtree:add(f_hLen, buffer(12,4)):set_text("Length: " .. hLen) + hTree:add(f_hSerId, buffer(16,41)) + hTree:add(f_hCliId, buffer(57,41)) + + local type = buffer(98,1):uint() + hTree:add(f_hType, buffer(98,1)) + + local pTree = subtree:add("Payload") + local pLen = buffer(99,4):le_uint() + pTree:add(f_pLen, buffer(99,4)):set_text("Pyload Length: " .. pLen) + + local info_text = "Type: " .. type + if type == 1 then -- Connect + pTree:add(f_pClientDevName, buffer(103,64)) + pTree:add(f_pClientName, buffer(167,64)) + pTree:add(f_pLoginName, buffer(231,64)) + pTree:add(f_pLoginPassword, buffer(295,64)) + pTree:add(f_pServerIp, buffer(359,40)) + pTree:add(f_pServerPort, buffer(399,2)) + + local clientName = buffer(167,64):string() + local clientHash = buffer(57,41):string() + sessionInfos[clientName] = clientHash -- e.g. 70866c9b-af1c-4765-a17e-8b45c93f3aca + sessionInfos[clientHash] = clientName -- + sessionInfos[tostring(pinfo.src)] = clientName + + info_text = string.format("Connect Req | Client: %s (%s) | ADDR: %s:%s", + clientName, clientHash, buffer(359,40):string(), buffer(399,2):uint()) + + elseif type == 2 then -- Connect Response + pTree:add(f_pServerDevName, buffer(103,64)) + pTree:add(f_pServerName, buffer(167,64)) + pTree:add(f_pStepTime, buffer(231,4)) + pTree:add(f_pConnected, buffer(235,1)) + + local serverName = buffer(167,64):string() + local serverHash = buffer(16,41):string() + sessionInfos[serverName] = serverHash -- e.g. 405c7100-64e8-435d-8a7b-00c5629f9ccf + sessionInfos[serverHash] = serverName + sessionInfos[tostring(pinfo.src)] = serverName + + info_text = string.format("Connect Res | Server: %s (%s) ", + serverName, serverHash) + + elseif type == 3 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + info_text = string.format("Disconnect") + + elseif type == 8 then + info_text = string.format("Watchdog") + + elseif type == 9 then + info_text = string.format("Watchdog Ans") + + elseif type == 11 then -- Report Porject + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pProjectId, buffer(103,41)) + pTree:add(f_pProjectName, buffer(144,64)) + pTree:add(f_pFramesPerSec, buffer(208,4)) + info_text = string.format("%s -> %s | Report Project | Project: %s / %s", + sessionInfos[tostring(pinfo.src)], sessionInfos[tostring(pinfo.dst)], buffer(103,41):string(), buffer(144,64):string()) + + elseif type == 13 then -- Close Porject + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pProjectId, buffer(103,41)) + info_text = string.format("Close Project | Project: %s", + buffer(103,64):string()) + + elseif type == 15 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + info_text = string.format("Request Project Transfer") + + elseif type == 16 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + info_text = string.format("Start Project Transfer") + + elseif type == 17 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + info_text = string.format("End Project Transfer") + + elseif type == 21 then -- Report Type + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pConfirm, buffer(103,1)) + pTree:add(f_pTypeId, buffer(104,41)) + pTree:add(f_pFixed, buffer(145,1)) + pTree:add(f_pSrvRemote, buffer(146,1)) + pTree:add(f_pProjIndep, buffer(147,1)) + pTree:add(f_pTypeGroupName, buffer(148,39)) + pTree:add(f_pTypeName, buffer(187,64)) + pTree:add(f_pDelay, buffer(251,8)) + pTree:add(f_pDuration, buffer(259,8)) + + local group = buffer(148,39):string() + local name = buffer(187,64):string() + local id = buffer(104,41):string() + info_text = string.format("%s -> %s | Report SPIT Type: %s.%s (%s)", sessionInfos[tostring(pinfo.src)], sessionInfos[tostring(pinfo.dst)], group, name, id) + + elseif type == 23 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pTypeId, buffer(103,41)) + info_text = string.format("Remove SPIT Type") + + elseif type == 31 then -- Report Object + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pConfirm, buffer(103,1)) + pTree:add(f_pObjectId, buffer(104,41)) + pTree:add(f_pFixed, buffer(145,1)) + pTree:add(f_pSrvRemote, buffer(146,1)) + pTree:add(f_pObjectName, buffer(147,64)) + pTree:add(f_pTypeId, buffer(211,41)) + pTree:add(f_pSrvParam, buffer(252,64)) + pTree:add(f_pFrameStart, buffer(316,8)) + pTree:add(f_pFrameLength, buffer(324,8)) + pTree:add(f_pFrameFadeIn, buffer(332,8)) + pTree:add(f_pFrameFadeOut, buffer(340,8)) + local valueFactor = buffer(348,4):le_uint() + pTree:add(f_pValueFactor, buffer(348,4)):set_text("Value Factor" .. valueFactor) + pTree:add(f_pValueUse, buffer(349,1)) + pTree:add(f_pTrack, buffer(350,4)) + pTree:add(f_pRemark, buffer(354,64)) + pTree:add(f_pDelay, buffer(418,8)) + pTree:add(f_pDuration, buffer(426,8)) + pTree:add(f_pAssigned, buffer(435,1)) + + local name = buffer(147,64):string() + local tId = buffer(211,41):string() + local oId = buffer(104,41):string() + info_text = string.format("%s -> %s | Report SPIT Object: %s (%s / %s)", sessionInfos[tostring(pinfo.src)], sessionInfos[tostring(pinfo.dst)], name, oId, tId) + + elseif type == 33 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pObjectId, buffer(103,41)) + info_text = string.format("Remove SPIT Object") + + elseif type == 37 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pPlayerId, buffer(103,41)) + pTree:add(f_pPlayerName, buffer(144,64)) + pTree:add(f_pPlayerType, buffer(208,1)) + pTree:add(f_pPlayerRunning, buffer(209,1)) + pTree:add(f_pPlayerFrames, buffer(210,8)) + info_text = string.format("Play SPIT Start") + + elseif type == 38 then -- Play Spit object + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pPlayerId, buffer(103,41)) + pTree:add(f_pObjectId, buffer(144,41)) + pTree:add(f_pObjectsFrames, buffer(185,8)) + pTree:add(f_pPlayerPrePos, buffer(193,1)) + pTree:add(f_pValue, buffer(194,4)) + pTree:add(f_pValueFlag, buffer(198,1)) + + local oId = buffer(144,41):string() + info_text = string.format("%s -> %s | Play SPIT Object: %s", sessionInfos[tostring(pinfo.src)], sessionInfos[tostring(pinfo.dst)], oId) + + elseif type == 39 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pPlayerId, buffer(103,41)) + info_text = string.format("Play SPIT End") + + elseif type == 40 then + pTree:add(f_pSession, extractSession(buffer, pinfo)) + + pTree:add(f_pObjectId, buffer(103,41)) + pTree:add(f_pObjectsFrames, buffer(144,8)) + pTree:add(f_pValue, buffer(152,4)) + info_text = string.format("Report Play Status") + + else + info_text = string.format("ERROR Unknown") + end + + pinfo.cols['info'] = info_text + return true -- We handled this packet +end + +function split(str, delim) + local result = {} + local delim_len = delim + local s = 1 + while true do + local e, next_e = string.find(str, delim, s) + if not e then + table.insert(result, string.sub(str, s)) + break + end + table.insert(result, string.sub(str, s, e - 1)) + s = next_e + 1 + end + return result +end + +-- Heuristic dissector function +function spit_sad_proto.dissector(buffer, pinfo, tree) + if buffer:len() < 14 then return false end + if buffer(0,14):string() ~= "#SAD##,##spit#" then return false end + + pinfo.cols.protocol = "SPIT-SAD" + + local info_text = "SAD" + if buffer:len() > 16 then + local payload = buffer(0,buffer:len()):string() + local parts = split(payload, "#,#") + + local subtree = tree:add(spit_sad_proto, buffer(), "Discovery Data") + subtree:add(f_pSadKey, parts[1]) -- 1 #SAD# + subtree:add(f_pKey, parts[2]) -- 2 #spit# + subtree:add(f_pServerName, parts[3]) -- 3 liveShowSPIT + subtree:add(f_hSerId , parts[4]) -- 4 405c7100-64e8-435d-8a7b-00c5629f9ccf + subtree:add(f_pServerDevName, parts[5]) -- 5 P17gen1 + subtree:add(f_pServerPort, parts[6]) -- 6 15120 + subtree:add(f_pServerIp, parts[7]) -- 7 172.16.17.56 + subtree:add(f_pProjectName, parts[9]) -- 9 CatasWatchProject + + info_text = string.format("SPIT-SAD Discover Data | Client: %s Porject: %s ", + parts[4], parts[9]) + else + info_text = string.format("SPIT-SAD Discover") + end + + pinfo.cols['info'] = info_text + return true -- We handled this packet +end + +-- Register as a heuristic UDP dissector +spit_proto:register_heuristic("udp", spit_proto.dissector) + +spit_sad_proto:register_heuristic("udp", spit_sad_proto.dissector) + + +-- local f_pFramesPerSec = ProtoField.uint32("spit.framesPerSec", "Frames per second") +-- local f_pTrack = ProtoField.uint32("spit.track", "Track") +-- local f_pObjectsFrames = ProtoField.uint64("spit.ObjectFrames", "Object Frames") +-- local f_pValue = ProtoField.uint64("spit.Value", "Value") +-- local f_pFrameStart = ProtoField.uint64("spit.frameStart", "Frame Start") +-- local f_pFrameLength = ProtoField.uint64("spit.frameLength", "Frame Length") +-- local f_pFrameFadeIn = ProtoField.uint64("spit.fadeInLength", "Fade In Length") +-- local f_pFrameFadeOut = ProtoField.uint64("spit.fadeOutLength", "Fade Out Length") +-- local f_pDelay = ProtoField.uint64("spit.delay", "Delay") +-- local f_pDuration = ProtoField.uint64("spit.duration", "Duration") +-- local f_pPlayerFrames = ProtoField.uint64("spit.PlayerFrame", "Player Frames") diff --git a/core b/core index 8d7dda8..02db420 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 8d7dda8fd84a0d9cb4fc26047ad1ab43d1e26205 +Subproject commit 02db420163fd6bc8e7eec5b6fff957b01b0db476 diff --git a/dependencies.lock b/dependencies.lock index ee8d95c..9fb4267 100644 --- a/dependencies.lock +++ b/dependencies.lock @@ -2,7 +2,7 @@ dependencies: ethernet_init: dependencies: [] source: - path: /home/gustice/tools/esp/v5.4.1/esp-idf/examples/ethernet/basic/components/ethernet_init + path: /home/gustice/esp/v5.4.1/esp-idf/examples/ethernet/basic/components/ethernet_init type: local version: '*' idf: diff --git a/doc/Gegengier_Engineering_CatasWatch.dvd b/doc/Gegengier_Engineering_CatasWatch.dvd new file mode 100644 index 0000000000000000000000000000000000000000..34476a7807df0012d7e46b8df0511901d83588e2 GIT binary patch literal 168187 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 literal 0 HcmV?d00001 diff --git a/main/watchMain.cpp b/main/watchMain.cpp index d08abf0..815e588 100644 --- a/main/watchMain.cpp +++ b/main/watchMain.cpp @@ -486,9 +486,9 @@ namespace Effect { void LightingTask() { ESP_LOGI(TAG, "Start Lighting"); - static I2cMaster master(I2C_NUM_0, - /*sda=*/GPIO_NUM_10, - /*scl=*/GPIO_NUM_11); + static I2cMaster master(I2C_NUM_0, + { /*sda=*/GPIO_NUM_10, /*scl=*/GPIO_NUM_11} + ); // static PmwExpanderPca9685 pca9685(master); static PmwExpanderPca9685 ledDriver1(master, /*iverted=*/false); static PmwExpanderPca9685 ledDriver2(master, /*iverted=*/false, 0x41); @@ -563,8 +563,8 @@ void LightingTask() { sp[3] = (uint16_t)(col.getRed()) << 7; } - ledDriver1.sendImage(values[0]); - ledDriver2.sendImage(values[1]); + ledDriver1.send(values[0]); + ledDriver2.send(values[1]); fos::Task::delayMs(40); } } @@ -954,6 +954,8 @@ void app_main(void) { fos::Task::delayMs(10000); ESP_LOGI(TAG, "Start net services"); + // esp_log_level_set("SPIT", esp_log_level_t::ESP_LOG_DEBUG); + static int ipVersion = AF_INET; static fos::TaskT telnetSocket(telnetSocketTask, ipVersion, "tcpServer", 4096); static fos::TaskT dmxNode(dmxSocketTask, ipVersion, "dmxNode", 4096); diff --git a/sdkconfig b/sdkconfig index ecec5db..3fb6282 100644 --- a/sdkconfig +++ b/sdkconfig @@ -401,7 +401,7 @@ CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_RISCV=y CONFIG_IDF_TARGET_ARCH="riscv" CONFIG_IDF_TARGET="esp32c6" -CONFIG_IDF_INIT_VERSION="5.3.0" +CONFIG_IDF_INIT_VERSION="5.4.1" CONFIG_IDF_TARGET_ESP32C6=y CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D @@ -595,6 +595,12 @@ CONFIG_ENV_GPIO_RANGE_MIN=0 CONFIG_ENV_GPIO_RANGE_MAX=30 CONFIG_ENV_GPIO_IN_RANGE_MAX=30 CONFIG_ENV_GPIO_OUT_RANGE_MAX=30 +# CONFIG_USE_SPI_ETHERNET is not set +# end of Example Ethernet Configuration + +# +# Example Ethernet Configuration +# CONFIG_EXAMPLE_USE_SPI_ETHERNET=y CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1 # CONFIG_EXAMPLE_USE_DM9051 is not set @@ -1495,10 +1501,10 @@ CONFIG_LOG_DEFAULT_LEVEL_INFO=y # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set CONFIG_LOG_DEFAULT_LEVEL=3 -CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT is not set +CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 +CONFIG_LOG_MAXIMUM_LEVEL=4 # # Level Settings diff --git a/test/unitOnTarget/CMakeLists.txt b/test/unitOnTarget/CMakeLists.txt index 0f78a91..7452576 100644 --- a/test/unitOnTarget/CMakeLists.txt +++ b/test/unitOnTarget/CMakeLists.txt @@ -5,7 +5,8 @@ cmake_minimum_required(VERSION 3.16) # set(EXTRA_COMPONENT_DIRS "../../components" - # "../../managed_components" + "../../core/components" + "../../core/managed_components" ) # Set the components to include the tests for. diff --git a/test/unitOnTarget/ReadMe.md b/test/unitOnTarget/ReadMe.md index 82a7efe..efdc98c 100644 --- a/test/unitOnTarget/ReadMe.md +++ b/test/unitOnTarget/ReadMe.md @@ -1,35 +1,3 @@ # Unit Testing -Unit Test based on unity-library [Unity](https://github.com/ThrowTheSwitch/Unity). - -* _Assertions_ (`TEST_ASSERT` and similar) are used when writing the test cases. See [the reference](https://github.com/ThrowTheSwitch/Unity/blob/master/docs/UnityAssertionsReference.md) for more information about assertions. - -* `UNITY_BEGIN()` and `UNITY_END()` macros allow Unity to count the number of tests which have passed or failed, and display the summary. - -In addition to features of Unity, _test registration_ feature of ESP-IDF is used. This feature works when unit test functions are declared using `TEST_CASE` macro. Such functions from all the object files in the program are automatically collected into a list, and run-time facilities are provided to run functions from this list. - -Note testable components have a *test* subdirectory which is included in the *test project* -When the main application project is compiled, tests are not included. -Test project includes the tests by setting `TEST_COMPONENTS` variable in the project makefile. - -## Build and flash production code - -* Start an ESP-IDF-Terminal -* Run `idf.py -p PORT flash monitor` in the current directory (`unit_test`). -* Observe the output: a list of random numbers and their mean value. -To exit the serial monitor, type ``Ctrl-]``. - -## Build and flash test code - -* Start an ESP-IDF-Terminal -* Enter `test` directory (`unit_test/test`), and run `idf.py -p PORT flash monitor`. -To exit the serial monitor, type ``Ctrl-]``. -* Observe the output: results of test case execution. - -This is the test menu, which is launched by `unity_run_menu` function in the test project. It allows running the tests in a few ways: -* Run specific test by its index: type the number and press ENTER. -* Run a group of tests with a certain tag: type the tag, including square brackets, and press ENTER. -* nRu all tests except the ones with a certain tag: press `!`, then type the tag, including the square brackets, then press ENTER. -* Run test with a specific name: type the name of the test, including quotes, and press ENTER. -* Run all the tests: press `*` and then ENTER. - +see Redme in `Project/core/test/unitOnTarget/ReadMe.md` \ No newline at end of file diff --git a/test/unitOnTarget/dependencies.lock b/test/unitOnTarget/dependencies.lock index 68be0f1..e9e979e 100644 --- a/test/unitOnTarget/dependencies.lock +++ b/test/unitOnTarget/dependencies.lock @@ -1,9 +1,10 @@ dependencies: idf: - component_hash: null source: type: idf - version: 5.3.0 -manifest_hash: c4f4ec05313d427eb56c633f78ce213e553379725bf2af3c511665f930571beb + version: 5.4.1 +direct_dependencies: +- idf +manifest_hash: 00d8efc8e59d9f2cc6a576ada310175e19e6f7506dd0b59211849f065dadccae target: esp32c6 -version: 1.0.0 +version: 2.0.0 diff --git a/test/unitOnTarget/main/makefile b/test/unitOnTarget/main/makefile new file mode 100644 index 0000000..e099bd1 --- /dev/null +++ b/test/unitOnTarget/main/makefile @@ -0,0 +1,7 @@ +# Run Exportport Script first + +build: + idf.py build + +run: + idf.py -p /dev/ttyUSB0 flash monitor \ No newline at end of file diff --git a/test/unitOnTarget/sdkconfig b/test/unitOnTarget/sdkconfig index 4d49c82..07196fc 100644 --- a/test/unitOnTarget/sdkconfig +++ b/test/unitOnTarget/sdkconfig @@ -1,6 +1,6 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.3.0 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.4.1 Project Configuration # CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y @@ -104,6 +104,7 @@ CONFIG_SOC_CPU_WATCHPOINTS_NUM=4 CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000 CONFIG_SOC_CPU_HAS_PMA=y CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y +CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=4 CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072 CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 @@ -114,6 +115,7 @@ CONFIG_SOC_GDMA_SUPPORT_ETM=y CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_ETM_GROUPS=1 CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50 +CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_GPIO_PORT=1 CONFIG_SOC_GPIO_PIN_COUNT=31 CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y @@ -128,6 +130,7 @@ CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0 CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8 CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00 CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y @@ -136,7 +139,6 @@ CONFIG_SOC_RTCIO_PIN_COUNT=8 CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_RTCIO_VALID_RTCIO_MASK=0xFF CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y @@ -154,10 +156,12 @@ CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y +CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_LP_I2C_NUM=1 CONFIG_SOC_LP_I2C_FIFO_LEN=16 CONFIG_SOC_I2S_NUM=1 CONFIG_SOC_I2S_HW_VERSION_2=y +CONFIG_SOC_I2S_SUPPORTS_ETM=y CONFIG_SOC_I2S_SUPPORTS_XTAL=y CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y CONFIG_SOC_I2S_SUPPORTS_PCM=y @@ -165,15 +169,19 @@ 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_TDM=y +CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y +CONFIG_SOC_LEDC_TIMER_NUM=4 CONFIG_SOC_LEDC_CHANNEL_NUM=6 CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16 CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10 +CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y +CONFIG_SOC_MMU_PAGE_SIZE_8KB_SUPPORTED=y CONFIG_SOC_MMU_PERIPH_NUM=1 CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 CONFIG_SOC_MMU_DI_VADDR_SHARED=y @@ -184,6 +192,7 @@ CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y +CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_RMT_GROUPS=1 CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2 CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2 @@ -198,6 +207,7 @@ CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y CONFIG_SOC_RMT_SUPPORT_XTAL=y CONFIG_SOC_RMT_SUPPORT_RC_FAST=y +CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_MCPWM_GROUPS=1 CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 @@ -211,12 +221,14 @@ CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y CONFIG_SOC_MCPWM_SUPPORT_ETM=y CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y +CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_PARLIO_GROUPS=1 CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1 CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1 CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16 CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16 CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y +CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 CONFIG_SOC_MPI_OPERATIONS_NUM=3 CONFIG_SOC_RSA_MAX_BIT_LEN=3072 @@ -239,6 +251,7 @@ CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y CONFIG_SOC_SPI_SUPPORT_CD_SIG=y CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y +CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y @@ -278,11 +291,13 @@ CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2 CONFIG_SOC_TIMER_SUPPORT_ETM=y CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_MWDT_SUPPORT_XTAL=y +CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_TWAI_CONTROLLER_NUM=2 CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y CONFIG_SOC_TWAI_BRP_MIN=2 CONFIG_SOC_TWAI_BRP_MAX=32768 CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y +CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y CONFIG_SOC_EFUSE_DIS_USB_JTAG=y @@ -298,6 +313,8 @@ CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y +CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y +CONFIG_SOC_APM_LP_APM0_SUPPORTED=y CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y CONFIG_SOC_UART_NUM=3 CONFIG_SOC_UART_HP_NUM=2 @@ -310,6 +327,7 @@ CONFIG_SOC_UART_SUPPORT_RTC_CLK=y CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y CONFIG_SOC_UART_HAS_LP_UART=y +CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y CONFIG_SOC_COEX_HW_PTI=y CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y @@ -335,7 +353,12 @@ CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y +CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y CONFIG_SOC_PM_PAU_LINK_NUM=4 +CONFIG_SOC_PM_PAU_REGDMA_LINK_MULTI_ADDR=y +CONFIG_SOC_PM_PAU_REGDMA_LINK_WIFIMAC=y +CONFIG_SOC_PM_PAU_REGDMA_UPDATE_CACHE_BEFORE_WAIT_COMPARE=y +CONFIG_SOC_PM_RETENTION_MODULE_NUM=32 CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y @@ -346,6 +369,8 @@ CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y CONFIG_SOC_WIFI_HW_TSF=y CONFIG_SOC_WIFI_FTM_SUPPORT=y @@ -354,6 +379,7 @@ CONFIG_SOC_WIFI_WAPI_SUPPORT=y CONFIG_SOC_WIFI_CSI_SUPPORT=y CONFIG_SOC_WIFI_MESH_SUPPORT=y CONFIG_SOC_WIFI_HE_SUPPORT=y +CONFIG_SOC_WIFI_MAC_VERSION_NUM=2 CONFIG_SOC_BLE_SUPPORTED=y CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y @@ -367,8 +393,11 @@ CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y CONFIG_SOC_PHY_COMBO_MODULE=y CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y +CONFIG_SOC_LP_CORE_SUPPORT_ETM=y +CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_RISCV=y CONFIG_IDF_TARGET_ARCH="riscv" CONFIG_IDF_TARGET="esp32c6" @@ -403,6 +432,10 @@ CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set + +# +# Log +# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -411,6 +444,14 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format +# end of Log + # # Serial Flash Configurations # @@ -480,6 +521,7 @@ CONFIG_ESP_ROM_HAS_SW_FLOAT=y CONFIG_ESP_ROM_USB_OTG_NUM=-1 CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y # # Boot ROM Behavior @@ -503,7 +545,6 @@ CONFIG_ESPTOOLPY_FLASHMODE="dio" CONFIG_ESPTOOLPY_FLASHFREQ_80M=y # CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y @@ -530,6 +571,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 CONFIG_PARTITION_TABLE_SINGLE_APP=y # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set # CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set # CONFIG_PARTITION_TABLE_CUSTOM is not set CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" @@ -537,6 +579,16 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table +# +# Example Ethernet Configuration +# +CONFIG_ENV_GPIO_RANGE_MIN=0 +CONFIG_ENV_GPIO_RANGE_MAX=30 +CONFIG_ENV_GPIO_IN_RANGE_MAX=30 +CONFIG_ENV_GPIO_OUT_RANGE_MAX=30 +# CONFIG_USE_SPI_ETHERNET is not set +# end of Example Ethernet Configuration + # # Compiler options # @@ -547,6 +599,7 @@ CONFIG_COMPILER_OPTIMIZATION_DEBUG=y CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y # CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB is not set CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB=y CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 @@ -559,15 +612,19 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set # CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set # CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set # CONFIG_COMPILER_DUMP_RTL_FILES is not set CONFIG_COMPILER_RT_LIB_GCCLIB=y CONFIG_COMPILER_RT_LIB_NAME="gcc" # CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y +# CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options # @@ -613,6 +670,7 @@ CONFIG_BT_ALARM_MAX_NUM=50 # Legacy ADC Driver Configuration # # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set # # Legacy ADC Calibration Configuration @@ -625,42 +683,49 @@ CONFIG_BT_ALARM_MAX_NUM=50 # Legacy MCPWM Driver Configurations # # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy MCPWM Driver Configurations # # Legacy Timer Group Driver Configurations # # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Timer Group Driver Configurations # # Legacy RMT Driver Configurations # # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy RMT Driver Configurations # # Legacy I2S Driver Configurations # # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy I2S Driver Configurations # # Legacy PCNT Driver Configurations # # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy PCNT Driver Configurations # # Legacy SDM Driver Configurations # # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy SDM Driver Configurations # # Legacy Temperature Sensor Driver Configurations # # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set # end of Legacy Temperature Sensor Driver Configurations # end of Driver Configurations @@ -700,6 +765,7 @@ CONFIG_ESP_COEX_ENABLED=y CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y # CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set # CONFIG_ESP_COEX_POWER_MANAGEMENT is not set +# CONFIG_ESP_COEX_GPIO_DEBUG is not set # end of Wireless Coexistence # @@ -728,6 +794,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # # CONFIG_I2C_ISR_IRAM_SAFE is not set # CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set # end of ESP-Driver:I2C Configurations # @@ -838,6 +905,13 @@ CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y CONFIG_ESP_GDBSTUB_MAX_TASKS=32 # end of GDB Stub +# +# ESP HID +# +CONFIG_ESPHID_TASK_SIZE_BT=2048 +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + # # ESP HTTP client # @@ -845,6 +919,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client # @@ -857,6 +932,7 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # CONFIG_HTTPD_LOG_PURGE_DATA is not set # CONFIG_HTTPD_WS_SUPPORT is not set # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 # end of HTTP Server # @@ -864,12 +940,14 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA # # ESP HTTPS server # # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS server # @@ -889,6 +967,12 @@ CONFIG_ESP_REV_MIN_FULL=0 # CONFIG_ESP32C6_REV_MAX_FULL=99 CONFIG_ESP_REV_MAX_FULL=99 +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 + +# +# Maximum Supported ESP32-C6 eFuse Block Revision (eFuse Block Rev v0.99) +# # end of Chip revision # @@ -926,7 +1010,7 @@ CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y CONFIG_RTC_CLK_SRC_INT_RC=y # CONFIG_RTC_CLK_SRC_EXT_CRYS is not set # CONFIG_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_RTC_CLK_SRC_INT_RC32K is not set +# CONFIG_RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED is not set CONFIG_RTC_CLK_CAL_CYCLES=1024 # end of RTC Clock Config @@ -957,44 +1041,33 @@ CONFIG_XTAL_FREQ_40=y CONFIG_XTAL_FREQ=40 # end of Main XTAL Config -# -# Crypto DPA Protection -# -CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y -CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y -# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set -# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set -CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 -# end of Crypto DPA Protection - CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y # end of Hardware Settings # -# LCD and Touch Panel -# - -# -# LCD Touch Drivers are maintained in the IDF Component Registry -# - -# -# LCD Peripheral Configuration +# ESP-Driver:LCD Controller Configurations # # CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel +# end of ESP-Driver:LCD Controller Configurations + +# +# ESP-MM: Memory Management Configurations +# +# end of ESP-MM: Memory Management Configurations # # ESP NETIF Adapter # CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y # CONFIG_ESP_NETIF_LOOPBACK is not set CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set # CONFIG_ESP_NETIF_L2_TAP is not set # CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set # end of ESP NETIF Adapter # @@ -1011,17 +1084,20 @@ CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 CONFIG_ESP_PHY_MAX_TX_POWER=20 # CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_NONE is not set # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY # # Power Management # # CONFIG_PM_ENABLE is not set +# CONFIG_PM_SLP_IRAM_OPT is not set CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y # CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set @@ -1037,6 +1113,21 @@ CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set # end of ESP Ringbuf +# +# ESP Security Specific +# + +# +# Crypto DPA Protection +# +CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 +# end of Crypto DPA Protection +# end of ESP Security Specific + # # ESP System Settings # @@ -1058,6 +1149,7 @@ CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y # Memory protection # CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y +# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set # end of Memory protection CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 @@ -1083,6 +1175,7 @@ CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 # CONFIG_ESP_TASK_WDT_EN is not set # CONFIG_ESP_PANIC_HANDLER_IRAM is not set # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +# CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set CONFIG_ESP_DEBUG_OCDAWARE=y CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y @@ -1237,6 +1330,9 @@ CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y # CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 # CONFIG_FATFS_IMMEDIATE_FSYNC is not set # CONFIG_FATFS_USE_LABEL is not set @@ -1263,6 +1359,7 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 # CONFIG_FREERTOS_USE_TICK_HOOK is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" # CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y @@ -1297,6 +1394,11 @@ CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set # end of Port +# +# Extra +# +# end of Extra + CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1353,7 +1455,11 @@ CONFIG_IEEE802154_PENDING_TABLE_SIZE=20 # end of IEEE 802.15.4 # -# Log output +# Log +# + +# +# Log Level # # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set @@ -1366,11 +1472,29 @@ CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# # CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# CONFIG_LOG_COLORS=y CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output +# end of Format +# end of Log # # LWIP @@ -1409,6 +1533,8 @@ CONFIG_LWIP_ESP_MLDV6_REPORT=y CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set @@ -1423,6 +1549,7 @@ CONFIG_LWIP_DHCPS=y CONFIG_LWIP_DHCPS_LEASE_UNIT=60 CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server # CONFIG_LWIP_AUTOIP is not set @@ -1480,9 +1607,12 @@ CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_LWIP_PPP_SUPPORT is not set CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +# CONFIG_LWIP_PPP_SUPPORT is not set # CONFIG_LWIP_SLIP_SUPPORT is not set # @@ -1512,8 +1642,10 @@ CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 # # DNS # +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 # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1537,6 +1669,8 @@ CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y 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 +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y # CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set # CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set @@ -1601,6 +1735,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y CONFIG_MBEDTLS_SHA512_C=y +# CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set @@ -1654,6 +1789,8 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y # end of Certificates CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y # CONFIG_MBEDTLS_DHM_C is not set CONFIG_MBEDTLS_ECDH_C=y CONFIG_MBEDTLS_ECDSA_C=y @@ -1677,6 +1814,7 @@ CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y # CONFIG_MBEDTLS_HKDF_C is not set # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y # end of mbedTLS # @@ -1725,25 +1863,10 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y # CONFIG_OPENTHREAD_ENABLED is not set # -# Thread Operational Dataset +# OpenThread Spinel # -CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" -CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" -CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 -CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 -CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" -CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" -CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" -# end of Thread Operational Dataset - -CONFIG_OPENTHREAD_XTAL_ACCURACY=130 # CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE is not set - -# -# Thread Address Query Config -# -# end of Thread Address Query Config +# end of OpenThread Spinel # end of OpenThread # @@ -1752,6 +1875,7 @@ CONFIG_OPENTHREAD_XTAL_ACCURACY=130 CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y # end of Protocomm # @@ -1790,7 +1914,9 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y # # Features here require specific hardware (READ DOCS FIRST!) # +# 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 # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -1916,6 +2042,8 @@ CONFIG_VFS_MAX_COUNT=8 # CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y # end of Virtual file system # @@ -1931,7 +2059,6 @@ CONFIG_WL_SECTOR_SIZE=4096 # CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set # end of Wi-Fi Provisioning Manager @@ -2085,8 +2212,6 @@ CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_NVS_ENABLED=y CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752