mirror of
https://github.com/thelsing/knx.git
synced 2024-12-18 19:08:18 +01:00
first real working version of knxPython
This commit is contained in:
parent
405aab0e5e
commit
c44d22f6eb
@ -70,7 +70,7 @@ void setup()
|
||||
knx.readMemory();
|
||||
|
||||
// register callback for reset GO
|
||||
goReset.updateHandler = resetCallback;
|
||||
goReset.callback(resetCallback);
|
||||
|
||||
// print values of parameters if device is already configured
|
||||
if (knx.configured())
|
||||
|
@ -8,4 +8,4 @@ add_subdirectory(pybind11)
|
||||
|
||||
pybind11_add_module(knx ../src/knx/address_table_object.cpp ../src/knx/apdu.cpp ../src/knx/application_layer.cpp ../src/knx/application_program_object.cpp ../src/knx/association_table_object.cpp ../src/knx/bau.cpp ../src/knx/bau07B0.cpp ../src/knx/bau57B0.cpp ../src/knx/bau_systemB.cpp ../src/knx/bits.cpp ../src/knx/cemi_frame.cpp ../src/knx/datapoint_types.cpp ../src/knx/data_link_layer.cpp ../src/knx/device_object.cpp ../src/knx/group_object.cpp ../src/knx/group_object_table_object.cpp ../src/knx/interface_object.cpp ../src/knx/ip_data_link_layer.cpp ../src/knx/ip_parameter_object.cpp ../src/knx/memory.cpp ../src/knx/network_layer.cpp ../src/knx/npdu.cpp ../src/knx/platform.cpp ../src/knx/table_object.cpp ../src/knx/tpdu.cpp ../src/knx/tpuart_data_link_layer.cpp ../src/knx/transport_layer.cpp ../src/linux_platform.cpp knxmodule.cpp)
|
||||
|
||||
include_directories(../src)
|
||||
include_directories(../src pybind11/include)
|
||||
|
@ -4,8 +4,8 @@
|
||||
cmake_minimum_required(VERSION 2.7)
|
||||
project(knx)
|
||||
|
||||
set(LIBRARIES_FROM_REFERENCES "")
|
||||
add_library(knx SHARED ../src/knx/address_table_object.cpp ../src/knx/apdu.cpp ../src/knx/application_layer.cpp ../src/knx/application_program_object.cpp ../src/knx/association_table_object.cpp ../src/knx/bau.cpp ../src/knx/bau07B0.cpp ../src/knx/bau57B0.cpp ../src/knx/bau_systemB.cpp ../src/knx/bits.cpp ../src/knx/cemi_frame.cpp ../src/knx/datapoint_types.cpp ../src/knx/data_link_layer.cpp ../src/knx/device_object.cpp ../src/knx/group_object.cpp ../src/knx/group_object_table_object.cpp ../src/knx/interface_object.cpp ../src/knx/ip_data_link_layer.cpp ../src/knx/ip_parameter_object.cpp ../src/knx/memory.cpp ../src/knx/network_layer.cpp ../src/knx/npdu.cpp ../src/knx/table_object.cpp ../src/knx/tpdu.cpp ../src/knx/tpuart_data_link_layer.cpp ../src/knx/transport_layer.cpp ../src/linux_platform.cpp knxmodule.cpp)
|
||||
target_link_libraries(knx python3.5m "${LIBRARIES_FROM_REFERENCES}")
|
||||
include_directories(/usr/include/python3.5m ../src)
|
||||
SET_TARGET_PROPERTIES(knx PROPERTIES PREFIX "")
|
||||
add_subdirectory(pybind11)
|
||||
|
||||
pybind11_add_module(knx ../src/knx/address_table_object.cpp ../src/knx/apdu.cpp ../src/knx/application_layer.cpp ../src/knx/application_program_object.cpp ../src/knx/association_table_object.cpp ../src/knx/bau.cpp ../src/knx/bau07B0.cpp ../src/knx/bau57B0.cpp ../src/knx/bau_systemB.cpp ../src/knx/bits.cpp ../src/knx/cemi_frame.cpp ../src/knx/datapoint_types.cpp ../src/knx/data_link_layer.cpp ../src/knx/device_object.cpp ../src/knx/group_object.cpp ../src/knx/group_object_table_object.cpp ../src/knx/interface_object.cpp ../src/knx/ip_data_link_layer.cpp ../src/knx/ip_parameter_object.cpp ../src/knx/memory.cpp ../src/knx/network_layer.cpp ../src/knx/npdu.cpp ../src/knx/platform.cpp ../src/knx/table_object.cpp ../src/knx/tpdu.cpp ../src/knx/tpuart_data_link_layer.cpp ../src/knx/transport_layer.cpp ../src/linux_platform.cpp knxmodule.cpp)
|
||||
|
||||
include_directories(../src)
|
@ -44,7 +44,7 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<NMakeIncludeSearchPath>$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\python3.5dm;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\python3.5;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\c++\6;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\x86_64-linux-gnu\c++\6;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\c++\6\backward;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\6\include;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\local\include;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\6\include-fixed;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\x86_64-linux-gnu;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include;..\..\src;..\pybind11\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
|
||||
<NMakeIncludeSearchPath>$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\python3.5dm;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\python3.5;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\c++\6;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\x86_64-linux-gnu\c++\6;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\c++\6\backward;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\6\include;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\local\include;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\lib\gcc\x86_64-linux-gnu\6\include-fixed;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include\x86_64-linux-gnu;$(LOCALAPPDATA)\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\usr\include;..\..\src;..\pybind11\include;pybind11\include;..\src;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
|
||||
<NMakeForcedIncludes>$(ProjectDir)\gcc_Debug.h;$(VISUALGDB_DIR)\gcc_compat.h;$(NMakeForcedIncludes)</NMakeForcedIncludes>
|
||||
<NMakeBuildCommandLine>"$(VISUALGDB_DIR)\VisualGDB.exe" /build "$(ProjectPath)" "/solution:$(SolutionPath)" "/config:$(Configuration)" "/platform:$(Platform)"</NMakeBuildCommandLine>
|
||||
<NMakeCleanCommandLine>"$(VISUALGDB_DIR)\VisualGDB.exe" /clean "$(ProjectPath)" "/solution:$(SolutionPath)" "/config:$(Configuration)" "/platform:$(Platform)"</NMakeCleanCommandLine>
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl_bind.h>
|
||||
#include <pybind11/functional.h>
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
@ -15,96 +16,14 @@ namespace py = pybind11;
|
||||
#include "knx/bau57B0.h"
|
||||
#include "knx/group_object_table_object.h"
|
||||
|
||||
|
||||
LinuxPlatform platform;
|
||||
Bau57B0 bau(platform);
|
||||
|
||||
#if 1 // this code will go to python later
|
||||
//float currentValue = 0;
|
||||
//float maxValue = 0;
|
||||
//float minValue = RAND_MAX;
|
||||
//long lastsend = 0;
|
||||
//
|
||||
//GroupObject groupObjects[]
|
||||
//{
|
||||
// GroupObject(2),
|
||||
// GroupObject(2),
|
||||
// GroupObject(2),
|
||||
// GroupObject(1)
|
||||
//}
|
||||
//;
|
||||
//#define CURR groupObjects[0]
|
||||
//#define MAX groupObjects[1]
|
||||
//#define MIN groupObjects[2]
|
||||
//#define RESET groupObjects[3]
|
||||
//
|
||||
//void measureTemp()
|
||||
//{
|
||||
// long now = platform.millis();
|
||||
// if ((now - lastsend) < 2000)
|
||||
// return;
|
||||
//
|
||||
// lastsend = now;
|
||||
// int r = rand();
|
||||
// currentValue = (r * 1.0) / (RAND_MAX * 1.0);
|
||||
// currentValue *= 100 * 100;
|
||||
//
|
||||
// CURR.objectWrite(currentValue);
|
||||
//
|
||||
// if (currentValue > maxValue)
|
||||
// {
|
||||
// maxValue = currentValue;
|
||||
// MAX.objectWrite(maxValue);
|
||||
// }
|
||||
//
|
||||
// if (currentValue < minValue)
|
||||
// {
|
||||
// minValue = currentValue;
|
||||
// MIN.objectWrite(minValue);
|
||||
// }
|
||||
//}
|
||||
|
||||
//void resetCallback(GroupObject& go)
|
||||
//{
|
||||
// if (go.objectReadBool())
|
||||
// {
|
||||
// maxValue = 0;
|
||||
// minValue = 10000;
|
||||
// }
|
||||
//}
|
||||
|
||||
//void appLoop()
|
||||
//{
|
||||
// if (!bau.configured())
|
||||
// return;
|
||||
//
|
||||
// measureTemp();
|
||||
//}
|
||||
|
||||
void setup()
|
||||
{
|
||||
srand((unsigned int)time(NULL));
|
||||
bau.readMemory();
|
||||
|
||||
// GroupObjectTableObject& got(bau.groupObjectTable());
|
||||
// got.groupObjects(groupObjects, 4);
|
||||
|
||||
DeviceObject& devObj(bau.deviceObject());
|
||||
devObj.manufacturerId(0xfa);
|
||||
|
||||
// RESET.updateHandler = resetCallback;
|
||||
|
||||
bau.enabled(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool threadEnabled = false;
|
||||
static void loop()
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
bau.loop();
|
||||
//appLoop();
|
||||
platform.mdelay(100);
|
||||
}
|
||||
}
|
||||
@ -117,7 +36,10 @@ static void Start()
|
||||
if (started)
|
||||
return;
|
||||
|
||||
setup();
|
||||
started = true;
|
||||
|
||||
bau.readMemory();
|
||||
bau.enabled(true);
|
||||
|
||||
workerThread = std::thread(loop);
|
||||
workerThread.detach();
|
||||
@ -142,17 +64,32 @@ static void RegisterGroupObjects(std::vector<GroupObject>& gos)
|
||||
|
||||
PYBIND11_MAKE_OPAQUE(std::vector<GroupObject>);
|
||||
|
||||
PYBIND11_MODULE(knx, m) {
|
||||
PYBIND11_MODULE(knx, m)
|
||||
{
|
||||
m.doc() = "wrapper for knx device lib"; // optional module docstring
|
||||
|
||||
py::bind_vector<std::vector<GroupObject>>(m, "GroupObjectList");
|
||||
|
||||
m.def("Start", &Start, "Start knx handling thread.");
|
||||
m.def("ProgramMode", (bool (*)())&ProgramMode, "get programing mode active.");
|
||||
m.def("ProgramMode", (bool(*)())&ProgramMode, "get programing mode active.");
|
||||
m.def("ProgramMode", (bool(*)(bool))&ProgramMode, "Activate / deactivate programing mode.");
|
||||
m.def("RegisterGroupObjects", &RegisterGroupObjects);
|
||||
|
||||
py::class_<GroupObject>(m, "GroupObject")
|
||||
py::class_<GroupObject>(m, "GroupObject", py::dynamic_attr())
|
||||
.def(py::init<uint8_t>())
|
||||
.def("objectWrite", (void(GroupObject::*)(float))&GroupObject::objectWrite);
|
||||
.def("objectWrite", (void(GroupObject::*)(float))&GroupObject::objectWrite)
|
||||
.def("asap", &GroupObject::asap)
|
||||
.def("size", &GroupObject::valueSize)
|
||||
.def_property("value",
|
||||
[](GroupObject& go) { return py::bytes((const char*)go.valueRef(), go.valueSize()); },
|
||||
[](GroupObject& go, py::bytes bytesValue)
|
||||
{
|
||||
const auto value = static_cast<std::string>(bytesValue);
|
||||
if (value.length() != go.valueSize())
|
||||
throw std::length_error("bytesValue");
|
||||
|
||||
auto valueRef = go.valueRef();
|
||||
memcpy(valueRef, value.c_str(), go.valueSize());
|
||||
})
|
||||
.def("callBack", (void(GroupObject::*)(GroupObjectUpdatedHandler))&GroupObject::callback);
|
||||
}
|
@ -2,6 +2,9 @@ import knx
|
||||
import time
|
||||
import sys
|
||||
|
||||
def updated(g1):
|
||||
print(g1.value)
|
||||
|
||||
print("start")
|
||||
gos = knx.GroupObjectList()
|
||||
gos.append(knx.GroupObject(2))
|
||||
@ -9,6 +12,11 @@ gos.append(knx.GroupObject(2))
|
||||
gos.append(knx.GroupObject(2))
|
||||
gos.append(knx.GroupObject(1))
|
||||
curr = gos[0]
|
||||
min = gos[1]
|
||||
max = gos[2]
|
||||
reset = gos[3]
|
||||
reset.callBack(updated)
|
||||
|
||||
knx.RegisterGroupObjects(gos)
|
||||
knx.Start()
|
||||
while True:
|
||||
@ -16,15 +24,11 @@ while True:
|
||||
cmd = sys.stdin.read(1)
|
||||
if cmd == 'q':
|
||||
break
|
||||
elif cmd == 's':
|
||||
print("start knx")
|
||||
name = knx.Start()
|
||||
elif cmd == 'p':
|
||||
currentMode = knx.ProgramMode(not knx.ProgramMode())
|
||||
print("set programming mode to " + str(currentMode))
|
||||
elif cmd == 'w':
|
||||
cmd = sys.stdin.read(4)
|
||||
print(cmd)
|
||||
value = float(cmd)
|
||||
curr.objectWrite(value)
|
||||
print("wrote " + str(value) + " to curr")
|
||||
|
@ -83,8 +83,9 @@ void BauSystemB::updateGroupObject(GroupObject & go, uint8_t * data, uint8_t len
|
||||
memcpy(goData, data, length);
|
||||
|
||||
go.commFlag(cfUpdate);
|
||||
if (go.updateHandler)
|
||||
go.updateHandler(go);
|
||||
GroupObjectUpdatedHandler handler = go.callback();
|
||||
if (handler)
|
||||
handler(go);
|
||||
}
|
||||
|
||||
void BauSystemB::readMemory()
|
||||
|
@ -43,7 +43,7 @@ private:
|
||||
uint8_t _routingCount;
|
||||
uint8_t _prgMode;
|
||||
uint16_t _ownAddress;
|
||||
uint16_t _manufacturerId;
|
||||
uint16_t _manufacturerId = 0xfa; //Default to KNXA
|
||||
uint32_t _bauNumber;
|
||||
char _orderNumber[10];
|
||||
uint8_t _hardwareType[6];
|
||||
|
@ -7,10 +7,11 @@
|
||||
GroupObject::GroupObject(uint8_t size)
|
||||
{
|
||||
_data = new uint8_t[size];
|
||||
memset(_data, 0, size);
|
||||
_commFlag = Ok;
|
||||
_table = 0;
|
||||
_dataLength = size;
|
||||
updateHandler = 0;
|
||||
_updateHandler = 0;
|
||||
}
|
||||
|
||||
GroupObject::GroupObject(const GroupObject& other)
|
||||
@ -20,7 +21,7 @@ GroupObject::GroupObject(const GroupObject& other)
|
||||
_table = other._table;
|
||||
_dataLength = other._dataLength;
|
||||
_asap = other._asap;
|
||||
updateHandler = other.updateHandler;
|
||||
_updateHandler = other._updateHandler;
|
||||
memcpy(_data, other._data, _dataLength);
|
||||
}
|
||||
|
||||
@ -252,3 +253,15 @@ void GroupObject::objectWrite(float value)
|
||||
uint32_t tmp = value * 100;
|
||||
objectWriteFloatDpt9(tmp);
|
||||
}
|
||||
|
||||
|
||||
void GroupObject::callback(GroupObjectUpdatedHandler handler)
|
||||
{
|
||||
_updateHandler = handler;
|
||||
}
|
||||
|
||||
|
||||
GroupObjectUpdatedHandler GroupObject::callback()
|
||||
{
|
||||
return _updateHandler;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <stdint.h>
|
||||
#include "knx_types.h"
|
||||
|
||||
|
||||
class GroupObjectTableObject;
|
||||
|
||||
enum ComFlag
|
||||
@ -17,7 +18,14 @@ enum ComFlag
|
||||
};
|
||||
|
||||
class GroupObject;
|
||||
typedef void (*GroupObjectUpdatedHandler)(GroupObject& go);
|
||||
|
||||
#ifdef __linux__
|
||||
#include <functional>
|
||||
typedef std::function<void(GroupObject&)> GroupObjectUpdatedHandler;
|
||||
#else
|
||||
typedef void(*GroupObjectUpdatedHandler)(GroupObject& go);
|
||||
#endif
|
||||
|
||||
|
||||
class GroupObject
|
||||
{
|
||||
@ -109,8 +117,10 @@ public:
|
||||
size_t sizeInTelegram();
|
||||
uint8_t* valueRef();
|
||||
uint16_t asap();
|
||||
GroupObjectUpdatedHandler updateHandler;
|
||||
void callback(GroupObjectUpdatedHandler hanlder);
|
||||
GroupObjectUpdatedHandler callback();
|
||||
private:
|
||||
GroupObjectUpdatedHandler _updateHandler;
|
||||
size_t goSize();
|
||||
uint16_t _asap;
|
||||
ComFlag _commFlag;
|
||||
|
@ -218,7 +218,7 @@ void LinuxPlatform::doMemoryMapping()
|
||||
_fd = open("flash.bin", O_RDWR | O_CREAT, S_IRWXU | S_IRGRP | S_IROTH);
|
||||
if (_fd < 0)
|
||||
{
|
||||
perror("Error in file opening");
|
||||
puts("Error in file opening");
|
||||
//exit(-1);
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ void LinuxPlatform::doMemoryMapping()
|
||||
uint32_t ret = fstat(_fd, &st);
|
||||
if (ret < 0)
|
||||
{
|
||||
perror("Error in fstat");
|
||||
puts("Error in fstat");
|
||||
//exit(-1);
|
||||
}
|
||||
|
||||
@ -235,7 +235,7 @@ void LinuxPlatform::doMemoryMapping()
|
||||
{
|
||||
if (ftruncate(_fd, FLASHSIZE) != 0)
|
||||
{
|
||||
perror("Error extending file");
|
||||
puts("Error extending file");
|
||||
//exit(-1);
|
||||
}
|
||||
len_file = FLASHSIZE;
|
||||
@ -250,7 +250,7 @@ void LinuxPlatform::doMemoryMapping()
|
||||
|
||||
if (addr == MAP_FAILED)
|
||||
{
|
||||
perror("Error in mmap");
|
||||
puts("Error in mmap");
|
||||
//exit(-1);
|
||||
}
|
||||
_mappedFile = addr;
|
||||
@ -308,9 +308,10 @@ uint8_t* LinuxPlatform::allocMemory(size_t size)
|
||||
throw std::overflow_error("MAX_MEM was to small");
|
||||
return addr;
|
||||
}
|
||||
#endif
|
||||
|
||||
void LinuxPlatform::freeMemory(uint8_t* ptr)
|
||||
{
|
||||
/* do nothing. Memory is freed on restart()*/
|
||||
}
|
||||
#endif
|
||||
|
||||
|
10
src/main.cpp
10
src/main.cpp
@ -75,18 +75,10 @@ void setup()
|
||||
srand((unsigned int)time(NULL));
|
||||
bau.readMemory();
|
||||
|
||||
uint8_t hwType[] = { 0x0, 0x0, 0x8, 0x0, 0x0, 0x2 };
|
||||
GroupObjectTableObject& got(bau.groupObjectTable());
|
||||
got.groupObjects(groupObjects, 4);
|
||||
|
||||
DeviceObject& devObj(bau.deviceObject());
|
||||
devObj.manufacturerId(0xfa);
|
||||
devObj.bauNumber(0xdeadbeef);
|
||||
devObj.orderNumber("Coolstuff");
|
||||
devObj.hardwareType(hwType);
|
||||
devObj.version(0x0020);
|
||||
|
||||
RESET.updateHandler = resetCallback;
|
||||
RESET.callback(resetCallback);
|
||||
|
||||
if (bau.deviceObject().induvidualAddress() == 0)
|
||||
bau.deviceObject().progMode(true);
|
||||
|
@ -171,116 +171,6 @@
|
||||
</CodeAnalyzerSettings>
|
||||
</CodeSense>
|
||||
<Configurations>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>NodeMCU 1 0 (ESP-12E Module)</PlatformName>
|
||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||
<AdditionalStartupCommands>
|
||||
<GDBPreStartupCommands />
|
||||
<GDBStartupCommands />
|
||||
<GDBFinalizationCommands />
|
||||
</AdditionalStartupCommands>
|
||||
<AdditionalGDBSettings>
|
||||
<Features>
|
||||
<DisableAutoDetection>false</DisableAutoDetection>
|
||||
<UseFrameParameter>false</UseFrameParameter>
|
||||
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||
<ListLocalsSupported>false</ListLocalsSupported>
|
||||
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||
<SupportTargetCommand>false</SupportTargetCommand>
|
||||
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||
</Features>
|
||||
<EnableSmartStepping>false</EnableSmartStepping>
|
||||
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||
<UseAppleExtensions>false</UseAppleExtensions>
|
||||
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||
<MakeLogFile>false</MakeLogFile>
|
||||
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||
<ExitAction>None</ExitAction>
|
||||
<DisableDisassembly>false</DisableDisassembly>
|
||||
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||
<StepIntoNewInstanceEntry>main</StepIntoNewInstanceEntry>
|
||||
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||
<DisableSignals>false</DisableSignals>
|
||||
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||
<EnableNonStopMode>false</EnableNonStopMode>
|
||||
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||
</AdditionalGDBSettings>
|
||||
<DebugMethod>
|
||||
<ID>gdbstub</ID>
|
||||
<Configuration xsi:type="com.visualgdb.edp.espxx.settings.gdbstub">
|
||||
<StubBaudRate>74880</StubBaudRate>
|
||||
<BootloaderBaudRate>115200</BootloaderBaudRate>
|
||||
<BootloaderResetDelay>50</BootloaderResetDelay>
|
||||
<BootloaderActivationSequence>!DTR;RTS;SLEEP;DTR;!RTS;SLEEP;!DTR;SLEEP</BootloaderActivationSequence>
|
||||
<ProgramMode>Auto</ProgramMode>
|
||||
<SuppressResetConfirmation>false</SuppressResetConfirmation>
|
||||
<FLASHSettings>
|
||||
<Size>size4M</Size>
|
||||
<Frequency>freq40M</Frequency>
|
||||
<Mode>QIO</Mode>
|
||||
</FLASHSettings>
|
||||
</Configuration>
|
||||
</DebugMethod>
|
||||
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||
<SemihostingSupport>Disabled</SemihostingSupport>
|
||||
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||
<DynamicAnalysisSettings />
|
||||
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||
</DebugSettingsOverride>
|
||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.arduino.extension">
|
||||
<BoardID>esp8266:esp8266:nodemcuv2</BoardID>
|
||||
<COMPort>COM7</COMPort>
|
||||
<Properties>
|
||||
<Entries>
|
||||
<KeyValue>
|
||||
<Key>CpuFrequency</Key>
|
||||
<Value>80</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>VTable</Key>
|
||||
<Value>flash</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>FlashSize</Key>
|
||||
<Value>4M1M</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>LwIPVariant</Key>
|
||||
<Value>v2mss536</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>Debug</Key>
|
||||
<Value>Disabled</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>DebugLevel</Key>
|
||||
<Value>None____</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>FlashErase</Key>
|
||||
<Value>none</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>UploadSpeed</Key>
|
||||
<Value>115200</Value>
|
||||
</KeyValue>
|
||||
</Entries>
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>Arduino Genuino Zero (Native USB Port)</PlatformName>
|
||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||
@ -338,6 +228,100 @@
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>NodeMCU 1 0 (ESP-12E Module)</PlatformName>
|
||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||
<AdditionalStartupCommands />
|
||||
<AdditionalGDBSettings>
|
||||
<Features>
|
||||
<DisableAutoDetection>false</DisableAutoDetection>
|
||||
<UseFrameParameter>false</UseFrameParameter>
|
||||
<SimpleValuesFlagSupported>false</SimpleValuesFlagSupported>
|
||||
<ListLocalsSupported>false</ListLocalsSupported>
|
||||
<ByteLevelMemoryCommandsAvailable>false</ByteLevelMemoryCommandsAvailable>
|
||||
<ThreadInfoSupported>false</ThreadInfoSupported>
|
||||
<PendingBreakpointsSupported>false</PendingBreakpointsSupported>
|
||||
<SupportTargetCommand>false</SupportTargetCommand>
|
||||
<ReliableBreakpointNotifications>false</ReliableBreakpointNotifications>
|
||||
</Features>
|
||||
<EnableSmartStepping>false</EnableSmartStepping>
|
||||
<FilterSpuriousStoppedNotifications>false</FilterSpuriousStoppedNotifications>
|
||||
<ForceSingleThreadedMode>false</ForceSingleThreadedMode>
|
||||
<UseAppleExtensions>false</UseAppleExtensions>
|
||||
<CanAcceptCommandsWhileRunning>false</CanAcceptCommandsWhileRunning>
|
||||
<MakeLogFile>false</MakeLogFile>
|
||||
<IgnoreModuleEventsWhileStepping>true</IgnoreModuleEventsWhileStepping>
|
||||
<UseRelativePathsOnly>false</UseRelativePathsOnly>
|
||||
<ExitAction>None</ExitAction>
|
||||
<DisableDisassembly>false</DisableDisassembly>
|
||||
<ExamineMemoryWithXCommand>false</ExamineMemoryWithXCommand>
|
||||
<StepIntoNewInstanceEntry>main</StepIntoNewInstanceEntry>
|
||||
<ExamineRegistersInRawFormat>true</ExamineRegistersInRawFormat>
|
||||
<DisableSignals>false</DisableSignals>
|
||||
<EnableAsyncExecutionMode>false</EnableAsyncExecutionMode>
|
||||
<EnableNonStopMode>false</EnableNonStopMode>
|
||||
<MaxBreakpointLimit>0</MaxBreakpointLimit>
|
||||
</AdditionalGDBSettings>
|
||||
<DebugMethod />
|
||||
<AutoDetectRTOS>true</AutoDetectRTOS>
|
||||
<SemihostingSupport>Auto</SemihostingSupport>
|
||||
<SemihostingPollingDelay>0</SemihostingPollingDelay>
|
||||
<StepIntoEntryPoint>false</StepIntoEntryPoint>
|
||||
<ReloadFirmwareOnReset>false</ReloadFirmwareOnReset>
|
||||
<ValidateEndOfStackAddress>true</ValidateEndOfStackAddress>
|
||||
<StopAtEntryPoint>false</StopAtEntryPoint>
|
||||
<EnableVirtualHalts>false</EnableVirtualHalts>
|
||||
<DynamicAnalysisSettings />
|
||||
<EndOfStackSymbol>_estack</EndOfStackSymbol>
|
||||
<TimestampProviderTicksPerSecond>0</TimestampProviderTicksPerSecond>
|
||||
<KeepConsoleAfterExit>false</KeepConsoleAfterExit>
|
||||
<CheckInterfaceDrivers>true</CheckInterfaceDrivers>
|
||||
</DebugSettingsOverride>
|
||||
<BuildSettingsExtension xsi:type="com.visualgdb.build.external.arduino.extension">
|
||||
<BoardID>esp8266:esp8266:nodemcuv2</BoardID>
|
||||
<Properties>
|
||||
<Entries>
|
||||
<KeyValue>
|
||||
<Key>xtal</Key>
|
||||
<Value>80</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>vt</Key>
|
||||
<Value>flash</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>exception</Key>
|
||||
<Value>enabled</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>eesz</Key>
|
||||
<Value>4M</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>ip</Key>
|
||||
<Value>lm2f</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>dbg</Key>
|
||||
<Value>Disabled</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>lvl</Key>
|
||||
<Value>None____</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>wipe</Key>
|
||||
<Value>none</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>baud</Key>
|
||||
<Value>115200</Value>
|
||||
</KeyValue>
|
||||
</Entries>
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
</Configurations>
|
||||
<ProgramArgumentsSuggestions />
|
||||
</VisualGDBProjectSettings2>
|
@ -105,36 +105,36 @@ Global
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Arduino Genuino Zero (Native USB Port).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|NodeMCU 1 0 (ESP-12E Module).Build.0 = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x64.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x86.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x64.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x86.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|NodeMCU 1 0 (ESP-12E Module).Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x64.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x64.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x86.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x86.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|VisualGDB.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x64.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x86.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|x86.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|NodeMCU 1 0 (ESP-12E Module).Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|VisualGDB.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x64.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x86.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|x86.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino Genuino Zero (Native USB Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino Genuino Zero (Native USB Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|NodeMCU 1 0 (ESP-12E Module).Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x64.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x64.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|VisualGDB.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x64.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x64.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|x86.Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{527A0D25-BC8E-47B8-AA56-BD991BE6CC67}.Debug|Arduino Genuino Zero (Native USB Port).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{527A0D25-BC8E-47B8-AA56-BD991BE6CC67}.Debug|Arduino Genuino Zero (Native USB Port).Build.0 = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{527A0D25-BC8E-47B8-AA56-BD991BE6CC67}.Debug|NodeMCU 1 0 (ESP-12E Module).ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
|
Loading…
Reference in New Issue
Block a user