mirror of
https://github.com/thelsing/knx.git
synced 2025-08-13 13:46:20 +02:00
commit
36c2cc2e29
@ -42,9 +42,10 @@ bool trigger = false;
|
||||
// Entry point for the example
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(115200);
|
||||
SerialDBG.begin(115200);
|
||||
ArduinoPlatform::SerialDebug = SerialDBG;
|
||||
delay(5000);
|
||||
Serial.println("start");
|
||||
SerialDBG.println("start");
|
||||
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
WiFiManager wifiManager;
|
||||
@ -91,18 +92,18 @@ void setup(void)
|
||||
if (knx.configured())
|
||||
{
|
||||
cyclSend = knx.paramInt(0);
|
||||
Serial.print("Zykl. send:");
|
||||
Serial.println(cyclSend);
|
||||
goRawTemperature.dataPointType(Dpt(9, 0));
|
||||
goPressure.dataPointType(Dpt(9, 0));
|
||||
goRawHumidity.dataPointType(Dpt(9, 0));
|
||||
goGasResistance.dataPointType(Dpt(9, 0));
|
||||
goIaqEstimate.dataPointType(Dpt(9, 0));
|
||||
goIaqAccurace.dataPointType(Dpt(9, 0));
|
||||
goTemperature.dataPointType(Dpt(9, 0));
|
||||
goHumidity.dataPointType(Dpt(9, 0));
|
||||
goCo2Ppm.dataPointType(Dpt(9, 0));
|
||||
goTriggerSample.dataPointType(Dpt(1, 0));
|
||||
SerialDBG.print("Zykl. send:");
|
||||
SerialDBG.println(cyclSend);
|
||||
goRawTemperature.dataPointType(Dpt(9, 1));
|
||||
goPressure.dataPointType(Dpt(9, 1));
|
||||
goRawHumidity.dataPointType(Dpt(9, 1));
|
||||
goGasResistance.dataPointType(Dpt(9, 1));
|
||||
goIaqEstimate.dataPointType(Dpt(9, 1));
|
||||
goIaqAccurace.dataPointType(Dpt(9, 1));
|
||||
goTemperature.dataPointType(Dpt(9, 1));
|
||||
goHumidity.dataPointType(Dpt(9, 1));
|
||||
goCo2Ppm.dataPointType(Dpt(9, 1));
|
||||
goTriggerSample.dataPointType(Dpt(1, 1));
|
||||
}
|
||||
|
||||
// start the framework.
|
||||
@ -111,7 +112,7 @@ void setup(void)
|
||||
iaqSensor.updateSubscription(sensorList, sizeof(sensorList)/sizeof(bsec_virtual_sensor_t), BSEC_SAMPLE_RATE_LP);
|
||||
checkIaqSensorStatus();
|
||||
String output = "Timestamp [ms], raw temperature [°C], pressure [hPa], raw relative humidity [%], gas [Ohm], IAQ, IAQ accuracy, temperature [°C], relative humidity [%], CO2";
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
}
|
||||
|
||||
// Function that is looped forever
|
||||
@ -149,7 +150,7 @@ void loop(void)
|
||||
output += ", " + String(iaqSensor.runInStatus);
|
||||
output += ", " + String(iaqSensor.stabStatus);
|
||||
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
updateState();
|
||||
|
||||
if (sendCounter++ == cyclSend || trigger)
|
||||
@ -179,26 +180,26 @@ void checkIaqSensorStatus(void)
|
||||
if (iaqSensor.status != BSEC_OK) {
|
||||
if (iaqSensor.status < BSEC_OK) {
|
||||
String output = "BSEC error code : " + String(iaqSensor.status);
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
for (;;)
|
||||
errLeds(); /* Halt in case of failure */
|
||||
}
|
||||
else {
|
||||
String output = "BSEC warning code : " + String(iaqSensor.status);
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
}
|
||||
}
|
||||
|
||||
if (iaqSensor.bme680Status != BME680_OK) {
|
||||
if (iaqSensor.bme680Status < BME680_OK) {
|
||||
String output = "BME680 error code : " + String(iaqSensor.bme680Status);
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
for (;;)
|
||||
errLeds(); /* Halt in case of failure */
|
||||
}
|
||||
else {
|
||||
String output = "BME680 warning code : " + String(iaqSensor.bme680Status);
|
||||
Serial.println(output);
|
||||
SerialDBG.println(output);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -215,10 +216,10 @@ void errLeds(void)
|
||||
uint8_t* loadBme680State(uint8_t* buffer)
|
||||
{
|
||||
// Existing state in EEPROM
|
||||
Serial.println("Reading state from EEPROM");
|
||||
SerialDBG.println("Reading state from EEPROM");
|
||||
|
||||
for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) {
|
||||
Serial.println(buffer[i], HEX);
|
||||
SerialDBG.println(buffer[i], HEX);
|
||||
}
|
||||
|
||||
iaqSensor.setState(buffer);
|
||||
@ -231,10 +232,10 @@ uint8_t* saveBme680State(uint8_t* buffer)
|
||||
iaqSensor.getState(buffer);
|
||||
checkIaqSensorStatus();
|
||||
|
||||
Serial.println("Writing state to EEPROM");
|
||||
SerialDBG.println("Writing state to EEPROM");
|
||||
|
||||
for (uint8_t i = 0; i < BSEC_MAX_STATE_BLOB_SIZE; i++) {
|
||||
Serial.println(buffer[i], HEX);
|
||||
SerialDBG.println(buffer[i], HEX);
|
||||
}
|
||||
return buffer + BSEC_MAX_STATE_BLOB_SIZE;
|
||||
}
|
||||
@ -265,8 +266,8 @@ void updateState(void)
|
||||
// callback from trigger-GO
|
||||
void triggerCallback(GroupObject& go)
|
||||
{
|
||||
Serial.println("trigger");
|
||||
Serial.println((bool)go.value());
|
||||
SerialDBG.println("trigger");
|
||||
SerialDBG.println((bool)go.value());
|
||||
if (!go.value())
|
||||
return;
|
||||
|
||||
@ -274,7 +275,7 @@ void triggerCallback(GroupObject& go)
|
||||
/* We call bsec_update_subscription() in order to instruct BSEC to perform an extra measurement at the next
|
||||
possible time slot
|
||||
*/
|
||||
Serial.println("Triggering ULP plus.");
|
||||
SerialDBG.println("Triggering ULP plus.");
|
||||
bsec_virtual_sensor_t sensorList[] = {
|
||||
BSEC_OUTPUT_IAQ, BSEC_OUTPUT_CO2_EQUIVALENT
|
||||
};
|
||||
|
@ -55,6 +55,7 @@ void resetCallback(GroupObject& go)
|
||||
void setup()
|
||||
{
|
||||
SerialDBG.begin(115200);
|
||||
ArduinoPlatform::SerialDebug = SerialDBG;
|
||||
|
||||
randomSeed(millis());
|
||||
|
||||
@ -71,6 +72,10 @@ void setup()
|
||||
{
|
||||
// register callback for reset GO
|
||||
goReset.callback(resetCallback);
|
||||
goReset.dataPointType(DPT_Trigger);
|
||||
goCurrent.dataPointType(DPT_Value_Temp);
|
||||
goMin.dataPointType(DPT_Value_Temp);
|
||||
goMax.dataPointType(DPT_Value_Temp);
|
||||
|
||||
SerialDBG.print("Timeout: ");
|
||||
SerialDBG.println(knx.paramByte(0));
|
||||
@ -84,7 +89,7 @@ void setup()
|
||||
SerialDBG.println(knx.paramByte(4));
|
||||
}
|
||||
|
||||
// pin or GPIO the programming led is connected to. Default is LED_BUILDIN
|
||||
// pin or GPIO the programming led is connected to. Default is LED_BUILTIN
|
||||
// knx.ledPin(LED_BUILTIN);
|
||||
// is the led active on HIGH or low? Default is LOW
|
||||
// knx.ledPinActiveOn(HIGH);
|
||||
|
@ -22,6 +22,7 @@ uint32_t cyclSend = 0;
|
||||
void setup(void)
|
||||
{
|
||||
SerialDBG.begin(115200);
|
||||
ArduinoPlatform::SerialDebug = SerialDBG;
|
||||
delay(5000);
|
||||
SerialDBG.println("start");
|
||||
|
||||
|
@ -25,6 +25,7 @@ void switchCallback(GroupObject& go)
|
||||
void setup()
|
||||
{
|
||||
SerialDBG.begin(115200);
|
||||
ArduinoPlatform::SerialDebug = SerialDBG;
|
||||
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
WiFiManager wifiManager;
|
||||
|
@ -6,19 +6,18 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
KnxFacade* knx = 0;
|
||||
Platform* platform = 0;
|
||||
KnxFacade<LinuxPlatform, Bau57B0> knx;
|
||||
|
||||
long lastsend = 0;
|
||||
|
||||
#define CURR knx->getGroupObject(1)
|
||||
#define MAX knx->getGroupObject(2)
|
||||
#define MIN knx->getGroupObject(3)
|
||||
#define RESET knx->getGroupObject(4)
|
||||
#define CURR knx.getGroupObject(1)
|
||||
#define MAX knx.getGroupObject(2)
|
||||
#define MIN knx.getGroupObject(3)
|
||||
#define RESET knx.getGroupObject(4)
|
||||
|
||||
void measureTemp()
|
||||
{
|
||||
long now = platform->millis();
|
||||
long now = millis();
|
||||
if ((now - lastsend) < 10000)
|
||||
return;
|
||||
|
||||
@ -52,7 +51,7 @@ void resetCallback(GroupObject& go)
|
||||
|
||||
void appLoop()
|
||||
{
|
||||
if (!knx->configured())
|
||||
if (!knx.configured())
|
||||
return;
|
||||
|
||||
measureTemp();
|
||||
@ -61,12 +60,12 @@ void appLoop()
|
||||
void setup()
|
||||
{
|
||||
srand((unsigned int)time(NULL));
|
||||
knx->readMemory();
|
||||
knx.readMemory();
|
||||
|
||||
if (knx->induvidualAddress() == 0)
|
||||
knx->progMode(true);
|
||||
if (knx.induvidualAddress() == 0)
|
||||
knx.progMode(true);
|
||||
|
||||
if (knx->configured())
|
||||
if (knx.configured())
|
||||
{
|
||||
CURR.dataPointType(Dpt(9, 1));
|
||||
MIN.dataPointType(Dpt(9, 1));
|
||||
@ -75,28 +74,26 @@ void setup()
|
||||
MAX.valueNoSend(-273.0);
|
||||
RESET.dataPointType(Dpt(1, 15));
|
||||
RESET.callback(resetCallback);
|
||||
printf("Timeout: %d\n", knx->paramWord(0));
|
||||
printf("Zykl. senden: %d\n", knx->paramByte(2));
|
||||
printf("Min/Max senden: %d\n", knx->paramByte(3));
|
||||
printf("Aenderung senden: %d\n", knx->paramByte(4));
|
||||
printf("Abgleich %d\n", knx->paramByte(5));
|
||||
printf("Timeout: %d\n", knx.paramWord(0));
|
||||
printf("Zykl. senden: %d\n", knx.paramByte(2));
|
||||
printf("Min/Max senden: %d\n", knx.paramByte(3));
|
||||
printf("Aenderung senden: %d\n", knx.paramByte(4));
|
||||
printf("Abgleich %d\n", knx.paramByte(5));
|
||||
}
|
||||
knx->start();
|
||||
knx.start();
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
platform = new LinuxPlatform(argc, argv);
|
||||
Bau57B0 bau(*platform);
|
||||
knx = new KnxFacade(bau);
|
||||
|
||||
knx.platform().cmdLineArgs(argc, argv);
|
||||
|
||||
setup();
|
||||
|
||||
while (1)
|
||||
{
|
||||
knx->loop();
|
||||
if(knx->configured())
|
||||
knx.loop();
|
||||
if(knx.configured())
|
||||
appLoop();
|
||||
platform->mdelay(100);
|
||||
delay(100);
|
||||
}
|
||||
}
|
270
src/arduino_platform.cpp
Normal file
270
src/arduino_platform.cpp
Normal file
@ -0,0 +1,270 @@
|
||||
#include "arduino_platform.h"
|
||||
#include <knx/bits.h>
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
Stream& ArduinoPlatform::SerialDebug = Serial;
|
||||
|
||||
ArduinoPlatform::ArduinoPlatform(HardwareSerial& knxSerial) : _knxSerial(knxSerial)
|
||||
{
|
||||
}
|
||||
|
||||
uint32_t ArduinoPlatform::currentIpAddress()
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t ArduinoPlatform::currentSubnetMask()
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t ArduinoPlatform::currentDefaultGateway()
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ArduinoPlatform::macAddress(uint8_t * addr)
|
||||
{
|
||||
// not needed
|
||||
}
|
||||
|
||||
|
||||
void ArduinoPlatform::fatalError()
|
||||
{
|
||||
const int period = 200;
|
||||
while (true)
|
||||
{
|
||||
#ifdef LED_BUILTIN
|
||||
if ((millis() % period) > (period / 2))
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
else
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void ArduinoPlatform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
void ArduinoPlatform::closeMultiCast()
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
bool ArduinoPlatform::sendBytes(uint8_t * buffer, uint16_t len)
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
int ArduinoPlatform::readBytes(uint8_t * buffer, uint16_t maxLen)
|
||||
{
|
||||
//not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ArduinoPlatform::knxUart( HardwareSerial& serial )
|
||||
{
|
||||
_knxSerial = serial;
|
||||
}
|
||||
|
||||
HardwareSerial& ArduinoPlatform::knxUart()
|
||||
{
|
||||
return _knxSerial;
|
||||
}
|
||||
|
||||
void ArduinoPlatform::setupUart()
|
||||
{
|
||||
_knxSerial.begin(19200, SERIAL_8E1);
|
||||
while (!_knxSerial)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
void ArduinoPlatform::closeUart()
|
||||
{
|
||||
_knxSerial.end();
|
||||
}
|
||||
|
||||
|
||||
int ArduinoPlatform::uartAvailable()
|
||||
{
|
||||
return _knxSerial.available();
|
||||
}
|
||||
|
||||
|
||||
size_t ArduinoPlatform::writeUart(const uint8_t data)
|
||||
{
|
||||
//printHex("<p", &data, 1);
|
||||
return _knxSerial.write(data);
|
||||
}
|
||||
|
||||
|
||||
size_t ArduinoPlatform::writeUart(const uint8_t *buffer, size_t size)
|
||||
{
|
||||
//printHex("<p", buffer, size);
|
||||
return _knxSerial.write(buffer, size);
|
||||
}
|
||||
|
||||
|
||||
int ArduinoPlatform::readUart()
|
||||
{
|
||||
int val = _knxSerial.read();
|
||||
//if(val > 0)
|
||||
// printHex("p>", (uint8_t*)&val, 1);
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
size_t ArduinoPlatform::readBytesUart(uint8_t *buffer, size_t length)
|
||||
{
|
||||
size_t toRead = length;
|
||||
uint8_t* pos = buffer;
|
||||
while (toRead > 0)
|
||||
{
|
||||
size_t val = _knxSerial.readBytes(pos, toRead);
|
||||
pos += val;
|
||||
toRead -= val;
|
||||
}
|
||||
//printHex("p>", buffer, length);
|
||||
return length;
|
||||
}
|
||||
|
||||
void print(const char* s)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(s);
|
||||
}
|
||||
void print(char c)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(c);
|
||||
}
|
||||
|
||||
void print(unsigned char num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned char num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num, base);
|
||||
}
|
||||
|
||||
void print(int num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void print(int num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num, base);
|
||||
}
|
||||
|
||||
void print(unsigned int num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned int num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num, base);
|
||||
}
|
||||
|
||||
void print(long num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void print(long num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num, base);
|
||||
}
|
||||
|
||||
void print(unsigned long num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned long num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num, base);
|
||||
}
|
||||
|
||||
void print(double num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.print(num);
|
||||
}
|
||||
|
||||
void println(const char* s)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(s);
|
||||
}
|
||||
|
||||
void println(char c)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(c);
|
||||
}
|
||||
|
||||
void println(unsigned char num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned char num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num, base);
|
||||
}
|
||||
|
||||
void println(int num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(int num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num, base);
|
||||
}
|
||||
|
||||
void println(unsigned int num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned int num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num, base);
|
||||
}
|
||||
|
||||
void println(long num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(long num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num, base);
|
||||
}
|
||||
|
||||
void println(unsigned long num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned long num, int base)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num, base);
|
||||
}
|
||||
|
||||
void println(double num)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println(num);
|
||||
}
|
||||
|
||||
void println(void)
|
||||
{
|
||||
ArduinoPlatform::SerialDebug.println();
|
||||
}
|
44
src/arduino_platform.h
Normal file
44
src/arduino_platform.h
Normal file
@ -0,0 +1,44 @@
|
||||
#include "knx/platform.h"
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
extern Stream& _serialDBG;
|
||||
|
||||
class ArduinoPlatform : public Platform
|
||||
{
|
||||
public:
|
||||
ArduinoPlatform(HardwareSerial& knxSerial);
|
||||
|
||||
// ip stuff
|
||||
uint32_t currentIpAddress();
|
||||
uint32_t currentSubnetMask();
|
||||
uint32_t currentDefaultGateway();
|
||||
void macAddress(uint8_t* addr);
|
||||
|
||||
// basic stuff
|
||||
void fatalError();
|
||||
|
||||
//multicast
|
||||
void setupMultiCast(uint32_t addr, uint16_t port);
|
||||
void closeMultiCast();
|
||||
bool sendBytes(uint8_t* buffer, uint16_t len);
|
||||
int readBytes(uint8_t* buffer, uint16_t maxLen);
|
||||
|
||||
//uart
|
||||
virtual void knxUart( HardwareSerial& serial );
|
||||
virtual HardwareSerial& knxUart();
|
||||
virtual void setupUart();
|
||||
virtual void closeUart();
|
||||
virtual int uartAvailable();
|
||||
virtual size_t writeUart(const uint8_t data);
|
||||
virtual size_t writeUart(const uint8_t* buffer, size_t size);
|
||||
virtual int readUart();
|
||||
virtual size_t readBytesUart(uint8_t* buffer, size_t length);
|
||||
|
||||
static Stream& SerialDebug;
|
||||
|
||||
protected:
|
||||
uint32_t _mulitcastAddr;
|
||||
uint16_t _mulitcastPort;
|
||||
HardwareSerial& _knxSerial;
|
||||
};
|
98
src/esp32_platform.cpp
Normal file
98
src/esp32_platform.cpp
Normal file
@ -0,0 +1,98 @@
|
||||
#include "esp32_platform.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#include <Arduino.h>
|
||||
#include <EEPROM.h>
|
||||
|
||||
#include "knx/bits.h"
|
||||
|
||||
Esp32Platform::Esp32Platform() : ArduinoPlatform(Serial1)
|
||||
{
|
||||
}
|
||||
|
||||
Esp32Platform::Esp32Platform( HardwareSerial& s) : ArduinoPlatform(s)
|
||||
{
|
||||
}
|
||||
|
||||
uint32_t Esp32Platform::currentIpAddress()
|
||||
{
|
||||
return WiFi.localIP();
|
||||
}
|
||||
|
||||
uint32_t Esp32Platform::currentSubnetMask()
|
||||
{
|
||||
return WiFi.subnetMask();
|
||||
}
|
||||
|
||||
uint32_t Esp32Platform::currentDefaultGateway()
|
||||
{
|
||||
return WiFi.gatewayIP();
|
||||
}
|
||||
|
||||
void Esp32Platform::macAddress(uint8_t * addr)
|
||||
{
|
||||
esp_wifi_get_mac(WIFI_IF_STA, addr);
|
||||
}
|
||||
|
||||
void Esp32Platform::restart()
|
||||
{
|
||||
Serial.println("restart");
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
void Esp32Platform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
{
|
||||
_mulitcastAddr = htonl(addr);
|
||||
_mulitcastPort = port;
|
||||
IPAddress mcastaddr(_mulitcastAddr);
|
||||
|
||||
Serial.printf("setup multicast addr: %s port: %d ip: %s\n", mcastaddr.toString().c_str(), port,
|
||||
WiFi.localIP().toString().c_str());
|
||||
uint8_t result = _udp.beginMulticast(mcastaddr, port);
|
||||
Serial.printf("result %d\n", result);
|
||||
}
|
||||
|
||||
void Esp32Platform::closeMultiCast()
|
||||
{
|
||||
_udp.stop();
|
||||
}
|
||||
|
||||
bool Esp32Platform::sendBytes(uint8_t * buffer, uint16_t len)
|
||||
{
|
||||
//printHex("<- ",buffer, len);
|
||||
int result = 0;
|
||||
result = _udp.beginMulticastPacket();
|
||||
result = _udp.write(buffer, len);
|
||||
result = _udp.endPacket();
|
||||
return true;
|
||||
}
|
||||
|
||||
int Esp32Platform::readBytes(uint8_t * buffer, uint16_t maxLen)
|
||||
{
|
||||
int len = _udp.parsePacket();
|
||||
if (len == 0)
|
||||
return 0;
|
||||
|
||||
if (len > maxLen)
|
||||
{
|
||||
Serial.printf("udp buffer to small. was %d, needed %d\n", maxLen, len);
|
||||
fatalError();
|
||||
}
|
||||
|
||||
_udp.read(buffer, len);
|
||||
//printHex("-> ", buffer, len);
|
||||
return len;
|
||||
}
|
||||
|
||||
uint8_t * Esp32Platform::getEepromBuffer(uint16_t size)
|
||||
{
|
||||
EEPROM.begin(size);
|
||||
return EEPROM.getDataPtr();
|
||||
}
|
||||
|
||||
void Esp32Platform::commitToEeprom()
|
||||
{
|
||||
EEPROM.commit();
|
||||
}
|
||||
|
||||
#endif
|
38
src/esp32_platform.h
Normal file
38
src/esp32_platform.h
Normal file
@ -0,0 +1,38 @@
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#include "arduino_platform.h"
|
||||
#include <WiFi.h>
|
||||
#include <WiFiUdp.h>
|
||||
|
||||
#define SerialDBG Serial
|
||||
|
||||
class Esp32Platform : public ArduinoPlatform
|
||||
{
|
||||
using ArduinoPlatform::_mulitcastAddr;
|
||||
using ArduinoPlatform::_mulitcastPort;
|
||||
public:
|
||||
Esp32Platform();
|
||||
Esp32Platform( HardwareSerial& s);
|
||||
|
||||
// ip stuff
|
||||
uint32_t currentIpAddress() override;
|
||||
uint32_t currentSubnetMask() override;
|
||||
uint32_t currentDefaultGateway() override;
|
||||
void macAddress(uint8_t* addr) override;
|
||||
|
||||
// basic stuff
|
||||
void restart();
|
||||
|
||||
//multicast
|
||||
void setupMultiCast(uint32_t addr, uint16_t port) override;
|
||||
void closeMultiCast() override;
|
||||
bool sendBytes(uint8_t* buffer, uint16_t len) override;
|
||||
int readBytes(uint8_t* buffer, uint16_t maxLen) override;
|
||||
|
||||
//memory
|
||||
uint8_t* getEepromBuffer(uint16_t size);
|
||||
void commitToEeprom();
|
||||
private:
|
||||
WiFiUDP _udp;
|
||||
};
|
||||
|
||||
#endif
|
@ -7,7 +7,11 @@
|
||||
|
||||
#include "knx/bits.h"
|
||||
|
||||
EspPlatform::EspPlatform()
|
||||
EspPlatform::EspPlatform() : ArduinoPlatform(Serial)
|
||||
{
|
||||
}
|
||||
|
||||
EspPlatform::EspPlatform( HardwareSerial& s) : ArduinoPlatform(s)
|
||||
{
|
||||
}
|
||||
|
||||
@ -31,34 +35,12 @@ void EspPlatform::macAddress(uint8_t * addr)
|
||||
wifi_get_macaddr(STATION_IF, addr);
|
||||
}
|
||||
|
||||
uint32_t EspPlatform::millis()
|
||||
{
|
||||
return ::millis();
|
||||
}
|
||||
|
||||
void EspPlatform::mdelay(uint32_t millis)
|
||||
{
|
||||
delay(millis);
|
||||
}
|
||||
|
||||
void EspPlatform::restart()
|
||||
{
|
||||
Serial.println("restart");
|
||||
ESP.reset();
|
||||
}
|
||||
|
||||
void EspPlatform::fatalError()
|
||||
{
|
||||
const int period = 200;
|
||||
while (true)
|
||||
{
|
||||
if ((millis() % period) > (period / 2))
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
else
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
void EspPlatform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
{
|
||||
_mulitcastAddr = htonl(addr);
|
||||
@ -113,225 +95,4 @@ void EspPlatform::commitToEeprom()
|
||||
{
|
||||
EEPROM.commit();
|
||||
}
|
||||
|
||||
void EspPlatform::setupUart()
|
||||
{
|
||||
Serial.begin(19200, SERIAL_8E1);
|
||||
while (!Serial) ;
|
||||
}
|
||||
|
||||
|
||||
void EspPlatform::closeUart()
|
||||
{
|
||||
Serial.end();
|
||||
}
|
||||
|
||||
|
||||
int EspPlatform::uartAvailable()
|
||||
{
|
||||
return Serial.available();
|
||||
}
|
||||
|
||||
|
||||
size_t EspPlatform::writeUart(const uint8_t data)
|
||||
{
|
||||
printHex("<p", &data, 1);
|
||||
return Serial.write(data);
|
||||
}
|
||||
|
||||
|
||||
size_t EspPlatform::writeUart(const uint8_t *buffer, size_t size)
|
||||
{
|
||||
printHex("<p", buffer, size);
|
||||
return Serial.write(buffer, size);
|
||||
}
|
||||
|
||||
|
||||
int EspPlatform::readUart()
|
||||
{
|
||||
int val = Serial.read();
|
||||
if (val > 0)
|
||||
printHex("p>", (uint8_t*)&val, 1);
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
size_t EspPlatform::readBytesUart(uint8_t *buffer, size_t length)
|
||||
{
|
||||
size_t toRead = length;
|
||||
uint8_t* pos = buffer;
|
||||
while (toRead > 0)
|
||||
{
|
||||
size_t val = Serial.readBytes(pos, toRead);
|
||||
pos += val;
|
||||
toRead -= val;
|
||||
}
|
||||
|
||||
|
||||
printHex("p>", buffer, length);
|
||||
return length;
|
||||
}
|
||||
|
||||
void print(const char* s)
|
||||
{
|
||||
Serial.printf("%s", s);
|
||||
}
|
||||
void print(char c)
|
||||
{
|
||||
Serial.printf("%c", c);
|
||||
}
|
||||
|
||||
void print(unsigned char num)
|
||||
{
|
||||
print(num, DEC);
|
||||
}
|
||||
|
||||
void print(unsigned char num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X", num);
|
||||
else
|
||||
Serial.printf("%d", num);
|
||||
}
|
||||
|
||||
void print(int num)
|
||||
{
|
||||
print(num, DEC);
|
||||
}
|
||||
|
||||
void print(int num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X", num);
|
||||
else
|
||||
Serial.printf("%d", num);
|
||||
}
|
||||
|
||||
void print(unsigned int num)
|
||||
{
|
||||
print(num, DEC);
|
||||
}
|
||||
|
||||
void print(unsigned int num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X", num);
|
||||
else
|
||||
Serial.printf("%d", num);
|
||||
}
|
||||
|
||||
void print(long num)
|
||||
{
|
||||
print(num, DEC);
|
||||
}
|
||||
|
||||
void print(long num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%lX", num);
|
||||
else
|
||||
Serial.printf("%ld", num);
|
||||
}
|
||||
|
||||
void print(unsigned long num)
|
||||
{
|
||||
print(num, DEC);
|
||||
}
|
||||
|
||||
void print(unsigned long num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%lX", num);
|
||||
else
|
||||
Serial.printf("%ld", num);
|
||||
}
|
||||
|
||||
void print(double num)
|
||||
{
|
||||
Serial.printf("%f", num);
|
||||
}
|
||||
|
||||
void println(const char* s)
|
||||
{
|
||||
Serial.printf("%s\n", s);
|
||||
}
|
||||
void println(char c)
|
||||
{
|
||||
Serial.printf("%c\n", c);
|
||||
}
|
||||
|
||||
void println(unsigned char num)
|
||||
{
|
||||
println(num, DEC);
|
||||
}
|
||||
|
||||
void println(unsigned char num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X\n", num);
|
||||
else
|
||||
Serial.printf("%d\n", num);
|
||||
}
|
||||
|
||||
void println(int num)
|
||||
{
|
||||
println(num, DEC);
|
||||
}
|
||||
|
||||
void println(int num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X\n", num);
|
||||
else
|
||||
Serial.printf("%d\n", num);
|
||||
}
|
||||
|
||||
void println(unsigned int num)
|
||||
{
|
||||
println(num, DEC);
|
||||
}
|
||||
|
||||
void println(unsigned int num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%X\n", num);
|
||||
else
|
||||
Serial.printf("%d\n", num);
|
||||
}
|
||||
|
||||
void println(long num)
|
||||
{
|
||||
println(num, DEC);
|
||||
}
|
||||
|
||||
void println(long num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%lX\n", num);
|
||||
else
|
||||
Serial.printf("%ld\n", num);
|
||||
}
|
||||
|
||||
void println(unsigned long num)
|
||||
{
|
||||
println(num, DEC);
|
||||
}
|
||||
|
||||
void println(unsigned long num, int base)
|
||||
{
|
||||
if (base == HEX)
|
||||
Serial.printf("%lX\n", num);
|
||||
else
|
||||
Serial.printf("%ld\n", num);
|
||||
}
|
||||
|
||||
void println(double num)
|
||||
{
|
||||
Serial.printf("%f\n", num);
|
||||
}
|
||||
|
||||
void println(void)
|
||||
{
|
||||
Serial.printf("\n");
|
||||
}
|
||||
#endif
|
||||
|
@ -1,49 +1,39 @@
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
#include "knx/platform.h"
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiUdp.h>
|
||||
|
||||
#define SerialDBG Serial
|
||||
|
||||
class EspPlatform : public Platform
|
||||
{
|
||||
public:
|
||||
EspPlatform();
|
||||
|
||||
// ip stuff
|
||||
uint32_t currentIpAddress();
|
||||
uint32_t currentSubnetMask();
|
||||
uint32_t currentDefaultGateway();
|
||||
void macAddress(uint8_t* addr);
|
||||
|
||||
// basic stuff
|
||||
uint32_t millis();
|
||||
void mdelay(uint32_t millis);
|
||||
void restart();
|
||||
void fatalError();
|
||||
|
||||
//multicast
|
||||
void setupMultiCast(uint32_t addr, uint16_t port);
|
||||
void closeMultiCast();
|
||||
bool sendBytes(uint8_t* buffer, uint16_t len);
|
||||
int readBytes(uint8_t* buffer, uint16_t maxLen);
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
#include "arduino_platform.h"
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <WiFiUdp.h>
|
||||
|
||||
//uart
|
||||
void setupUart();
|
||||
void closeUart();
|
||||
int uartAvailable();
|
||||
size_t writeUart(const uint8_t data);
|
||||
size_t writeUart(const uint8_t *buffer, size_t size);
|
||||
int readUart();
|
||||
size_t readBytesUart(uint8_t *buffer, size_t length);
|
||||
|
||||
#define SerialDBG Serial
|
||||
|
||||
class EspPlatform : public ArduinoPlatform
|
||||
{
|
||||
using ArduinoPlatform::_mulitcastAddr;
|
||||
using ArduinoPlatform::_mulitcastPort;
|
||||
|
||||
public:
|
||||
EspPlatform();
|
||||
EspPlatform( HardwareSerial& s);
|
||||
|
||||
// ip stuff
|
||||
uint32_t currentIpAddress() override;
|
||||
uint32_t currentSubnetMask() override;
|
||||
uint32_t currentDefaultGateway() override;
|
||||
void macAddress(uint8_t* addr) override;
|
||||
|
||||
// basic stuff
|
||||
void restart();
|
||||
|
||||
//multicast
|
||||
void setupMultiCast(uint32_t addr, uint16_t port) override;
|
||||
void closeMultiCast() override;
|
||||
bool sendBytes(uint8_t* buffer, uint16_t len) override;
|
||||
int readBytes(uint8_t* buffer, uint16_t maxLen) override;
|
||||
|
||||
//memory
|
||||
uint8_t* getEepromBuffer(uint16_t size);
|
||||
void commitToEeprom();
|
||||
private:
|
||||
uint32_t _mulitcastAddr;
|
||||
uint16_t _mulitcastPort;
|
||||
WiFiUDP _udp;
|
||||
};
|
||||
|
||||
private:
|
||||
WiFiUDP _udp;
|
||||
};
|
||||
|
||||
#endif
|
@ -175,7 +175,10 @@ void ApplicationLayer::connectIndication(uint16_t tsap)
|
||||
|
||||
void ApplicationLayer::connectConfirm(uint16_t destination, uint16_t tsap, bool status)
|
||||
{
|
||||
|
||||
if (status)
|
||||
_connectedTsap = tsap;
|
||||
else
|
||||
_connectedTsap = -1;
|
||||
}
|
||||
|
||||
void ApplicationLayer::disconnectIndication(uint16_t tsap)
|
||||
|
@ -5,6 +5,7 @@
|
||||
class BusAccessUnit
|
||||
{
|
||||
public:
|
||||
virtual ~BusAccessUnit() {}
|
||||
virtual void groupValueReadLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, bool status);
|
||||
virtual void groupValueReadIndication(uint16_t asap, Priority priority, HopCountType hopType);
|
||||
virtual void groupValueReadResponseConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopTtype,
|
||||
|
@ -5,7 +5,7 @@
|
||||
BauSystemB::BauSystemB(Platform& platform): _memory(platform), _addrTable(platform),
|
||||
_assocTable(platform), _groupObjTable(platform), _appProgram(platform),
|
||||
_platform(platform), _appLayer(_assocTable, *this),
|
||||
_transLayer(_appLayer, _addrTable, _platform), _netLayer(_transLayer)
|
||||
_transLayer(_appLayer, _addrTable), _netLayer(_transLayer)
|
||||
{
|
||||
_appLayer.transportLayer(_transLayer);
|
||||
_transLayer.networkLayer(_netLayer);
|
||||
|
@ -14,6 +14,24 @@
|
||||
#define DEC 10
|
||||
#define HEX 16
|
||||
|
||||
#define INPUT (0x0)
|
||||
#define OUTPUT (0x1)
|
||||
#define INPUT_PULLUP (0x2)
|
||||
#define INPUT_PULLDOWN (0x3)
|
||||
|
||||
#define LOW (0x0)
|
||||
#define HIGH (0x1)
|
||||
#define CHANGE 2
|
||||
#define FALLING 3
|
||||
#define RISING 4
|
||||
|
||||
void delay(uint32_t millis);
|
||||
uint32_t millis();
|
||||
void pinMode(uint32_t dwPin, uint32_t dwMode);
|
||||
void digitalWrite(uint32_t dwPin, uint32_t dwVal);
|
||||
typedef void (*voidFuncPtr)(void);
|
||||
void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode);
|
||||
|
||||
#elif ARDUINO_ARCH_SAMD
|
||||
#include <Arduino.h>
|
||||
#define htons(x) ( (((x)<<8)&0xFF00) | (((x)>>8)&0xFF) )
|
||||
@ -26,6 +44,9 @@
|
||||
#elif ARDUINO_ARCH_ESP8266
|
||||
#include <Arduino.h>
|
||||
#include <user_interface.h>
|
||||
#elif ARDUINO_ARCH_ESP32
|
||||
#include <Arduino.h>
|
||||
#include <esp_wifi.h>
|
||||
#endif
|
||||
|
||||
void print(const char[]);
|
||||
@ -35,7 +56,7 @@ void print(int, int = DEC);
|
||||
void print(unsigned int, int = DEC);
|
||||
void print(long, int = DEC);
|
||||
void print(unsigned long, int = DEC);
|
||||
void print(double, int = 2);
|
||||
void print(double);
|
||||
|
||||
void println(const char[]);
|
||||
void println(char);
|
||||
@ -44,7 +65,7 @@ void println(int, int = DEC);
|
||||
void println(unsigned int, int = DEC);
|
||||
void println(long, int = DEC);
|
||||
void println(unsigned long, int = DEC);
|
||||
void println(double, int = 2);
|
||||
void println(double);
|
||||
void println(void);
|
||||
|
||||
|
||||
|
@ -1,11 +1,16 @@
|
||||
#include "dpt.h"
|
||||
|
||||
#include "bits.h"
|
||||
|
||||
Dpt::Dpt()
|
||||
{}
|
||||
|
||||
Dpt::Dpt(short mainGroup, short subGroup, short index /* = 0 */)
|
||||
: mainGroup(mainGroup), subGroup(subGroup), index(index)
|
||||
{}
|
||||
{
|
||||
if (subGroup == 0)
|
||||
println("WARNING: You used and invalid Dpt *.0");
|
||||
}
|
||||
|
||||
bool Dpt::operator==(const Dpt& other) const
|
||||
{
|
||||
|
358
src/knx/dpt.h
358
src/knx/dpt.h
@ -1,5 +1,363 @@
|
||||
#pragma once
|
||||
|
||||
#define DPT_Switch Dpt(1, 1)
|
||||
#define DPT_Bool Dpt(1, 2)
|
||||
#define DPT_Enable Dpt(1, 3)
|
||||
#define DPT_Ramp Dpt(1, 4)
|
||||
#define DPT_Alarm Dpt(1, 5)
|
||||
#define DPT_BinaryValue Dpt(1, 6)
|
||||
#define DPT_Step Dpt(1, 7)
|
||||
#define DPT_UpDown Dpt(1, 8)
|
||||
#define DPT_OpenClose Dpt(1, 9)
|
||||
#define DPT_Start Dpt(1, 10)
|
||||
#define DPT_State Dpt(1, 11)
|
||||
#define DPT_Invert Dpt(1, 12)
|
||||
#define DPT_DimSendStyle Dpt(1, 13)
|
||||
#define DPT_InputSource Dpt(1, 14)
|
||||
#define DPT_Reset Dpt(1, 15)
|
||||
#define DPT_Ack Dpt(1, 16)
|
||||
#define DPT_Trigger Dpt(1, 17)
|
||||
#define DPT_Occupancy Dpt(1, 18)
|
||||
#define DPT_Window_Door Dpt(1, 19)
|
||||
#define DPT_LogicalFunction Dpt(1, 21)
|
||||
#define DPT_Scene_AB Dpt(1, 22)
|
||||
#define DPT_ShutterBlinds_Mode Dpt(1, 23)
|
||||
#define DPT_Heat_Cool Dpt(1, 100)
|
||||
#define DPT_Switch_Control Dpt(2, 1)
|
||||
#define DPT_Bool_Control Dpt(2, 2)
|
||||
#define DPT_Enable_Control Dpt(2, 3)
|
||||
#define DPT_Ramp_Control Dpt(2, 4)
|
||||
#define DPT_Alarm_Control Dpt(2, 5)
|
||||
#define DPT_BinaryValue_Control Dpt(2, 6)
|
||||
#define DPT_Step_Control Dpt(2, 7)
|
||||
#define DPT_Direction1_Control Dpt(2, 8)
|
||||
#define DPT_Direction2_Control Dpt(2, 9)
|
||||
#define DPT_Start_Control Dpt(2, 10)
|
||||
#define DPT_State_Control Dpt(2, 11)
|
||||
#define DPT_Invert_Control Dpt(2, 12)
|
||||
#define DPT_Control_Dimming Dpt(3, 7)
|
||||
#define DPT_Control_Blinds Dpt(3, 8)
|
||||
#define DPT_Char_ASCII Dpt(4, 1)
|
||||
#define DPT_Char_8859_1 Dpt(4, 2)
|
||||
#define DPT_Scaling Dpt(5, 1)
|
||||
#define DPT_Angle Dpt(5, 3)
|
||||
#define DPT_Percent_U8 Dpt(5, 4)
|
||||
#define DPT_DecimalFactor Dpt(5, 5)
|
||||
#define DPT_Tariff Dpt(5, 6)
|
||||
#define DPT_Value_1_Ucount Dpt(5, 10)
|
||||
#define DPT_Percent_V8 Dpt(6, 1)
|
||||
#define DPT_Value_1_Count Dpt(6, 10)
|
||||
#define DPT_Status_Mode3 Dpt(6, 20)
|
||||
#define DPT_Value_2_Ucount Dpt(7, 1)
|
||||
#define DPT_TimePeriodMsec Dpt(7, 2)
|
||||
#define DPT_TimePeriod10MSec Dpt(7, 3)
|
||||
#define DPT_TimePeriod100MSec Dpt(7, 4)
|
||||
#define DPT_TimePeriodSec Dpt(7, 5)
|
||||
#define DPT_TimePeriodMin Dpt(7, 6)
|
||||
#define DPT_TimePeriodHrs Dpt(7, 7)
|
||||
#define DPT_PropDataType Dpt(7, 10)
|
||||
#define DPT_Length_mm Dpt(7, 11)
|
||||
#define DPT_UElCurrentmA Dpt(7, 12)
|
||||
#define DPT_Brightness Dpt(7, 13)
|
||||
#define DPT_Value_2_Count Dpt(8, 1)
|
||||
#define DPT_DeltaTimeMsec Dpt(8, 2)
|
||||
#define DPT_DeltaTime10MSec Dpt(8, 3)
|
||||
#define DPT_DeltaTime100MSec Dpt(8, 4)
|
||||
#define DPT_DeltaTimeSec Dpt(8, 5)
|
||||
#define DPT_DeltaTimeMin Dpt(8, 6)
|
||||
#define DPT_DeltaTimeHrs Dpt(8, 7)
|
||||
#define DPT_Percent_V16 Dpt(8, 10)
|
||||
#define DPT_Rotation_Angle Dpt(8, 11)
|
||||
#define DPT_Value_Temp Dpt(9, 1)
|
||||
#define DPT_Value_Tempd Dpt(9, 2)
|
||||
#define DPT_Value_Tempa Dpt(9, 3)
|
||||
#define DPT_Value_Lux Dpt(9, 4)
|
||||
#define DPT_Value_Wsp Dpt(9, 5)
|
||||
#define DPT_Value_Pres Dpt(9, 6)
|
||||
#define DPT_Value_Humidity Dpt(9, 7)
|
||||
#define DPT_Value_AirQuality Dpt(9, 8)
|
||||
#define DPT_Value_Time1 Dpt(9, 10)
|
||||
#define DPT_Value_Time2 Dpt(9, 11)
|
||||
#define DPT_Value_Volt Dpt(9, 20)
|
||||
#define DPT_Value_Curr Dpt(9, 21)
|
||||
#define DPT_PowerDensity Dpt(9, 22)
|
||||
#define DPT_KelvinPerPercent Dpt(9, 23)
|
||||
#define DPT_Power Dpt(9, 24)
|
||||
#define DPT_Value_Volume_Flow Dpt(9, 25)
|
||||
#define DPT_Rain_Amount Dpt(9, 26)
|
||||
#define DPT_Value_Temp_F Dpt(9, 27)
|
||||
#define DPT_Value_Wsp_kmh Dpt(9, 28)
|
||||
#define DPT_TimeOfDay Dpt(10, 1)
|
||||
#define DPT_Date Dpt(11, 1)
|
||||
#define DPT_Value_4_Ucount Dpt(12, 1)
|
||||
#define DPT_Value_4_Count Dpt(13, 1)
|
||||
#define DPT_FlowRate_m3 Dpt(13, 2) / h
|
||||
#define DPT_ActiveEnergy Dpt(13, 10)
|
||||
#define DPT_ApparantEnergy Dpt(13, 11)
|
||||
#define DPT_ReactiveEnergy Dpt(13, 12)
|
||||
#define DPT_ActiveEnergy_kWh Dpt(13, 13)
|
||||
#define DPT_ApparantEnergy_kVAh Dpt(13, 14)
|
||||
#define DPT_ReactiveEnergy_kVARh Dpt(13, 15)
|
||||
#define DPT_LongDeltaTimeSec Dpt(13, 100)
|
||||
#define DPT_Value_Acceleration Dpt(14, 0)
|
||||
#define DPT_Value_Acceleration_Angular Dpt(14, 1)
|
||||
#define DPT_Value_Activation_Energy Dpt(14, 2)
|
||||
#define DPT_Value_Activity Dpt(14, 3)
|
||||
#define DPT_Value_Mol Dpt(14, 4)
|
||||
#define DPT_Value_Amplitude Dpt(14, 5)
|
||||
#define DPT_Value_AngleRad Dpt(14, 6)
|
||||
#define DPT_Value_AngleDeg Dpt(14, 7)
|
||||
#define DPT_Value_Angular_Momentum Dpt(14, 8)
|
||||
#define DPT_Value_Angular_Velocity Dpt(14, 9)
|
||||
#define DPT_Value_Area Dpt(14, 10)
|
||||
#define DPT_Value_Capacitance Dpt(14, 11)
|
||||
#define DPT_Value_Charge_DensitySurface Dpt(14, 12)
|
||||
#define DPT_Value_Charge_DensityVolume Dpt(14, 13)
|
||||
#define DPT_Value_Compressibility Dpt(14, 14)
|
||||
#define DPT_Value_Conductance Dpt(14, 15)
|
||||
#define DPT_Value_Electrical_Conductivity Dpt(14, 16)
|
||||
#define DPT_Value_Density Dpt(14, 17)
|
||||
#define DPT_Value_Electric_Charge Dpt(14, 18)
|
||||
#define DPT_Value_Electric_Current Dpt(14, 19)
|
||||
#define DPT_Value_Electric_CurrentDensity Dpt(14, 20)
|
||||
#define DPT_Value_Electric_DipoleMoment Dpt(14, 21)
|
||||
#define DPT_Value_Electric_Displacement Dpt(14, 22)
|
||||
#define DPT_Value_Electric_FieldStrength Dpt(14, 23)
|
||||
#define DPT_Value_Electric_Flux Dpt(14, 24)
|
||||
#define DPT_Value_Electric_FluxDensity Dpt(14, 25)
|
||||
#define DPT_Value_Electric_Polarization Dpt(14, 26)
|
||||
#define DPT_Value_Electric_Potential Dpt(14, 27)
|
||||
#define DPT_Value_Electric_PotentialDifference Dpt(14, 28)
|
||||
#define DPT_Value_ElectromagneticMoment Dpt(14, 29)
|
||||
#define DPT_Value_Electromotive_Force Dpt(14, 30)
|
||||
#define DPT_Value_Energy Dpt(14, 31)
|
||||
#define DPT_Value_Force Dpt(14, 32)
|
||||
#define DPT_Value_Frequency Dpt(14, 33)
|
||||
#define DPT_Value_Angular_Frequency Dpt(14, 34)
|
||||
#define DPT_Value_Heat_Capacity Dpt(14, 35)
|
||||
#define DPT_Value_Heat_FlowRate Dpt(14, 36)
|
||||
#define DPT_Value_Heat_Quantity Dpt(14, 37)
|
||||
#define DPT_Value_Impedance Dpt(14, 38)
|
||||
#define DPT_Value_Length Dpt(14, 39)
|
||||
#define DPT_Value_Light_Quantity Dpt(14, 40)
|
||||
#define DPT_Value_Luminance Dpt(14, 41)
|
||||
#define DPT_Value_Luminous_Flux Dpt(14, 42)
|
||||
#define DPT_Value_Luminous_Intensity Dpt(14, 43)
|
||||
#define DPT_Value_Magnetic_FieldStrength Dpt(14, 44)
|
||||
#define DPT_Value_Magnetic_Flux Dpt(14, 45)
|
||||
#define DPT_Value_Magnetic_FluxDensity Dpt(14, 46)
|
||||
#define DPT_Value_Magnetic_Moment Dpt(14, 47)
|
||||
#define DPT_Value_Magnetic_Polarization Dpt(14, 48)
|
||||
#define DPT_Value_Magnetization Dpt(14, 49)
|
||||
#define DPT_Value_MagnetomotiveForce Dpt(14, 50)
|
||||
#define DPT_Value_Mass Dpt(14, 51)
|
||||
#define DPT_Value_MassFlux Dpt(14, 52)
|
||||
#define DPT_Value_Momentum Dpt(14, 53)
|
||||
#define DPT_Value_Phase_AngleRad Dpt(14, 54)
|
||||
#define DPT_Value_Phase_AngleDeg Dpt(14, 55)
|
||||
#define DPT_Value_Power Dpt(14, 56)
|
||||
#define DPT_Value_Power_Factor Dpt(14, 57)
|
||||
#define DPT_Value_Pressure Dpt(14, 58)
|
||||
#define DPT_Value_Reactance Dpt(14, 59)
|
||||
#define DPT_Value_Resistance Dpt(14, 60)
|
||||
#define DPT_Value_Resistivity Dpt(14, 61)
|
||||
#define DPT_Value_SelfInductance Dpt(14, 62)
|
||||
#define DPT_Value_SolidAngle Dpt(14, 63)
|
||||
#define DPT_Value_Sound_Intensity Dpt(14, 64)
|
||||
#define DPT_Value_Speed Dpt(14, 65)
|
||||
#define DPT_Value_Stress Dpt(14, 66)
|
||||
#define DPT_Value_Surface_Tension Dpt(14, 67)
|
||||
#define DPT_Value_Common_Temperature Dpt(14, 68)
|
||||
#define DPT_Value_Absolute_Temperature Dpt(14, 69)
|
||||
#define DPT_Value_TemperatureDifference Dpt(14, 70)
|
||||
#define DPT_Value_Thermal_Capacity Dpt(14, 71)
|
||||
#define DPT_Value_Thermal_Conductivity Dpt(14, 72)
|
||||
#define DPT_Value_ThermoelectricPower Dpt(14, 73)
|
||||
#define DPT_Value_Time Dpt(14, 74)
|
||||
#define DPT_Value_Torque Dpt(14, 75)
|
||||
#define DPT_Value_Volume Dpt(14, 76)
|
||||
#define DPT_Value_Volume_Flux Dpt(14, 77)
|
||||
#define DPT_Value_Weight Dpt(14, 78)
|
||||
#define DPT_Value_Work Dpt(14, 79)
|
||||
#define DPT_Access_Data Dpt(15, 0)
|
||||
#define DPT_String_ASCII Dpt(16, 0)
|
||||
#define DPT_String_8859_1 Dpt(16, 1)
|
||||
#define DPT_SceneNumber Dpt(17, 1)
|
||||
#define DPT_SceneControl Dpt(18, 1)
|
||||
#define DPT_DateTime Dpt(19, 1)
|
||||
#define DPT_SCLOMode Dpt(20, 1)
|
||||
#define DPT_BuildingMode Dpt(20, 2)
|
||||
#define DPT_OccMode Dpt(20, 3)
|
||||
#define DPT_Priority Dpt(20, 4)
|
||||
#define DPT_LightApplicationMode Dpt(20, 5)
|
||||
#define DPT_ApplicationArea Dpt(20, 6)
|
||||
#define DPT_AlarmClassType Dpt(20, 7)
|
||||
#define DPT_PSUMode Dpt(20, 8)
|
||||
#define DPT_ErrorClass_System Dpt(20, 11)
|
||||
#define DPT_ErrorClass_HVAC Dpt(20, 12)
|
||||
#define DPT_Time_Delay Dpt(20, 13)
|
||||
#define DPT_Beaufort_Wind_Force_Scale Dpt(20, 14)
|
||||
#define DPT_SensorSelect Dpt(20, 17)
|
||||
#define DPT_ActuatorConnectType Dpt(20, 20)
|
||||
#define DPT_FuelType Dpt(20, 100)
|
||||
#define DPT_BurnerType Dpt(20, 101)
|
||||
#define DPT_HVACMode Dpt(20, 102)
|
||||
#define DPT_DHWMode Dpt(20, 103)
|
||||
#define DPT_LoadPriority Dpt(20, 104)
|
||||
#define DPT_HVACContrMode Dpt(20, 105)
|
||||
#define DPT_HVACEmergMode Dpt(20, 106)
|
||||
#define DPT_ChangeoverMode Dpt(20, 107)
|
||||
#define DPT_ValveMode Dpt(20, 108)
|
||||
#define DPT_DamperMode Dpt(20, 109)
|
||||
#define DPT_HeaterMode Dpt(20, 110)
|
||||
#define DPT_FanMode Dpt(20, 111)
|
||||
#define DPT_MasterSlaveMode Dpt(20, 112)
|
||||
#define DPT_StatusRoomSetp Dpt(20, 113)
|
||||
#define DPT_ADAType Dpt(20, 120)
|
||||
#define DPT_BackupMode Dpt(20, 121)
|
||||
#define DPT_StartSynchronization Dpt(20, 122)
|
||||
#define DPT_Behaviour_Lock_Unlock Dpt(20, 600)
|
||||
#define DPT_Behaviour_Bus_Power_Up_Down Dpt(20, 601)
|
||||
#define DPT_DALI_Fade_Time Dpt(20, 602)
|
||||
#define DPT_BlinkingMode Dpt(20, 603)
|
||||
#define DPT_LightControlMode Dpt(20, 604)
|
||||
#define DPT_SwitchPBModel Dpt(20, 605)
|
||||
#define DPT_PBAction Dpt(20, 606)
|
||||
#define DPT_DimmPBModel Dpt(20, 607)
|
||||
#define DPT_SwitchOnMode Dpt(20, 608)
|
||||
#define DPT_LoadTypeSet Dpt(20, 609)
|
||||
#define DPT_LoadTypeDetected Dpt(20, 610)
|
||||
#define DPT_SABExceptBehaviour Dpt(20, 801)
|
||||
#define DPT_SABBehaviour_Lock_Unlock Dpt(20, 802)
|
||||
#define DPT_SSSBMode Dpt(20, 803)
|
||||
#define DPT_BlindsControlMode Dpt(20, 804)
|
||||
#define DPT_CommMode Dpt(20, 1000)
|
||||
#define DPT_AddInfoTypes Dpt(20, 1001)
|
||||
#define DPT_RF_ModeSelect Dpt(20, 1002)
|
||||
#define DPT_RF_FilterSelect Dpt(20, 1003)
|
||||
#define DPT_StatusGen Dpt(21, 1)
|
||||
#define DPT_Device_Control Dpt(21, 2)
|
||||
#define DPT_ForceSign Dpt(21, 100)
|
||||
#define DPT_ForceSignCool Dpt(21, 101)
|
||||
#define DPT_StatusRHC Dpt(21, 102)
|
||||
#define DPT_StatusSDHWC Dpt(21, 103)
|
||||
#define DPT_FuelTypeSet Dpt(21, 104)
|
||||
#define DPT_StatusRCC Dpt(21, 105)
|
||||
#define DPT_StatusAHU Dpt(21, 106)
|
||||
#define DPT_LightActuatorErrorInfo Dpt(21, 601)
|
||||
#define DPT_RF_ModeInfo Dpt(21, 1000)
|
||||
#define DPT_RF_FilterInfo Dpt(21, 1001)
|
||||
#define DPT_Channel_Activation_8 Dpt(21, 1010)
|
||||
#define DPT_StatusDHWC Dpt(22, 100)
|
||||
#define DPT_StatusRHCC Dpt(22, 101)
|
||||
#define DPT_Media Dpt(22, 1000)
|
||||
#define DPT_Channel_Activation_16 Dpt(22, 1010)
|
||||
#define DPT_OnOff_Action Dpt(23, 1)
|
||||
#define DPT_Alarm_Reaction Dpt(23, 2)
|
||||
#define DPT_UpDown_Action Dpt(23, 3)
|
||||
#define DPT_HVAC_PB_Action Dpt(23, 102)
|
||||
#define DPT_VarString_8859_1 Dpt(24, 1)
|
||||
#define DPT_DoubleNibble Dpt(25, 1000)
|
||||
#define DPT_SceneInfo Dpt(26, 1)
|
||||
#define DPT_CombinedInfoOnOff Dpt(27, 1)
|
||||
#define DPT_UTF_8 Dpt(28, 1)
|
||||
#define DPT_ActiveEnergy_V64 Dpt(29, 10)
|
||||
#define DPT_ApparantEnergy_V64 Dpt(29, 11)
|
||||
#define DPT_ReactiveEnergy_V64 Dpt(29, 12)
|
||||
#define DPT_Channel_Activation_24 Dpt(30, 1010)
|
||||
#define DPT_PB_Action_HVAC_Extended Dpt(31, 101)
|
||||
#define DPT_Heat_Cool_Z Dpt(200, 100)
|
||||
#define DPT_BinaryValue_Z Dpt(200, 101)
|
||||
#define DPT_HVACMode_Z Dpt(201, 100)
|
||||
#define DPT_DHWMode_Z Dpt(201, 102)
|
||||
#define DPT_HVACContrMode_Z Dpt(201, 104)
|
||||
#define DPT_EnablH_Cstage_Z Dpt(201, 105)
|
||||
#define DPT_BuildingMode_Z Dpt(201, 107)
|
||||
#define DPT_OccMode_Z Dpt(201, 108)
|
||||
#define DPT_HVACEmergMode_Z Dpt(201, 109)
|
||||
#define DPT_RelValue_Z Dpt(202, 1)
|
||||
#define DPT_UCountValue8_Z Dpt(202, 2)
|
||||
#define DPT_TimePeriodMsec_Z Dpt(203, 2)
|
||||
#define DPT_TimePeriod10Msec_Z Dpt(203, 3)
|
||||
#define DPT_TimePeriod100Msec_Z Dpt(203, 4)
|
||||
#define DPT_TimePeriodSec_Z Dpt(203, 5)
|
||||
#define DPT_TimePeriodMin_Z Dpt(203, 6)
|
||||
#define DPT_TimePeriodHrs_Z Dpt(203, 7)
|
||||
#define DPT_UFlowRateLiter_per_h_Z Dpt(203, 11)
|
||||
#define DPT_UCountValue16_Z Dpt(203, 12)
|
||||
#define DPT_UElCurrent?A_Z Dpt(203, 13)
|
||||
#define DPT_PowerKW_Z Dpt(203, 14)
|
||||
#define DPT_AtmPressureAbs_Z Dpt(203, 15)
|
||||
#define DPT_PercentU16_Z Dpt(203, 17)
|
||||
#define DPT_HVACAirQual_Z Dpt(203, 100)
|
||||
#define DPT_WindSpeed_Z Dpt(203, 101)
|
||||
#define DPT_SunIntensity_Z Dpt(203, 102)
|
||||
#define DPT_HVACAirFlowAbs_Z Dpt(203, 104)
|
||||
#define DPT_RelSignedValue_Z Dpt(204, 1)
|
||||
#define DPT_DeltaTimeMsec_Z Dpt(205, 2)
|
||||
#define DPT_DeltaTime10Msec_Z Dpt(205, 3)
|
||||
#define DPT_DeltaTime100Msec_Z Dpt(205, 4)
|
||||
#define DPT_DeltaTimeSec_Z Dpt(205, 5)
|
||||
#define DPT_DeltaTimeMin_Z Dpt(205, 6)
|
||||
#define DPT_DeltaTimeHrs_Z Dpt(205, 7)
|
||||
#define DPT_Percent_V16_Z Dpt(205, 17)
|
||||
#define DPT_TempHVACAbs_Z Dpt(205, 100)
|
||||
#define DPT_TempHVACRel_Z Dpt(205, 101)
|
||||
#define DPT_HVACAirFlowRel_Z Dpt(205, 102)
|
||||
#define DPT_HVACModeNext Dpt(206, 100)
|
||||
#define DPT_DHWModeNext Dpt(206, 102)
|
||||
#define DPT_OccModeNext Dpt(206, 104)
|
||||
#define DPT_BuildingModeNext Dpt(206, 105)
|
||||
#define DPT_StatusBUC Dpt(207, 100)
|
||||
#define DPT_LockSign Dpt(207, 101)
|
||||
#define DPT_ValueDemBOC Dpt(207, 102)
|
||||
#define DPT_ActPosDemAbs Dpt(207, 104)
|
||||
#define DPT_StatusAct Dpt(207, 105)
|
||||
#define DPT_StatusLightingActuator Dpt(207, 600)
|
||||
#define DPT_StatusHPM Dpt(209, 100)
|
||||
#define DPT_TempRoomDemAbs Dpt(209, 101)
|
||||
#define DPT_StatusCPM Dpt(209, 102)
|
||||
#define DPT_StatusWTC Dpt(209, 103)
|
||||
#define DPT_TempFlowWaterDemAbs Dpt(210, 100)
|
||||
#define DPT_EnergyDemWater Dpt(211, 100)
|
||||
#define DPT_TempRoomSetpSetShift_3 Dpt(212, 100)
|
||||
#define DPT_TempRoomSetpSet_3 Dpt(212, 101)
|
||||
#define DPT_TempRoomSetpSet_4 Dpt(213, 100)
|
||||
#define DPT_TempDHWSetpSet_4 Dpt(213, 101)
|
||||
#define DPT_TempRoomSetpSetShift_4 Dpt(213, 102)
|
||||
#define DPT_PowerFlowWaterDemHPM Dpt(214, 100)
|
||||
#define DPT_PowerFlowWaterDemCPM Dpt(214, 101)
|
||||
#define DPT_StatusBOC Dpt(215, 100)
|
||||
#define DPT_StatusCC Dpt(215, 101)
|
||||
#define DPT_SpecHeatProd Dpt(216, 100)
|
||||
#define DPT_Version Dpt(217, 1)
|
||||
#define DPT_VolumeLiter_Z Dpt(218, 1)
|
||||
#define DPT_FlowRate_m3_per_h_Z Dpt(218, 2)
|
||||
#define DPT_AlarmInfo Dpt(219, 1)
|
||||
#define DPT_TempHVACAbsNext Dpt(220, 100)
|
||||
#define DPT_SerNum Dpt(221, 1)
|
||||
#define DPT_TempRoomSetpSetF16_3 Dpt(222, 100)
|
||||
#define DPT_TempRoomSetpSetShiftF16_3 Dpt(222, 101)
|
||||
#define DPT_EnergyDemAir Dpt(223, 100)
|
||||
#define DPT_TempSupplyAirSetpSet Dpt(224, 100)
|
||||
#define DPT_ScalingSpeed Dpt(225, 1)
|
||||
#define DPT_Scaling_Step_Time Dpt(225, 2)
|
||||
#define DPT_TariffNext Dpt(225, 3)
|
||||
#define DPT_MeteringValue Dpt(229, 1)
|
||||
#define DPT_MBus_Address Dpt(230, 1000)
|
||||
#define DPT_Locale_ASCII Dpt(231, 1)
|
||||
#define DPT_Colour_RGB Dpt(232, 600)
|
||||
#define DPT_LanguageCodeAlpha2_ASCII Dpt(234, 1)
|
||||
#define DPT_RegionCodeAlpha2_ASCII Dpt(234, 2)
|
||||
#define DPT_Tariff_ActiveEnergy Dpt(235, 1)
|
||||
#define DPT_Prioritised_Mode_Control Dpt(236, 1)
|
||||
#define DPT_DALI_Control_Gear_Diagnostic Dpt(237, 600)
|
||||
#define DPT_SceneConfig Dpt(238, 1)
|
||||
#define DPT_DALI_Diagnostics Dpt(238, 600)
|
||||
#define DPT_FlaggedScaling Dpt(239, 1)
|
||||
#define DPT_CombinedPosition Dpt(240, 800)
|
||||
#define DPT_StatusSAB Dpt(241, 800)
|
||||
|
||||
class Dpt
|
||||
{
|
||||
public:
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "dptconvert.h"
|
||||
#include "bits.h"
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
@ -11,7 +12,7 @@
|
||||
// for (int pi = 0; pi < (x); ++pi) \
|
||||
// payload[pi] = 0
|
||||
|
||||
int KNX_Decode_Value(uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int KNX_Decode_Value(uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
if (payload_length > 0)
|
||||
{
|
||||
@ -238,7 +239,7 @@ int KNX_Decode_Value(uint8_t* payload, int payload_length, const Dpt& datatype,
|
||||
return false;
|
||||
}
|
||||
|
||||
int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
|
||||
if (datatype.mainGroup == 1 && datatype.subGroup >= 1 && datatype.subGroup <= 23 && datatype.subGroup != 20 && !datatype.index)
|
||||
@ -354,14 +355,14 @@ int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, int payload_length
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToBinary(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToBinary(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
value = bitFromPayload(payload, 7);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToBinaryControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToBinaryControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.index)
|
||||
@ -377,7 +378,7 @@ int busValueToBinaryControl(const uint8_t* payload, int payload_length, const Dp
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToStepControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToStepControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.index)
|
||||
@ -395,7 +396,7 @@ int busValueToStepControl(const uint8_t* payload, int payload_length, const Dpt&
|
||||
|
||||
return false;
|
||||
}
|
||||
int busValueToCharacter(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToCharacter(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
int8_t charValue = signed8FromPayload(payload, 0);
|
||||
@ -411,7 +412,7 @@ int busValueToCharacter(const uint8_t* payload, int payload_length, const Dpt& d
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToUnsigned8(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToUnsigned8(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.subGroup)
|
||||
@ -438,14 +439,14 @@ int busValueToUnsigned8(const uint8_t* payload, int payload_length, const Dpt& d
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToSigned8(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSigned8(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
value = (uint8_t)(unsigned8FromPayload(payload, 0));
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToStatusAndMode(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToStatusAndMode(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
if (datatype.index < 5)
|
||||
@ -461,14 +462,14 @@ int busValueToStatusAndMode(const uint8_t* payload, int payload_length, const Dp
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToUnsigned16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToUnsigned16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
value = unsigned16FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToTimePeriod(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToTimePeriod(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
|
||||
@ -477,7 +478,7 @@ int busValueToTimePeriod(const uint8_t* payload, int payload_length, const Dpt&
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToSigned16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSigned16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
if (datatype.subGroup == 10)
|
||||
@ -489,7 +490,7 @@ int busValueToSigned16(const uint8_t* payload, int payload_length, const Dpt& da
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToTimeDelta(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToTimeDelta(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
|
||||
@ -498,7 +499,7 @@ int busValueToTimeDelta(const uint8_t* payload, int payload_length, const Dpt& d
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToFloat16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToFloat16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
if (unsigned16FromPayload(payload, 0) == 0x7FFF)
|
||||
@ -508,7 +509,7 @@ int busValueToFloat16(const uint8_t* payload, int payload_length, const Dpt& dat
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToTime(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToTime(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(3);
|
||||
switch (datatype.index)
|
||||
@ -536,7 +537,7 @@ int busValueToTime(const uint8_t* payload, int payload_length, const Dpt& dataty
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToDate(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToDate(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(3);
|
||||
unsigned short year = unsigned8FromPayload(payload, 2) & 0x7F;
|
||||
@ -555,35 +556,35 @@ int busValueToDate(const uint8_t* payload, int payload_length, const Dpt& dataty
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToUnsigned32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToUnsigned32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(4);
|
||||
value = unsigned32FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToSigned32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSigned32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(4);
|
||||
value = signed32FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToLongTimePeriod(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToLongTimePeriod(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(4);
|
||||
value = signed32FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToFloat32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToFloat32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(4);
|
||||
value = float32FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToAccess(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToAccess(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(4);
|
||||
switch (datatype.index)
|
||||
@ -615,7 +616,7 @@ int busValueToAccess(const uint8_t* payload, int payload_length, const Dpt& data
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToString(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToString(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(14);
|
||||
char strValue[15];
|
||||
@ -630,14 +631,14 @@ int busValueToString(const uint8_t* payload, int payload_length, const Dpt& data
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToScene(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToScene(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
value = (uint8_t)(unsigned8FromPayload(payload, 0) & 0x3F);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToSceneControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSceneControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.index)
|
||||
@ -657,7 +658,7 @@ int busValueToSceneControl(const uint8_t* payload, int payload_length, const Dpt
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToSceneInfo(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSceneInfo(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.index)
|
||||
@ -677,7 +678,7 @@ int busValueToSceneInfo(const uint8_t* payload, int payload_length, const Dpt& d
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToSceneConfig(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSceneConfig(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(1);
|
||||
switch (datatype.index)
|
||||
@ -698,7 +699,7 @@ int busValueToSceneConfig(const uint8_t* payload, int payload_length, const Dpt&
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToDateTime(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToDateTime(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(8);
|
||||
if (datatype.index == 3)
|
||||
@ -770,20 +771,20 @@ int busValueToDateTime(const uint8_t* payload, int payload_length, const Dpt& da
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToUnicode(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToUnicode(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
//TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToSigned64(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSigned64(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(8);
|
||||
value = signed64FromPayload(payload, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToAlarmInfo(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToAlarmInfo(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(6);
|
||||
switch (datatype.index)
|
||||
@ -816,7 +817,7 @@ int busValueToAlarmInfo(const uint8_t* payload, int payload_length, const Dpt& d
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToSerialNumber(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToSerialNumber(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(6);
|
||||
switch (datatype.index)
|
||||
@ -831,7 +832,7 @@ int busValueToSerialNumber(const uint8_t* payload, int payload_length, const Dpt
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToVersion(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToVersion(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
switch (datatype.index)
|
||||
@ -850,7 +851,7 @@ int busValueToVersion(const uint8_t* payload, int payload_length, const Dpt& dat
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToScaling(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToScaling(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(3);
|
||||
switch (datatype.index)
|
||||
@ -866,7 +867,7 @@ int busValueToScaling(const uint8_t* payload, int payload_length, const Dpt& dat
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToTariff(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToTariff(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(3);
|
||||
switch (datatype.index)
|
||||
@ -887,7 +888,7 @@ int busValueToTariff(const uint8_t* payload, int payload_length, const Dpt& data
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToLocale(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToLocale(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(datatype.mainGroup == 231 ? 4 : 2);
|
||||
if (!datatype.index || (datatype.mainGroup == 231 && datatype.index == 1))
|
||||
@ -901,7 +902,7 @@ int busValueToLocale(const uint8_t* payload, int payload_length, const Dpt& data
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToRGB(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToRGB(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(3);
|
||||
uint32_t rgb = unsigned16FromPayload(payload, 0) * 256 + unsigned8FromPayload(payload, 2);
|
||||
@ -911,7 +912,7 @@ int busValueToRGB(const uint8_t* payload, int payload_length, const Dpt& datatyp
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToFlaggedScaling(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToFlaggedScaling(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
switch (datatype.index)
|
||||
@ -926,7 +927,7 @@ int busValueToFlaggedScaling(const uint8_t* payload, int payload_length, const D
|
||||
return false;
|
||||
}
|
||||
|
||||
int busValueToActiveEnergy(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value)
|
||||
int busValueToActiveEnergy(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(6);
|
||||
switch (datatype.index)
|
||||
@ -948,13 +949,13 @@ int busValueToActiveEnergy(const uint8_t* payload, int payload_length, const Dpt
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
int valueToBusValueBinary(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueBinary(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
bitToPayload(payload, payload_length, 7, value);
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueBinaryControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueBinaryControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -971,7 +972,7 @@ int valueToBusValueBinaryControl(const KNXValue& value, uint8_t* payload, int pa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueStepControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueStepControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -992,7 +993,7 @@ int valueToBusValueStepControl(const KNXValue& value, uint8_t* payload, int payl
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueCharacter(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueCharacter(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((uint64_t)value < INT64_C(0) || (uint64_t)value > INT64_C(255) || (datatype.subGroup == 1 && (uint64_t)value > INT64_C(127)))
|
||||
return false;
|
||||
@ -1000,7 +1001,7 @@ int valueToBusValueCharacter(const KNXValue& value, uint8_t* payload, int payloa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueUnsigned8(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueUnsigned8(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(0))
|
||||
return false;
|
||||
@ -1039,7 +1040,7 @@ int valueToBusValueUnsigned8(const KNXValue& value, uint8_t* payload, int payloa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSigned8(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSigned8(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(-128) || (int64_t)value > INT64_C(127))
|
||||
return false;
|
||||
@ -1048,7 +1049,7 @@ int valueToBusValueSigned8(const KNXValue& value, uint8_t* payload, int payload_
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueStatusAndMode(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueStatusAndMode(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if (datatype.index < 5)
|
||||
bitToPayload(payload, payload_length, datatype.index, value);
|
||||
@ -1064,7 +1065,7 @@ int valueToBusValueStatusAndMode(const KNXValue& value, uint8_t* payload, int pa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueUnsigned16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueUnsigned16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(0) || (int64_t)value > INT64_C(65535))
|
||||
return false;
|
||||
@ -1073,7 +1074,7 @@ int valueToBusValueUnsigned16(const KNXValue& value, uint8_t* payload, int paylo
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
struct tm tmp = value;
|
||||
time_t timeSinceEpoch = mktime(&tmp);
|
||||
@ -1085,7 +1086,7 @@ int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, int paylo
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSigned16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSigned16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(-32768) || (int64_t)value > INT64_C(32767))
|
||||
return false;
|
||||
@ -1102,7 +1103,7 @@ int valueToBusValueSigned16(const KNXValue& value, uint8_t* payload, int payload
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueTimeDelta(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueTimeDelta(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
struct tm tmp = value;
|
||||
time_t timeSinceEpoch = mktime(&tmp);
|
||||
@ -1114,7 +1115,7 @@ int valueToBusValueTimeDelta(const KNXValue& value, uint8_t* payload, int payloa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueFloat16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueFloat16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
double numValue = value;
|
||||
|
||||
@ -1164,7 +1165,7 @@ int valueToBusValueFloat16(const KNXValue& value, uint8_t* payload, int payload_
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueTime(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueTime(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1191,7 +1192,7 @@ int valueToBusValueTime(const KNXValue& value, uint8_t* payload, int payload_len
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueDate(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueDate(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
struct tm tmp = value;
|
||||
if (tmp.tm_year < 1990 || tmp.tm_year > 2089)
|
||||
@ -1203,7 +1204,7 @@ int valueToBusValueDate(const KNXValue& value, uint8_t* payload, int payload_len
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueUnsigned32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueUnsigned32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(0) || (int64_t)value > INT64_C(4294967295))
|
||||
return false;
|
||||
@ -1212,7 +1213,7 @@ int valueToBusValueUnsigned32(const KNXValue& value, uint8_t* payload, int paylo
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSigned32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSigned32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(-2147483648) || (int64_t)value > INT64_C(2147483647))
|
||||
return false;
|
||||
@ -1221,7 +1222,7 @@ int valueToBusValueSigned32(const KNXValue& value, uint8_t* payload, int payload
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueLongTimePeriod(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueLongTimePeriod(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(-2147483648) || (int64_t)value > INT64_C(2147483647))
|
||||
return false;
|
||||
@ -1230,7 +1231,7 @@ int valueToBusValueLongTimePeriod(const KNXValue& value, uint8_t* payload, int p
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueFloat32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueFloat32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
double numValue = value;
|
||||
if (numValue < (-8388608.0 * pow(2, 255)) || numValue > (8388607.0 * pow(2, 255)))
|
||||
@ -1240,7 +1241,7 @@ int valueToBusValueFloat32(const KNXValue& value, uint8_t* payload, int payload_
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueAccess(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueAccess(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1273,13 +1274,18 @@ int valueToBusValueAccess(const KNXValue& value, uint8_t* payload, int payload_l
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueString(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueString(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
//TODO
|
||||
return false;
|
||||
const char* strValue = value;
|
||||
uint8_t val = strValue[0];
|
||||
for (int n = 0; n < 14; n++) {
|
||||
if (val) val = strValue[n]; //string terminator 0x00 will stop further assignments and init the remainig payload with zero
|
||||
unsigned8ToPayload(payload, payload_length, n, val, 0xff);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueScene(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueScene(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(0) || (int64_t)value > INT64_C(63))
|
||||
return false;
|
||||
@ -1288,7 +1294,7 @@ int valueToBusValueScene(const KNXValue& value, uint8_t* payload, int payload_le
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSceneControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSceneControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1309,7 +1315,7 @@ int valueToBusValueSceneControl(const KNXValue& value, uint8_t* payload, int pay
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSceneInfo(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSceneInfo(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1330,7 +1336,7 @@ int valueToBusValueSceneInfo(const KNXValue& value, uint8_t* payload, int payloa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSceneConfig(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSceneConfig(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1352,7 +1358,7 @@ int valueToBusValueSceneConfig(const KNXValue& value, uint8_t* payload, int payl
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueDateTime(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueDateTime(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1421,19 +1427,19 @@ int valueToBusValueDateTime(const KNXValue& value, uint8_t* payload, int payload
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueUnicode(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueUnicode(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
//TODO
|
||||
return false;
|
||||
}
|
||||
|
||||
int valueToBusValueSigned64(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSigned64(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
signed64ToPayload(payload, payload_length, 0, (int64_t)value, UINT64_C(0xFFFFFFFFFFFFFFFF));
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueAlarmInfo(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueAlarmInfo(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1479,7 +1485,7 @@ int valueToBusValueAlarmInfo(const KNXValue& value, uint8_t* payload, int payloa
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueSerialNumber(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueSerialNumber(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1506,7 +1512,7 @@ int valueToBusValueSerialNumber(const KNXValue& value, uint8_t* payload, int pay
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueVersion(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueVersion(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1539,7 +1545,7 @@ int valueToBusValueVersion(const KNXValue& value, uint8_t* payload, int payload_
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueScaling(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueScaling(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1566,7 +1572,7 @@ int valueToBusValueScaling(const KNXValue& value, uint8_t* payload, int payload_
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueTariff(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueTariff(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1593,7 +1599,7 @@ int valueToBusValueTariff(const KNXValue& value, uint8_t* payload, int payload_l
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueLocale(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueLocale(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
int strl = strlen(value);
|
||||
if (strl != 2)
|
||||
@ -1610,7 +1616,7 @@ int valueToBusValueLocale(const KNXValue& value, uint8_t* payload, int payload_l
|
||||
return false;
|
||||
}
|
||||
|
||||
int valueToBusValueRGB(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueRGB(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
if ((int64_t)value < INT64_C(0) || (int64_t)value > INT64_C(16777215))
|
||||
return false;
|
||||
@ -1622,7 +1628,7 @@ int valueToBusValueRGB(const KNXValue& value, uint8_t* payload, int payload_leng
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueFlaggedScaling(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueFlaggedScaling(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1644,7 +1650,7 @@ int valueToBusValueFlaggedScaling(const KNXValue& value, uint8_t* payload, int p
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueActiveEnergy(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype)
|
||||
int valueToBusValueActiveEnergy(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
switch (datatype.index)
|
||||
{
|
||||
@ -1740,34 +1746,34 @@ uint8_t bcdFromPayload(const uint8_t* payload, int index)
|
||||
return (uint8_t)((payload[index / 2] >> 4) & 0x0F);
|
||||
}
|
||||
|
||||
void bitToPayload(uint8_t* payload, int payload_length, int index, bool value)
|
||||
void bitToPayload(uint8_t* payload, size_t payload_length, int index, bool value)
|
||||
{
|
||||
ENSURE_PAYLOAD(index / 8 + 1);
|
||||
payload[index / 8] = (payload[index / 8] & ~(1 << (7 - (index % 8)))) | (value ? (1 << (7 - (index % 8))) : 0);
|
||||
}
|
||||
void unsigned8ToPayload(uint8_t* payload, int payload_length, int index, uint8_t value, uint8_t mask)
|
||||
void unsigned8ToPayload(uint8_t* payload, size_t payload_length, int index, uint8_t value, uint8_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 1);
|
||||
payload[index] = (payload[index] & ~mask) | (value & mask);
|
||||
}
|
||||
void signed8ToPayload(uint8_t* payload, int payload_length, int index, int8_t value, uint8_t mask)
|
||||
void signed8ToPayload(uint8_t* payload, size_t payload_length, int index, int8_t value, uint8_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 1);
|
||||
payload[index] = (payload[index] & ~mask) | (value & mask);
|
||||
}
|
||||
void unsigned16ToPayload(uint8_t* payload, int payload_length, int index, uint16_t value, uint16_t mask)
|
||||
void unsigned16ToPayload(uint8_t* payload, size_t payload_length, int index, uint16_t value, uint16_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 2);
|
||||
payload[index] = (payload[index] & (~mask >> 8)) | ((value >> 8) & (mask >> 8));
|
||||
payload[index + 1] = (payload[index + 1] & ~mask) | (value & mask);
|
||||
}
|
||||
void signed16ToPayload(uint8_t* payload, int payload_length, int index, int16_t value, uint16_t mask)
|
||||
void signed16ToPayload(uint8_t* payload, size_t payload_length, int index, int16_t value, uint16_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 2);
|
||||
payload[index] = (payload[index] & (~mask >> 8)) | ((value >> 8) & (mask >> 8));
|
||||
payload[index + 1] = (payload[index + 1] & ~mask) | (value & mask);
|
||||
}
|
||||
void unsigned32ToPayload(uint8_t* payload, int payload_length, int index, uint32_t value, uint32_t mask)
|
||||
void unsigned32ToPayload(uint8_t* payload, size_t payload_length, int index, uint32_t value, uint32_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 4);
|
||||
payload[index] = (payload[index] & (~mask >> 24)) | ((value >> 24) & (mask >> 24));
|
||||
@ -1775,7 +1781,7 @@ void unsigned32ToPayload(uint8_t* payload, int payload_length, int index, uint32
|
||||
payload[index + 2] = (payload[index + 2] & (~mask >> 8)) | ((value >> 8) & (mask >> 8));
|
||||
payload[index + 3] = (payload[index + 3] & ~mask) | (value & mask);
|
||||
}
|
||||
void signed32ToPayload(uint8_t* payload, int payload_length, int index, int32_t value, uint32_t mask)
|
||||
void signed32ToPayload(uint8_t* payload, size_t payload_length, int index, int32_t value, uint32_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 4);
|
||||
payload[index] = (payload[index] & (~mask >> 24)) | ((value >> 24) & (mask >> 24));
|
||||
@ -1784,7 +1790,7 @@ void signed32ToPayload(uint8_t* payload, int payload_length, int index, int32_t
|
||||
payload[index + 3] = (payload[index + 3] & ~mask) | (value & mask);
|
||||
}
|
||||
|
||||
void float16ToPayload(uint8_t* payload, int payload_length, int index, double value, uint16_t mask)
|
||||
void float16ToPayload(uint8_t* payload, size_t payload_length, int index, double value, uint16_t mask)
|
||||
{
|
||||
bool wasNegative = false;
|
||||
if (value < 0)
|
||||
@ -1804,15 +1810,17 @@ void float16ToPayload(uint8_t* payload, int payload_length, int index, double va
|
||||
if (wasNegative)
|
||||
mantissa *= -1;
|
||||
|
||||
println(mantissa);
|
||||
|
||||
signed16ToPayload(payload, payload_length, index, mantissa, mask);
|
||||
unsigned8ToPayload(payload, payload_length, index, exponent << 3, 0x78 & (mask >> 8));
|
||||
}
|
||||
void float32ToPayload(uint8_t* payload, int payload_length, int index, double value, uint32_t mask)
|
||||
void float32ToPayload(uint8_t* payload, size_t payload_length, int index, double value, uint32_t mask)
|
||||
{
|
||||
float num = value;
|
||||
unsigned32ToPayload(payload, payload_length, index, *((uint32_t*)&num), mask);
|
||||
}
|
||||
void signed64ToPayload(uint8_t* payload, int payload_length, int index, int64_t value, uint64_t mask)
|
||||
void signed64ToPayload(uint8_t* payload, size_t payload_length, int index, int64_t value, uint64_t mask)
|
||||
{
|
||||
ENSURE_PAYLOAD(index + 8);
|
||||
payload[index] = (payload[index] & (~mask >> 56)) | ((value >> 56) & (mask >> 56));
|
||||
@ -1824,7 +1832,7 @@ void signed64ToPayload(uint8_t* payload, int payload_length, int index, int64_t
|
||||
payload[index + 6] = (payload[index + 6] & (~mask >> 8)) | ((value >> 8) & (mask >> 8));
|
||||
payload[index + 7] = (payload[index + 7] & ~mask) | (value & mask);
|
||||
}
|
||||
void bcdToPayload(uint8_t* payload, int payload_length, int index, uint8_t value)
|
||||
void bcdToPayload(uint8_t* payload, size_t payload_length, int index, uint8_t value)
|
||||
{
|
||||
ENSURE_PAYLOAD(index / 2 + 1);
|
||||
if (index % 2)
|
||||
|
@ -36,88 +36,88 @@
|
||||
/**
|
||||
* Converts the KNX Payload given by the specific DPT and puts the value in the KNXValue struc
|
||||
*/
|
||||
int KNX_Decode_Value(uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int KNX_Decode_Value(uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
|
||||
/**
|
||||
* Converts the KNXValue struct to the KNX Payload as the specific DPT
|
||||
*/
|
||||
int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
|
||||
//KNX to internal
|
||||
int busValueToBinary(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToBinaryControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToStepControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToCharacter(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned8(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned8(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToStatusAndMode(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTimePeriod(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTimeDelta(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFloat16(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTime(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToDate(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToLongTimePeriod(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFloat32(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToAccess(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToString(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToScene(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneControl(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneInfo(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneConfig(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToDateTime(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnicode(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned64(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToAlarmInfo(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSerialNumber(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToVersion(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToScaling(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTariff(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToLocale(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToRGB(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFlaggedScaling(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToActiveEnergy(const uint8_t* payload, int payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToBinary(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToBinaryControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToStepControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToCharacter(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned8(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned8(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToStatusAndMode(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTimePeriod(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTimeDelta(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFloat16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTime(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToDate(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnsigned32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToLongTimePeriod(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFloat32(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToAccess(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToString(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToScene(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneControl(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneInfo(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSceneConfig(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToDateTime(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToUnicode(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSigned64(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToAlarmInfo(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToSerialNumber(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToVersion(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToScaling(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToTariff(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToLocale(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToRGB(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToFlaggedScaling(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
int busValueToActiveEnergy(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value);
|
||||
|
||||
//Internal to KNX
|
||||
int valueToBusValueBinary(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueBinaryControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueStepControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueCharacter(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned8(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned8(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueStatusAndMode(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTimeDelta(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFloat16(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTime(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueDate(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueLongTimePeriod(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFloat32(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueAccess(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueString(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueScene(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneControl(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneInfo(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneConfig(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueDateTime(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnicode(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned64(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueAlarmInfo(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSerialNumber(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueVersion(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueScaling(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTariff(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueLocale(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueRGB(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFlaggedScaling(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueActiveEnergy(const KNXValue& value, uint8_t* payload, int payload_length, const Dpt& datatype);
|
||||
int valueToBusValueBinary(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueBinaryControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueStepControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueCharacter(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned8(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned8(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueStatusAndMode(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTimeDelta(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFloat16(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTime(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueDate(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnsigned32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueLongTimePeriod(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFloat32(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueAccess(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueString(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueScene(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneControl(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneInfo(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSceneConfig(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueDateTime(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueUnicode(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSigned64(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueAlarmInfo(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueSerialNumber(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueVersion(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueScaling(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueTariff(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueLocale(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueRGB(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueFlaggedScaling(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
int valueToBusValueActiveEnergy(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype);
|
||||
|
||||
//Payload manipulation
|
||||
bool bitFromPayload(const uint8_t* payload, int index);
|
||||
@ -132,14 +132,14 @@ float float32FromPayload(const uint8_t* payload, int index);
|
||||
int64_t signed64FromPayload(const uint8_t* payload, int index);
|
||||
uint8_t bcdFromPayload(const uint8_t* payload, int index);
|
||||
|
||||
void bitToPayload(uint8_t* payload, int payload_length, int index, bool value);
|
||||
void unsigned8ToPayload(uint8_t* payload, int payload_length, int index, uint8_t value, uint8_t mask); //mask 0xFF
|
||||
void signed8ToPayload(uint8_t* payload, int payload_length, int index, int8_t value, uint8_t mask); //mask 0xFF
|
||||
void unsigned16ToPayload(uint8_t* payload, int payload_length, int index, uint16_t value, uint16_t mask); //mask 0xFFFF
|
||||
void signed16ToPayload(uint8_t* payload, int payload_length, int index, int16_t value, uint16_t mask); //mask 0xFFFF
|
||||
void unsigned32ToPayload(uint8_t* payload, int payload_length, int index, uint32_t value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void signed32ToPayload(uint8_t* payload, int payload_length, int index, int32_t value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void float16ToPayload(uint8_t* payload, int payload_length, int index, double value, uint16_t mask); //mask = 0xFFFF
|
||||
void float32ToPayload(uint8_t* payload, int payload_length, int index, double value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void signed64ToPayload(uint8_t* payload, int payload_length, int index, int64_t value, uint64_t mask); //mask = UINT64_C(0xFFFFFFFFFFFFFFFF)
|
||||
void bcdToPayload(uint8_t* payload, int payload_length, int index, uint8_t value);
|
||||
void bitToPayload(uint8_t* payload, size_t payload_length, int index, bool value);
|
||||
void unsigned8ToPayload(uint8_t* payload, size_t payload_length, int index, uint8_t value, uint8_t mask); //mask 0xFF
|
||||
void signed8ToPayload(uint8_t* payload, size_t payload_length, int index, int8_t value, uint8_t mask); //mask 0xFF
|
||||
void unsigned16ToPayload(uint8_t* payload, size_t payload_length, int index, uint16_t value, uint16_t mask); //mask 0xFFFF
|
||||
void signed16ToPayload(uint8_t* payload, size_t payload_length, int index, int16_t value, uint16_t mask); //mask 0xFFFF
|
||||
void unsigned32ToPayload(uint8_t* payload, size_t payload_length, int index, uint32_t value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void signed32ToPayload(uint8_t* payload, size_t payload_length, int index, int32_t value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void float16ToPayload(uint8_t* payload, size_t payload_length, int index, double value, uint16_t mask); //mask = 0xFFFF
|
||||
void float32ToPayload(uint8_t* payload, size_t payload_length, int index, double value, uint32_t mask); //mask = 0xFFFFFFFF
|
||||
void signed64ToPayload(uint8_t* payload, size_t payload_length, int index, int64_t value, uint64_t mask); //mask = UINT64_C(0xFFFFFFFFFFFFFFFF)
|
||||
void bcdToPayload(uint8_t* payload, size_t payload_length, int index, uint8_t value);
|
@ -35,7 +35,7 @@ bool IpDataLinkLayer::sendFrame(CemiFrame& frame)
|
||||
|
||||
bool success = sendBytes(buffer, length);
|
||||
// only send 50 packet per second: see KNX 3.2.6 p.6
|
||||
_platform.mdelay(20);
|
||||
delay(20);
|
||||
dataConReceived(frame, success);
|
||||
delete[] buffer;
|
||||
return success;
|
||||
|
@ -532,6 +532,8 @@ struct tm KNXValue::timeValue() const
|
||||
|
||||
KNXValue::KNXValue(float value)
|
||||
{
|
||||
_value.doubleValue = value;
|
||||
_type = DoubleType;
|
||||
}
|
||||
|
||||
KNXValue& KNXValue::operator=(const float value)
|
||||
|
@ -13,10 +13,8 @@ class Platform
|
||||
virtual uint32_t currentDefaultGateway() = 0;
|
||||
virtual void macAddress(uint8_t* data) = 0;
|
||||
|
||||
virtual uint32_t millis() = 0;
|
||||
virtual void restart() = 0;
|
||||
virtual void fatalError() = 0;
|
||||
virtual void mdelay(uint32_t millis) = 0;
|
||||
|
||||
virtual void setupMultiCast(uint32_t addr, uint16_t port) = 0;
|
||||
virtual void closeMultiCast() = 0;
|
||||
|
@ -115,13 +115,13 @@ void TpUartDataLinkLayer::loop()
|
||||
if (sendSingleFrameByte() == false)
|
||||
{
|
||||
_waitConfirm = true;
|
||||
_waitConfirmStartTime = _platform.millis();
|
||||
_waitConfirmStartTime = millis();
|
||||
_loopState = IDLE;
|
||||
}
|
||||
break;
|
||||
case RX_FIRST_BYTE:
|
||||
rxByte = _platform.readUart();
|
||||
_lastByteRxTime = _platform.millis();
|
||||
_lastByteRxTime = millis();
|
||||
_RxByteCnt = 0;
|
||||
_xorSum = 0;
|
||||
if ((rxByte & L_DATA_MASK) == L_DATA_STANDARD_IND)
|
||||
@ -208,7 +208,7 @@ void TpUartDataLinkLayer::loop()
|
||||
_loopState = IDLE;
|
||||
break;
|
||||
case RX_L_DATA:
|
||||
if (_platform.millis() - _lastByteRxTime > BYTE_TIMEOUT)
|
||||
if (millis() - _lastByteRxTime > BYTE_TIMEOUT)
|
||||
{
|
||||
_RxByteCnt = 0;
|
||||
_loopState = IDLE;
|
||||
@ -217,7 +217,7 @@ void TpUartDataLinkLayer::loop()
|
||||
}
|
||||
if (!_platform.uartAvailable())
|
||||
break;
|
||||
_lastByteRxTime = _platform.millis();
|
||||
_lastByteRxTime = millis();
|
||||
rxByte = _platform.readUart();
|
||||
|
||||
if (_RxByteCnt == MAX_KNX_TELEGRAM_SIZE)
|
||||
@ -314,7 +314,7 @@ void TpUartDataLinkLayer::loop()
|
||||
if (!_platform.uartAvailable())
|
||||
break;
|
||||
rxByte = _platform.readUart();
|
||||
_lastByteRxTime = _platform.millis();
|
||||
_lastByteRxTime = millis();
|
||||
if ((rxByte & L_DATA_CON_MASK) == L_DATA_CON)
|
||||
{
|
||||
//println("L_DATA_CON received");
|
||||
@ -343,7 +343,7 @@ void TpUartDataLinkLayer::loop()
|
||||
|
||||
if (_waitConfirm)
|
||||
{
|
||||
if (_platform.millis() - _waitConfirmStartTime > CONFIRM_TIMEOUT)
|
||||
if (millis() - _waitConfirmStartTime > CONFIRM_TIMEOUT)
|
||||
{
|
||||
println("L_DATA_CON not received within expected time");
|
||||
uint8_t cemiBuffer[MAX_KNX_TELEGRAM_SIZE];
|
||||
@ -374,13 +374,13 @@ bool TpUartDataLinkLayer::resetChip()
|
||||
{
|
||||
uint8_t cmd = U_RESET_REQ;
|
||||
_platform.writeUart(cmd);
|
||||
_waitConfirmStartTime = _platform.millis();
|
||||
_waitConfirmStartTime = millis();
|
||||
while (true)
|
||||
{
|
||||
int resp = _platform.readUart();
|
||||
if (resp == U_RESET_IND)
|
||||
return true;
|
||||
else if (_platform.millis() - _waitConfirmStartTime > RESET_TIMEOUT)
|
||||
else if (millis() - _waitConfirmStartTime > RESET_TIMEOUT)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -4,10 +4,11 @@
|
||||
#include "network_layer.h"
|
||||
#include "application_layer.h"
|
||||
#include "platform.h"
|
||||
#include "bits.h"
|
||||
#include <stdio.h>
|
||||
|
||||
TransportLayer::TransportLayer(ApplicationLayer& layer, AddressTableObject& gat, Platform& platform): _savedFrame(0),
|
||||
_savedFrameConnecting(0), _applicationLayer(layer), _groupAddressTable(gat), _platform(platform)
|
||||
TransportLayer::TransportLayer(ApplicationLayer& layer, AddressTableObject& gat): _savedFrame(0),
|
||||
_savedFrameConnecting(0), _applicationLayer(layer), _groupAddressTable(gat)
|
||||
{
|
||||
_currentState = Closed;
|
||||
}
|
||||
@ -528,13 +529,13 @@ void TransportLayer::ackTimeoutIndication()
|
||||
|
||||
void TransportLayer::loop()
|
||||
{
|
||||
uint32_t millis = _platform.millis();
|
||||
if (_connectionTimeoutEnabled
|
||||
&& (millis - _connectionTimeoutStartMillis) > _connectionTimeoutMillis)
|
||||
uint32_t milliseconds = millis();
|
||||
if (_connectionTimeoutEnabled
|
||||
&& (milliseconds - _connectionTimeoutStartMillis) > _connectionTimeoutMillis)
|
||||
connectionTimeoutIndication();
|
||||
|
||||
if (_ackTimeoutEnabled
|
||||
&& (millis - _ackTimeoutStartMillis) > _ackTimeoutMillis)
|
||||
&& (milliseconds - _ackTimeoutStartMillis) > _ackTimeoutMillis)
|
||||
ackTimeoutIndication();
|
||||
|
||||
if (_savedConnectingValid)
|
||||
@ -665,6 +666,7 @@ void TransportLayer::A12(uint16_t destination, Priority priority)
|
||||
CemiFrame frame(0);
|
||||
TPDU& tpdu = frame.tpdu();
|
||||
tpdu.type(Connect);
|
||||
_networkLayer->dataIndividualRequest(AckRequested, destination, NetworkLayerParameter, priority, tpdu);
|
||||
_seqNoRecv = 0;
|
||||
_seqNoSend = 0;
|
||||
enableConnectionTimeout();
|
||||
@ -696,7 +698,7 @@ void TransportLayer::A15(Priority priority, uint16_t tsap)
|
||||
|
||||
void TransportLayer::enableConnectionTimeout()
|
||||
{
|
||||
_connectionTimeoutStartMillis = _platform.millis();
|
||||
_connectionTimeoutStartMillis = millis();
|
||||
_connectionTimeoutEnabled = true;
|
||||
}
|
||||
|
||||
@ -707,7 +709,7 @@ void TransportLayer::disableConnectionTimeout()
|
||||
|
||||
void TransportLayer::enableAckTimeout()
|
||||
{
|
||||
_ackTimeoutStartMillis = _platform.millis();
|
||||
_ackTimeoutStartMillis = millis();
|
||||
_ackTimeoutEnabled = true;
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ enum StateType { Closed, OpenIdle, OpenWait, Connecting };
|
||||
class TransportLayer
|
||||
{
|
||||
public:
|
||||
TransportLayer(ApplicationLayer& layer, AddressTableObject& gat, Platform& platform);
|
||||
TransportLayer(ApplicationLayer& layer, AddressTableObject& gat);
|
||||
void networkLayer(NetworkLayer& layer);
|
||||
|
||||
#pragma region from network layer
|
||||
@ -114,5 +114,4 @@ private:
|
||||
ApplicationLayer& _applicationLayer;
|
||||
AddressTableObject& _groupAddressTable;
|
||||
NetworkLayer* _networkLayer;
|
||||
Platform& _platform;
|
||||
};
|
||||
|
@ -3,227 +3,20 @@
|
||||
#include "knx/bits.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
SamdPlatform platform;
|
||||
Bau07B0 bau(platform);
|
||||
KnxFacade<SamdPlatform, Bau07B0> knx;
|
||||
#define ICACHE_RAM_ATTR
|
||||
#elif ARDUINO_ARCH_ESP8266
|
||||
EspPlatform platform;
|
||||
Bau57B0 bau(platform);
|
||||
#elif __linux__ //linux
|
||||
// noops on linux
|
||||
#define digitalWrite(a, b)
|
||||
#define pinMode(a, b)
|
||||
#define attachInterrupt(a, b, c)
|
||||
KnxFacade<EspPlatform, Bau57B0> knx;
|
||||
#elif ARDUINO_ARCH_ESP32
|
||||
//KnxFacade<Esp32Platform, Bau57B0> knx;
|
||||
KnxFacade<Esp32Platform, Bau57B0> knx;
|
||||
#elif __linux__
|
||||
#define ICACHE_RAM_ATTR
|
||||
#endif
|
||||
|
||||
bool _toogleProgMode = false;
|
||||
#ifndef __linux__
|
||||
KnxFacade knx(bau);
|
||||
ICACHE_RAM_ATTR void buttonUp()
|
||||
ICACHE_RAM_ATTR void buttonUp()
|
||||
{
|
||||
_toogleProgMode = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
KnxFacade::KnxFacade(BauSystemB &bau) : _bau(bau)
|
||||
{
|
||||
manufacturerId(0xfa);
|
||||
_bau.addSaveRestore(this);
|
||||
}
|
||||
|
||||
bool KnxFacade::enabled()
|
||||
{
|
||||
return _bau.enabled();
|
||||
}
|
||||
|
||||
void KnxFacade::enabled(bool value)
|
||||
{
|
||||
_bau.enabled(true);
|
||||
}
|
||||
|
||||
bool KnxFacade::progMode()
|
||||
{
|
||||
return _bau.deviceObject().progMode();
|
||||
}
|
||||
|
||||
void KnxFacade::progMode(bool value)
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
println("progmode on");
|
||||
digitalWrite(knx.ledPin(), _ledPinActiveOn);
|
||||
}
|
||||
else
|
||||
{
|
||||
println("progmode off");
|
||||
digitalWrite(knx.ledPin(), HIGH - _ledPinActiveOn);
|
||||
}
|
||||
|
||||
_bau.deviceObject().progMode(value);
|
||||
}
|
||||
|
||||
bool KnxFacade::configured()
|
||||
{
|
||||
return _bau.configured();
|
||||
}
|
||||
|
||||
uint32_t KnxFacade::ledPinActiveOn()
|
||||
{
|
||||
return _ledPinActiveOn;
|
||||
}
|
||||
|
||||
void KnxFacade::ledPinActiveOn(uint32_t value)
|
||||
{
|
||||
_ledPinActiveOn = value;
|
||||
}
|
||||
|
||||
uint32_t KnxFacade::ledPin()
|
||||
{
|
||||
return _ledPin;
|
||||
}
|
||||
|
||||
void KnxFacade::ledPin(uint32_t value)
|
||||
{
|
||||
_ledPin = value;
|
||||
}
|
||||
|
||||
uint32_t KnxFacade::buttonPin()
|
||||
{
|
||||
return _buttonPin;
|
||||
}
|
||||
|
||||
void KnxFacade::buttonPin(uint32_t value)
|
||||
{
|
||||
_buttonPin = value;
|
||||
}
|
||||
|
||||
void KnxFacade::readMemory()
|
||||
{
|
||||
_bau.readMemory();
|
||||
}
|
||||
|
||||
void KnxFacade::writeMemory()
|
||||
{
|
||||
_bau.writeMemory();
|
||||
}
|
||||
|
||||
void KnxFacade::loop()
|
||||
{
|
||||
if(_toogleProgMode)
|
||||
{
|
||||
progMode(!progMode());
|
||||
_toogleProgMode = false;
|
||||
}
|
||||
_bau.loop();
|
||||
}
|
||||
|
||||
void KnxFacade::manufacturerId(uint16_t value)
|
||||
{
|
||||
_bau.deviceObject().manufacturerId(value);
|
||||
}
|
||||
|
||||
void KnxFacade::bauNumber(uint32_t value)
|
||||
{
|
||||
_bau.deviceObject().bauNumber(value);
|
||||
}
|
||||
|
||||
uint16_t KnxFacade::induvidualAddress()
|
||||
{
|
||||
return _bau.deviceObject().induvidualAddress();
|
||||
}
|
||||
|
||||
void KnxFacade::orderNumber(const char *value)
|
||||
{
|
||||
_bau.deviceObject().orderNumber(value);
|
||||
}
|
||||
|
||||
void KnxFacade::hardwareType(uint8_t *value)
|
||||
{
|
||||
_bau.deviceObject().hardwareType(value);
|
||||
}
|
||||
|
||||
void KnxFacade::version(uint16_t value)
|
||||
{
|
||||
_bau.deviceObject().version(value);
|
||||
}
|
||||
|
||||
void KnxFacade::start()
|
||||
{
|
||||
pinMode(_ledPin, OUTPUT);
|
||||
|
||||
digitalWrite(_ledPin, HIGH - _ledPinActiveOn);
|
||||
|
||||
pinMode(_buttonPin, INPUT_PULLUP);
|
||||
|
||||
attachInterrupt(_buttonPin, buttonUp, RISING);
|
||||
enabled(true);
|
||||
}
|
||||
|
||||
uint8_t *KnxFacade::paramData(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return nullptr;
|
||||
|
||||
return _bau.parameters().data(addr);
|
||||
}
|
||||
|
||||
uint8_t KnxFacade::paramByte(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getByte(addr);
|
||||
}
|
||||
|
||||
uint16_t KnxFacade::paramWord(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getWord(addr);
|
||||
}
|
||||
|
||||
uint32_t KnxFacade::paramInt(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getInt(addr);
|
||||
}
|
||||
|
||||
void KnxFacade::setSaveCallback(saveRestoreCallback func)
|
||||
{
|
||||
_saveCallback = func;
|
||||
}
|
||||
|
||||
void KnxFacade::setRestoreCallback(saveRestoreCallback func)
|
||||
{
|
||||
_restoreCallback = func;
|
||||
}
|
||||
|
||||
uint8_t *KnxFacade::save(uint8_t *buffer)
|
||||
{
|
||||
if (_saveCallback != 0)
|
||||
return _saveCallback(buffer);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
uint8_t *KnxFacade::restore(uint8_t *buffer)
|
||||
{
|
||||
if (_restoreCallback != 0)
|
||||
return _restoreCallback(buffer);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
GroupObject &KnxFacade::getGroupObject(uint16_t goNr)
|
||||
{
|
||||
return _bau.groupObjectTable().get(goNr);
|
||||
}
|
||||
|
||||
|
||||
void KnxFacade::restart(uint16_t individualAddress)
|
||||
{
|
||||
_bau.restartRequest(individualAddress);
|
||||
}
|
||||
#ifndef __linux__
|
||||
knx._toogleProgMode = true;
|
||||
#endif
|
||||
}
|
289
src/knx_facade.h
289
src/knx_facade.h
@ -1,76 +1,285 @@
|
||||
#pragma once
|
||||
|
||||
#include "knx/bits.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
#include "samd_platform.h"
|
||||
#include "knx/bau07B0.h"
|
||||
#elif ARDUINO_ARCH_ESP8266
|
||||
#include "esp_platform.h"
|
||||
#include "knx/bau57B0.h"
|
||||
#elif ARDUINO_ARCH_ESP32
|
||||
#define LED_BUILTIN 13
|
||||
#include "esp32_platform.h"
|
||||
#include "knx/bau57B0.h"
|
||||
#else
|
||||
#include "linux_platform.h"
|
||||
#include "knx/bau57B0.h"
|
||||
#define LED_BUILTIN 0
|
||||
#define HIGH 1
|
||||
#define LOW 0
|
||||
#endif
|
||||
|
||||
|
||||
void buttonUp();
|
||||
typedef uint8_t* (*saveRestoreCallback)(uint8_t* buffer);
|
||||
|
||||
class KnxFacade : private SaveRestore
|
||||
template <class P, class B> class KnxFacade : private SaveRestore
|
||||
{
|
||||
public:
|
||||
KnxFacade(BauSystemB& bau);
|
||||
bool enabled();
|
||||
void enabled(bool value);
|
||||
bool progMode();
|
||||
void progMode(bool value);
|
||||
bool configured();
|
||||
friend void buttonUp();
|
||||
|
||||
public:
|
||||
KnxFacade() : _platformPtr(new P()), _bauPtr(new B(*_platformPtr)), _bau(*_bauPtr)
|
||||
{}
|
||||
|
||||
virtual ~KnxFacade()
|
||||
{
|
||||
if (_bauPtr)
|
||||
delete _bauPtr;
|
||||
|
||||
if (_platformPtr)
|
||||
delete _platformPtr;
|
||||
}
|
||||
|
||||
KnxFacade(B& bau) : _bau(bau)
|
||||
{
|
||||
manufacturerId(0xfa);
|
||||
_bau.addSaveRestore(this);
|
||||
}
|
||||
|
||||
P& platform()
|
||||
{
|
||||
return *_platformPtr;
|
||||
}
|
||||
|
||||
B& bau()
|
||||
{
|
||||
return _bau;
|
||||
}
|
||||
|
||||
bool enabled()
|
||||
{
|
||||
return _bau.enabled();
|
||||
}
|
||||
|
||||
void enabled(bool value)
|
||||
{
|
||||
_bau.enabled(true);
|
||||
}
|
||||
|
||||
bool progMode()
|
||||
{
|
||||
return _bau.deviceObject().progMode();
|
||||
}
|
||||
|
||||
void progMode(bool value)
|
||||
{
|
||||
_bau.deviceObject().progMode(value);
|
||||
}
|
||||
|
||||
bool configured()
|
||||
{
|
||||
return _bau.configured();
|
||||
}
|
||||
|
||||
/**
|
||||
* returns HIGH if led is active on HIGH, LOW otherwise
|
||||
*/
|
||||
uint32_t ledPinActiveOn();
|
||||
uint32_t ledPinActiveOn()
|
||||
{
|
||||
return _ledPinActiveOn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets if the programming led is active on HIGH or LOW.
|
||||
*
|
||||
* Set to HIGH for GPIO--RESISTOR--LED--GND or to LOW for GPIO--LED--RESISTOR--VDD
|
||||
*/
|
||||
void ledPinActiveOn(uint32_t value);
|
||||
uint32_t ledPin();
|
||||
void ledPin(uint32_t value);
|
||||
uint32_t buttonPin();
|
||||
void buttonPin(uint32_t value);
|
||||
void readMemory();
|
||||
void writeMemory();
|
||||
uint16_t induvidualAddress();
|
||||
void loop();
|
||||
void manufacturerId(uint16_t value);
|
||||
void bauNumber(uint32_t value);
|
||||
void orderNumber(const char* value);
|
||||
void hardwareType(uint8_t* value);
|
||||
void version(uint16_t value);
|
||||
void start();
|
||||
void setSaveCallback(saveRestoreCallback func);
|
||||
void setRestoreCallback(saveRestoreCallback func);
|
||||
uint8_t* paramData(uint32_t addr);
|
||||
uint8_t paramByte(uint32_t addr);
|
||||
uint16_t paramWord(uint32_t addr);
|
||||
uint32_t paramInt(uint32_t addr);
|
||||
GroupObject& getGroupObject(uint16_t goNr);
|
||||
void restart(uint16_t individualAddress);
|
||||
void ledPinActiveOn(uint32_t value)
|
||||
{
|
||||
_ledPinActiveOn = value;
|
||||
}
|
||||
|
||||
uint32_t ledPin()
|
||||
{
|
||||
return _ledPin;
|
||||
}
|
||||
|
||||
void ledPin(uint32_t value)
|
||||
{
|
||||
_ledPin = value;
|
||||
}
|
||||
|
||||
uint32_t buttonPin()
|
||||
{
|
||||
return _buttonPin;
|
||||
}
|
||||
|
||||
void buttonPin(uint32_t value)
|
||||
{
|
||||
_buttonPin = value;
|
||||
}
|
||||
|
||||
void readMemory()
|
||||
{
|
||||
_bau.readMemory();
|
||||
}
|
||||
|
||||
void writeMemory()
|
||||
{
|
||||
_bau.writeMemory();
|
||||
}
|
||||
|
||||
uint16_t induvidualAddress()
|
||||
{
|
||||
return _bau.deviceObject().induvidualAddress();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
if (progMode() != _progLedState)
|
||||
{
|
||||
_progLedState = progMode();
|
||||
if (_progLedState)
|
||||
{
|
||||
println("progmode on");
|
||||
digitalWrite(ledPin(), _ledPinActiveOn);
|
||||
}
|
||||
else
|
||||
{
|
||||
println("progmode off");
|
||||
digitalWrite(ledPin(), HIGH - _ledPinActiveOn);
|
||||
}
|
||||
}
|
||||
if (_toogleProgMode)
|
||||
{
|
||||
progMode(!progMode());
|
||||
_toogleProgMode = false;
|
||||
}
|
||||
_bau.loop();
|
||||
}
|
||||
|
||||
void manufacturerId(uint16_t value)
|
||||
{
|
||||
_bau.deviceObject().manufacturerId(value);
|
||||
}
|
||||
|
||||
void bauNumber(uint32_t value)
|
||||
{
|
||||
_bau.deviceObject().bauNumber(value);
|
||||
}
|
||||
|
||||
void orderNumber(const char* value)
|
||||
{
|
||||
_bau.deviceObject().orderNumber(value);
|
||||
}
|
||||
|
||||
void hardwareType(uint8_t* value)
|
||||
{
|
||||
_bau.deviceObject().hardwareType(value);
|
||||
}
|
||||
|
||||
void version(uint16_t value)
|
||||
{
|
||||
_bau.deviceObject().version(value);
|
||||
}
|
||||
|
||||
void start()
|
||||
{
|
||||
pinMode(_ledPin, OUTPUT);
|
||||
|
||||
digitalWrite(_ledPin, HIGH - _ledPinActiveOn);
|
||||
|
||||
pinMode(_buttonPin, INPUT_PULLUP);
|
||||
|
||||
attachInterrupt(_buttonPin, buttonUp, RISING);
|
||||
enabled(true);
|
||||
}
|
||||
|
||||
void setSaveCallback(saveRestoreCallback func)
|
||||
{
|
||||
_saveCallback = func;
|
||||
}
|
||||
|
||||
void setRestoreCallback(saveRestoreCallback func)
|
||||
{
|
||||
_restoreCallback = func;
|
||||
}
|
||||
|
||||
uint8_t* paramData(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return nullptr;
|
||||
|
||||
return _bau.parameters().data(addr);
|
||||
}
|
||||
|
||||
uint8_t paramByte(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getByte(addr);
|
||||
}
|
||||
|
||||
uint16_t paramWord(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getWord(addr);
|
||||
}
|
||||
|
||||
uint32_t paramInt(uint32_t addr)
|
||||
{
|
||||
if (!_bau.configured())
|
||||
return 0;
|
||||
|
||||
return _bau.parameters().getInt(addr);
|
||||
}
|
||||
|
||||
GroupObject& getGroupObject(uint16_t goNr)
|
||||
{
|
||||
return _bau.groupObjectTable().get(goNr);
|
||||
}
|
||||
|
||||
void restart(uint16_t individualAddress)
|
||||
{
|
||||
_bau.restartRequest(individualAddress);
|
||||
}
|
||||
|
||||
private:
|
||||
BauSystemB& _bau;
|
||||
P* _platformPtr = 0;
|
||||
B* _bauPtr = 0;
|
||||
B& _bau;
|
||||
uint32_t _ledPinActiveOn = LOW;
|
||||
uint32_t _ledPin = LED_BUILTIN;
|
||||
uint32_t _buttonPin = 0;
|
||||
saveRestoreCallback _saveCallback = 0;
|
||||
saveRestoreCallback _restoreCallback = 0;
|
||||
bool _toogleProgMode = false;
|
||||
bool _progLedState = false;
|
||||
|
||||
uint8_t* save(uint8_t* buffer);
|
||||
uint8_t* restore(uint8_t* buffer);
|
||||
uint8_t* save(uint8_t* buffer)
|
||||
{
|
||||
if (_saveCallback != 0)
|
||||
return _saveCallback(buffer);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
uint8_t* restore(uint8_t* buffer)
|
||||
{
|
||||
if (_restoreCallback != 0)
|
||||
return _restoreCallback(buffer);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
};
|
||||
|
||||
#ifndef __linux__
|
||||
extern KnxFacade knx;
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
extern KnxFacade<SamdPlatform, Bau07B0> knx;
|
||||
#elif ARDUINO_ARCH_ESP8266
|
||||
extern KnxFacade<EspPlatform, Bau57B0> knx;
|
||||
#elif ARDUINO_ARCH_ESP32
|
||||
extern KnxFacade<Esp32Platform, Bau57B0> knx;
|
||||
#elif __linux__
|
||||
// no predefined global instance
|
||||
#endif
|
@ -29,13 +29,10 @@
|
||||
|
||||
#define MAX_MEM 4096
|
||||
|
||||
LinuxPlatform::LinuxPlatform(int argc, char** argv)
|
||||
LinuxPlatform::LinuxPlatform()
|
||||
{
|
||||
Platform::_memoryReference = (uint8_t*)malloc(MAX_MEM);
|
||||
_currentMaxMem = Platform::_memoryReference;
|
||||
_args = new char*[argc + 1];
|
||||
memcpy(_args, argv, argc * sizeof(char*));
|
||||
_args[argc] = 0;
|
||||
}
|
||||
|
||||
LinuxPlatform::~LinuxPlatform()
|
||||
@ -58,7 +55,7 @@ uint32_t LinuxPlatform::currentDefaultGateway()
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t LinuxPlatform::millis()
|
||||
uint32_t millis()
|
||||
{
|
||||
struct timespec spec;
|
||||
|
||||
@ -66,7 +63,7 @@ uint32_t LinuxPlatform::millis()
|
||||
return spec.tv_sec * 1000 + round(spec.tv_nsec / 1.0e6);
|
||||
}
|
||||
|
||||
void LinuxPlatform::mdelay(uint32_t millis)
|
||||
void delay(uint32_t millis)
|
||||
{
|
||||
struct timespec ts;
|
||||
ts.tv_sec = millis / 1000;
|
||||
@ -500,4 +497,26 @@ void println(void)
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void pinMode(uint32_t dwPin, uint32_t dwMode)
|
||||
{
|
||||
}
|
||||
|
||||
void digitalWrite(uint32_t dwPin, uint32_t dwVal)
|
||||
{
|
||||
}
|
||||
|
||||
typedef void (*voidFuncPtr)(void);
|
||||
void attachInterrupt(uint32_t pin, voidFuncPtr callback, uint32_t mode)
|
||||
{
|
||||
}
|
||||
|
||||
void LinuxPlatform::cmdLineArgs(int argc, char** argv)
|
||||
{
|
||||
if (_args)
|
||||
delete[] _args;
|
||||
|
||||
_args = new char*[argc + 1];
|
||||
memcpy(_args, argv, argc * sizeof(char*));
|
||||
_args[argc] = 0;
|
||||
}
|
||||
#endif
|
@ -10,9 +10,11 @@ class LinuxPlatform: public Platform
|
||||
using Platform::_memoryReference;
|
||||
using Platform::memoryReference;
|
||||
public:
|
||||
LinuxPlatform(int argc, char** argv);
|
||||
LinuxPlatform();
|
||||
virtual ~LinuxPlatform();
|
||||
|
||||
void cmdLineArgs(int argc, char** argv);
|
||||
|
||||
std::string flashFilePath();
|
||||
void flashFilePath(const std::string path);
|
||||
|
||||
@ -23,8 +25,6 @@ public:
|
||||
void macAddress(uint8_t* addr) override;
|
||||
|
||||
// basic stuff
|
||||
uint32_t millis() override;
|
||||
void mdelay(uint32_t millis) override;
|
||||
void restart() override;
|
||||
void fatalError() override;
|
||||
|
||||
|
@ -6,41 +6,12 @@
|
||||
#include <Arduino.h>
|
||||
#include <FlashAsEEPROM.h>
|
||||
|
||||
SamdPlatform::SamdPlatform()
|
||||
SamdPlatform::SamdPlatform() : ArduinoPlatform(Serial1)
|
||||
{
|
||||
}
|
||||
|
||||
uint32_t SamdPlatform::currentIpAddress()
|
||||
SamdPlatform::SamdPlatform( HardwareSerial& s) : ArduinoPlatform(s)
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t SamdPlatform::currentSubnetMask()
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t SamdPlatform::currentDefaultGateway()
|
||||
{
|
||||
// not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SamdPlatform::macAddress(uint8_t * addr)
|
||||
{
|
||||
// not needed
|
||||
}
|
||||
|
||||
uint32_t SamdPlatform::millis()
|
||||
{
|
||||
return::millis();
|
||||
}
|
||||
|
||||
void SamdPlatform::mdelay(uint32_t millis)
|
||||
{
|
||||
delay(millis);
|
||||
}
|
||||
|
||||
void SamdPlatform::restart()
|
||||
@ -49,39 +20,6 @@ void SamdPlatform::restart()
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
void SamdPlatform::fatalError()
|
||||
{
|
||||
const int period = 200;
|
||||
while (true)
|
||||
{
|
||||
if ((millis() % period) > (period / 2))
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
else
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
void SamdPlatform::setupMultiCast(uint32_t addr, uint16_t port)
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
void SamdPlatform::closeMultiCast()
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
bool SamdPlatform::sendBytes(uint8_t * buffer, uint16_t len)
|
||||
{
|
||||
//not needed
|
||||
}
|
||||
|
||||
int SamdPlatform::readBytes(uint8_t * buffer, uint16_t maxLen)
|
||||
{
|
||||
//not needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t * SamdPlatform::getEepromBuffer(uint16_t size)
|
||||
{
|
||||
//EEPROM.begin(size);
|
||||
@ -95,196 +33,6 @@ void SamdPlatform::commitToEeprom()
|
||||
{
|
||||
EEPROM.commit();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void SamdPlatform::setupUart()
|
||||
{
|
||||
SerialKNX.begin(19200, SERIAL_8E1);
|
||||
while (!SerialKNX)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
void SamdPlatform::closeUart()
|
||||
{
|
||||
SerialKNX.end();
|
||||
}
|
||||
|
||||
|
||||
int SamdPlatform::uartAvailable()
|
||||
{
|
||||
return SerialKNX.available();
|
||||
}
|
||||
|
||||
|
||||
size_t SamdPlatform::writeUart(const uint8_t data)
|
||||
{
|
||||
//printHex("<p", &data, 1);
|
||||
return SerialKNX.write(data);
|
||||
}
|
||||
|
||||
|
||||
size_t SamdPlatform::writeUart(const uint8_t *buffer, size_t size)
|
||||
{
|
||||
//printHex("<p", buffer, size);
|
||||
return SerialKNX.write(buffer, size);
|
||||
}
|
||||
|
||||
|
||||
int SamdPlatform::readUart()
|
||||
{
|
||||
int val = SerialKNX.read();
|
||||
//if(val > 0)
|
||||
// printHex("p>", (uint8_t*)&val, 1);
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
size_t SamdPlatform::readBytesUart(uint8_t *buffer, size_t length)
|
||||
{
|
||||
size_t toRead = length;
|
||||
uint8_t* pos = buffer;
|
||||
while (toRead > 0)
|
||||
{
|
||||
size_t val = SerialKNX.readBytes(pos, toRead);
|
||||
pos += val;
|
||||
toRead -= val;
|
||||
}
|
||||
//printHex("p>", buffer, length);
|
||||
return length;
|
||||
}
|
||||
|
||||
void print(const char* s)
|
||||
{
|
||||
SerialDBG.print(s);
|
||||
}
|
||||
void print(char c)
|
||||
{
|
||||
SerialDBG.print(c);
|
||||
}
|
||||
|
||||
void print(unsigned char num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned char num, int base)
|
||||
{
|
||||
SerialDBG.print(num, base);
|
||||
}
|
||||
|
||||
void print(int num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void print(int num, int base)
|
||||
{
|
||||
SerialDBG.print(num, base);
|
||||
}
|
||||
|
||||
void print(unsigned int num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned int num, int base)
|
||||
{
|
||||
SerialDBG.print(num, base);
|
||||
}
|
||||
|
||||
void print(long num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void print(long num, int base)
|
||||
{
|
||||
SerialDBG.print(num, base);
|
||||
}
|
||||
|
||||
void print(unsigned long num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void print(unsigned long num, int base)
|
||||
{
|
||||
SerialDBG.print(num, base);
|
||||
}
|
||||
|
||||
void print(double num)
|
||||
{
|
||||
SerialDBG.print(num);
|
||||
}
|
||||
|
||||
void println(const char* s)
|
||||
{
|
||||
SerialDBG.println(s);
|
||||
}
|
||||
|
||||
void println(char c)
|
||||
{
|
||||
SerialDBG.println(c);
|
||||
}
|
||||
|
||||
void println(unsigned char num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned char num, int base)
|
||||
{
|
||||
SerialDBG.println(num, base);
|
||||
}
|
||||
|
||||
void println(int num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(int num, int base)
|
||||
{
|
||||
SerialDBG.println(num, base);
|
||||
}
|
||||
|
||||
void println(unsigned int num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned int num, int base)
|
||||
{
|
||||
SerialDBG.println(num, base);
|
||||
}
|
||||
|
||||
void println(long num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(long num, int base)
|
||||
{
|
||||
SerialDBG.println(num, base);
|
||||
}
|
||||
|
||||
void println(unsigned long num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(unsigned long num, int base)
|
||||
{
|
||||
SerialDBG.println(num, base);
|
||||
}
|
||||
|
||||
void println(double num)
|
||||
{
|
||||
SerialDBG.println(num);
|
||||
}
|
||||
|
||||
void println(void)
|
||||
{
|
||||
SerialDBG.println();
|
||||
}
|
||||
#endif
|
@ -1,50 +1,20 @@
|
||||
#include "knx/platform.h"
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
|
||||
#define SerialDBG SerialUSB
|
||||
#define SerialKNX Serial1
|
||||
|
||||
class SamdPlatform : public Platform
|
||||
{
|
||||
public:
|
||||
SamdPlatform();
|
||||
|
||||
// ip stuff
|
||||
uint32_t currentIpAddress();
|
||||
uint32_t currentSubnetMask();
|
||||
uint32_t currentDefaultGateway();
|
||||
void macAddress(uint8_t* addr);
|
||||
|
||||
// basic stuff
|
||||
uint32_t millis();
|
||||
void mdelay(uint32_t millis);
|
||||
void restart();
|
||||
void fatalError();
|
||||
|
||||
//multicast
|
||||
void setupMultiCast(uint32_t addr, uint16_t port);
|
||||
void closeMultiCast();
|
||||
bool sendBytes(uint8_t* buffer, uint16_t len);
|
||||
int readBytes(uint8_t* buffer, uint16_t maxLen);
|
||||
|
||||
//uart
|
||||
virtual void setupUart();
|
||||
virtual void closeUart();
|
||||
virtual int uartAvailable();
|
||||
virtual size_t writeUart(const uint8_t data);
|
||||
virtual size_t writeUart(const uint8_t *buffer, size_t size);
|
||||
virtual int readUart();
|
||||
virtual size_t readBytesUart(uint8_t *buffer, size_t length);
|
||||
#include "arduino_platform.h"
|
||||
|
||||
//memory
|
||||
#include "Arduino.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_SAMD
|
||||
|
||||
#define SerialDBG SerialUSB
|
||||
|
||||
class SamdPlatform : public ArduinoPlatform
|
||||
{
|
||||
public:
|
||||
SamdPlatform();
|
||||
SamdPlatform( HardwareSerial& s);
|
||||
|
||||
void restart();
|
||||
uint8_t* getEepromBuffer(uint16_t size);
|
||||
void commitToEeprom();
|
||||
private:
|
||||
uint32_t _mulitcastAddr;
|
||||
uint16_t _mulitcastPort;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
#endif
|
@ -45,7 +45,7 @@
|
||||
</CustomDebug>
|
||||
<DeviceTerminalSettings>
|
||||
<Connection xsi:type="com.sysprogs.terminal.connection.serial">
|
||||
<ComPortName>COM5</ComPortName>
|
||||
<ComPortName>COM4</ComPortName>
|
||||
<AdvancedSettings>
|
||||
<BaudRate>115200</BaudRate>
|
||||
<DataBits>8</DataBits>
|
||||
@ -272,63 +272,6 @@
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>Arduino_Genuino_Zero_(Native_USB_Port)</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>arduino:samd:arduino_zero_native</BoardID>
|
||||
<Properties>
|
||||
<Entries />
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
</Configurations>
|
||||
<ProgramArgumentsSuggestions />
|
||||
</VisualGDBProjectSettings2>
|
@ -173,69 +173,6 @@
|
||||
</CodeAnalyzerSettings>
|
||||
</CodeSense>
|
||||
<Configurations>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>Arduino Genuino Zero (Native USB Port)</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>
|
||||
<ID>gdbsim</ID>
|
||||
<Configuration>
|
||||
<Entries />
|
||||
</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>arduino:samd:arduino_zero_native</BoardID>
|
||||
<COMPort>COM11</COMPort>
|
||||
<Properties>
|
||||
<Entries />
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>NodeMCU_1 0_(ESP-12E_Module)</PlatformName>
|
||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||
@ -334,6 +271,153 @@
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>Arduino_Genuino_Zero_(Native_USB_Port)</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>arduino:samd:arduino_zero_native</BoardID>
|
||||
<Properties>
|
||||
<Entries />
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>ESP32_Dev_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>esp32:esp32:esp32</BoardID>
|
||||
<Properties>
|
||||
<Entries>
|
||||
<KeyValue>
|
||||
<Key>PSRAM</Key>
|
||||
<Value>disabled</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>PartitionScheme</Key>
|
||||
<Value>default</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>CPUFreq</Key>
|
||||
<Value>240</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>FlashMode</Key>
|
||||
<Value>qio</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>FlashFreq</Key>
|
||||
<Value>80</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>FlashSize</Key>
|
||||
<Value>4M</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>UploadSpeed</Key>
|
||||
<Value>921600</Value>
|
||||
</KeyValue>
|
||||
<KeyValue>
|
||||
<Key>DebugLevel</Key>
|
||||
<Value>none</Value>
|
||||
</KeyValue>
|
||||
</Entries>
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
</Configurations>
|
||||
<ProgramArgumentsSuggestions />
|
||||
</VisualGDBProjectSettings2>
|
@ -25,8 +25,10 @@
|
||||
<AdditionalLibraryDirectories>
|
||||
<string>..\..</string>
|
||||
</AdditionalLibraryDirectories>
|
||||
<IgnoreNormalLibraryDirectories>false</IgnoreNormalLibraryDirectories>
|
||||
<OutputSubdirectory>Output\$(PlatformName.defuse)\$(ConfigurationName.defuse)</OutputSubdirectory>
|
||||
<EnableVerboseBuild>true</EnableVerboseBuild>
|
||||
<PreprocessorMacros />
|
||||
</Build>
|
||||
<CustomBuild>
|
||||
<PreSyncActions />
|
||||
@ -171,69 +173,6 @@
|
||||
</CodeAnalyzerSettings>
|
||||
</CodeSense>
|
||||
<Configurations>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>Arduino Genuino Zero (Native USB Port)</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>
|
||||
<ID>gdbsim</ID>
|
||||
<Configuration>
|
||||
<Entries />
|
||||
</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>arduino:samd:arduino_zero_native</BoardID>
|
||||
<COMPort>COM11</COMPort>
|
||||
<Properties>
|
||||
<Entries />
|
||||
</Properties>
|
||||
<DebugUnoptimizedComponentTypes>Sketch</DebugUnoptimizedComponentTypes>
|
||||
</BuildSettingsExtension>
|
||||
</VisualGDBConfiguration>
|
||||
<VisualGDBConfiguration>
|
||||
<PlatformName>NodeMCU 1 0 (ESP-12E Module)</PlatformName>
|
||||
<DebugSettingsOverride xsi:type="com.visualgdb.debug.embedded">
|
||||
|
@ -17,125 +17,123 @@ EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Arduino_Genuino_Zero_(Native_USB_Port) = Debug|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
Debug|ESP32_Dev_Module = Debug|ESP32_Dev_Module
|
||||
Debug|Mixed = Debug|Mixed
|
||||
Debug|NodeMCU_1 0_(ESP-12E_Module) = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
Debug|VisualGDB = Debug|VisualGDB
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port) = MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
MinSizeRel|ESP32_Dev_Module = MinSizeRel|ESP32_Dev_Module
|
||||
MinSizeRel|Mixed = MinSizeRel|Mixed
|
||||
MinSizeRel|NodeMCU_1 0_(ESP-12E_Module) = MinSizeRel|NodeMCU_1 0_(ESP-12E_Module)
|
||||
MinSizeRel|VisualGDB = MinSizeRel|VisualGDB
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
MinSizeRel|x86 = MinSizeRel|x86
|
||||
Release|Arduino_Genuino_Zero_(Native_USB_Port) = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
Release|ESP32_Dev_Module = Release|ESP32_Dev_Module
|
||||
Release|Mixed = Release|Mixed
|
||||
Release|NodeMCU_1 0_(ESP-12E_Module) = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
Release|VisualGDB = Release|VisualGDB
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port) = RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
RelWithDebInfo|ESP32_Dev_Module = RelWithDebInfo|ESP32_Dev_Module
|
||||
RelWithDebInfo|Mixed = RelWithDebInfo|Mixed
|
||||
RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module) = RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module)
|
||||
RelWithDebInfo|VisualGDB = RelWithDebInfo|VisualGDB
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
RelWithDebInfo|x86 = RelWithDebInfo|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Debug|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|Mixed.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|VisualGDB.Build.0 = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|x64.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Debug|x86.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|VisualGDB.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x64.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.MinSizeRel|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.Release|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|VisualGDB.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|x64.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{58AFEECD-06E2-4BB7-A13F-E1D5DBAED13F}.RelWithDebInfo|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{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|Mixed.ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.Build.0 = 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|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|VisualGDB.Build.0 = 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|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.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|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|Mixed.ActiveCfg = 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|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|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.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|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)
|
||||
{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|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Debug|Arduino_Genuino_Zero_(Native_USB_Port)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|ESP32_Dev_Module.Build.0 = Debug|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|Mixed.Build.0 = Release|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 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Debug|x64.Build.0 = Release|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}.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|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.MinSizeRel|Mixed.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}.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|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.Release|Mixed.ActiveCfg = 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}.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|ESP32_Dev_Module.ActiveCfg = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|ESP32_Dev_Module
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{6165CD6A-91A4-49FA-977A-48F22086CA8E}.RelWithDebInfo|Mixed.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)
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Mixed.ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|Mixed.Build.0 = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|VisualGDB.ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Debug|x86.Build.0 = Debug|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Mixed.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|Mixed.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|VisualGDB.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|VisualGDB.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|x64.ActiveCfg = Release|Win32
|
||||
@ -143,55 +141,55 @@ Global
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|x86.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.MinSizeRel|x86.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|Mixed.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|VisualGDB.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|x64.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|x86.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.Release|x86.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Mixed.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|Mixed.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|VisualGDB.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x64.Build.0 = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x86.ActiveCfg = Release|Win32
|
||||
{68FCB2F7-7A74-43A0-8CBE-36CB25020584}.RelWithDebInfo|x86.Build.0 = Release|Win32
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Mixed.ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|Mixed.Build.0 = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|VisualGDB.ActiveCfg = Debug|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|x64.ActiveCfg = Debug|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Debug|x86.ActiveCfg = Debug|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|VisualGDB.Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x64.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x64.Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x86.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.MinSizeRel|x86.Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|x64.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.Release|x86.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Arduino Genuino Zero (Native USB Port)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU 1 0 (ESP-12E Module)
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|VisualGDB.Build.0 = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|x64.ActiveCfg = Release|Generic ESP8266 Module
|
||||
@ -199,18 +197,17 @@ Global
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|x86.ActiveCfg = Release|Generic ESP8266 Module
|
||||
{3DB3061B-09A3-4C8B-A197-CBEEB3336437}.RelWithDebInfo|x86.Build.0 = Release|Generic ESP8266 Module
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|Mixed.ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|VisualGDB.ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Debug|x86.Build.0 = Debug|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Mixed.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|Mixed.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|VisualGDB.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|VisualGDB.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|x64.ActiveCfg = Release|Win32
|
||||
@ -218,18 +215,18 @@ Global
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|x86.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.MinSizeRel|x86.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|Mixed.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|VisualGDB.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|x64.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|x86.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.Release|x86.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Mixed.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|Mixed.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|VisualGDB.Build.0 = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|x64.ActiveCfg = Release|Win32
|
||||
@ -237,18 +234,17 @@ Global
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|x86.ActiveCfg = Release|Win32
|
||||
{456D87B3-1DFE-4724-BDEF-17E0FDB55A61}.RelWithDebInfo|x86.Build.0 = Release|Win32
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|ESP32_Dev_Module.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|Mixed.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|VisualGDB.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|x64.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Debug|x86.ActiveCfg = Debug|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|VisualGDB.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
@ -256,18 +252,17 @@ Global
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.MinSizeRel|x86.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.Release|x86.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Arduino_Genuino_Zero_(Native_USB_Port).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|ESP32_Dev_Module.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|ESP32_Dev_Module.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Mixed.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|Mixed.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|NodeMCU_1 0_(ESP-12E_Module).Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|VisualGDB.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|VisualGDB.Build.0 = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
{3F71AE50-5D11-46D0-918F-1C97717824B0}.RelWithDebInfo|x64.ActiveCfg = Release|NodeMCU_1 0_(ESP-12E_Module)
|
||||
|
Loading…
Reference in New Issue
Block a user