mirror of
https://github.com/thelsing/knx.git
synced 2026-05-01 23:07:33 +02:00
update pybind11, reimplement dpt7
This commit is contained in:
@@ -50,6 +50,8 @@ set(SOURCES
|
||||
./knx/group_object/dpt/dpt5.h
|
||||
./knx/group_object/dpt/dpt6.cpp
|
||||
./knx/group_object/dpt/dpt6.h
|
||||
./knx/group_object/dpt/dpt7.cpp
|
||||
./knx/group_object/dpt/dpt7.h
|
||||
./knx/group_object/dpt/dpt9.cpp
|
||||
./knx/group_object/dpt/dpt9.h
|
||||
./knx/group_object/dpt/dptconvert.cpp
|
||||
|
||||
@@ -3,17 +3,6 @@
|
||||
#include "../group_object.h"
|
||||
namespace Knx
|
||||
{
|
||||
#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)
|
||||
|
||||
@@ -18,14 +18,6 @@ namespace Knx
|
||||
{
|
||||
if (payload_length > 0)
|
||||
{
|
||||
// DPT 7.001/7.010/7.011/7.012/7.013/7.600 - Unsigned 16 Bit Integer
|
||||
if (datatype.mainGroup == 7 && (datatype.subGroup == 1 || (datatype.subGroup >= 10 && datatype.subGroup <= 13) || (datatype.subGroup == 600)) && !datatype.index)
|
||||
return busValueToUnsigned16(payload, payload_length, datatype, value);
|
||||
|
||||
// DPT 7.002-DPT 7.007 - Time Period
|
||||
if (datatype.mainGroup == 7 && datatype.subGroup >= 2 && datatype.subGroup <= 7 && !datatype.index)
|
||||
return busValueToTimePeriod(payload, payload_length, datatype, value);
|
||||
|
||||
// DPT 8.001/8.010/8.011 - Signed 16 Bit Integer
|
||||
if (datatype.mainGroup == 8 && (datatype.subGroup == 1 || datatype.subGroup == 10 || datatype.subGroup == 11) && !datatype.index)
|
||||
return busValueToSigned16(payload, payload_length, datatype, value);
|
||||
@@ -148,14 +140,6 @@ namespace Knx
|
||||
|
||||
int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
// DPT 7.001/7.010/7.011/7.012/7.013/7.600 - Unsigned 16 Bit Integer
|
||||
if (datatype.mainGroup == 7 && (datatype.subGroup == 1 || (datatype.subGroup >= 10 && datatype.subGroup <= 13) || datatype.subGroup == 600) && !datatype.index)
|
||||
return valueToBusValueUnsigned16(value, payload, payload_length, datatype);
|
||||
|
||||
// DPT 7.002-DPT 7.007 - Time Period
|
||||
if (datatype.mainGroup == 7 && datatype.subGroup >= 2 && datatype.subGroup <= 7 && !datatype.index)
|
||||
return valueToBusValueTimePeriod(value, payload, payload_length, datatype);
|
||||
|
||||
// DPT 8.001/8.010/8.011 - Signed 16 Bit Integer
|
||||
if (datatype.mainGroup == 8 && (datatype.subGroup == 1 || datatype.subGroup == 10 || datatype.subGroup == 11) && !datatype.index)
|
||||
return valueToBusValueSigned16(value, payload, payload_length, datatype);
|
||||
@@ -275,22 +259,6 @@ namespace Knx
|
||||
return false;
|
||||
}
|
||||
|
||||
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, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
|
||||
int64_t duration = unsigned16FromPayload(payload, 0);
|
||||
value = duration;
|
||||
return true;
|
||||
}
|
||||
|
||||
int busValueToSigned16(const uint8_t* payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
|
||||
{
|
||||
ASSERT_PAYLOAD(2);
|
||||
@@ -829,27 +797,6 @@ namespace Knx
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
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;
|
||||
|
||||
unsigned16ToPayload(payload, 0, (uint64_t)value, 0xFFFF);
|
||||
return true;
|
||||
}
|
||||
|
||||
int valueToBusValueTimePeriod(const KNXValue& value, uint8_t* payload, size_t payload_length, const Dpt& datatype)
|
||||
{
|
||||
struct tm tmp = value;
|
||||
time_t timeSinceEpoch = mktime(&tmp);
|
||||
|
||||
if (timeSinceEpoch < INT64_C(0) || timeSinceEpoch > INT64_C(65535))
|
||||
return false;
|
||||
|
||||
unsigned16ToPayload(payload, 0, timeSinceEpoch, 0xFFFF);
|
||||
return true;
|
||||
}
|
||||
|
||||
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))
|
||||
|
||||
@@ -6,4 +6,5 @@
|
||||
#include "dpt4.h"
|
||||
#include "dpt5.h"
|
||||
#include "dpt6.h"
|
||||
#include "dpt7.h"
|
||||
#include "dpt9.h"
|
||||
Reference in New Issue
Block a user