@@ -18,18 +18,6 @@ namespace Knx
18
18
{
19
19
if (payload_length > 0 )
20
20
{
21
- // DPT 8.001/8.010/8.011 - Signed 16 Bit Integer
22
- if (datatype.mainGroup == 8 && (datatype.subGroup == 1 || datatype.subGroup == 10 || datatype.subGroup == 11 ) && !datatype.index )
23
- return busValueToSigned16 (payload, payload_length, datatype, value);
24
-
25
- // DPT 8.002-DPT 8.007 - Time Delta
26
- if (datatype.mainGroup == 8 && datatype.subGroup >= 2 && datatype.subGroup <= 7 && !datatype.index )
27
- return busValueToTimeDelta (payload, payload_length, datatype, value);
28
-
29
- // DPT 10.* - Time and Weekday
30
- if (datatype.mainGroup == 10 && datatype.subGroup == 1 && datatype.index <= 1 )
31
- return busValueToTime (payload, payload_length, datatype, value);
32
-
33
21
// DPT 11.* - Date
34
22
if (datatype.mainGroup == 11 && datatype.subGroup == 1 && !datatype.index )
35
23
return busValueToDate (payload, payload_length, datatype, value);
@@ -140,18 +128,6 @@ namespace Knx
140
128
141
129
int KNX_Encode_Value (const KNXValue& value, uint8_t * payload, size_t payload_length, const Dpt& datatype)
142
130
{
143
- // DPT 8.001/8.010/8.011 - Signed 16 Bit Integer
144
- if (datatype.mainGroup == 8 && (datatype.subGroup == 1 || datatype.subGroup == 10 || datatype.subGroup == 11 ) && !datatype.index )
145
- return valueToBusValueSigned16 (value, payload, payload_length, datatype);
146
-
147
- // DPT 8.002-DPT 8.007 - Time Delta
148
- if (datatype.mainGroup == 8 && datatype.subGroup >= 2 && datatype.subGroup <= 7 && !datatype.index )
149
- return valueToBusValueTimeDelta (value, payload, payload_length, datatype);
150
-
151
- // DPT 10.* - Time and Weekday
152
- if (datatype.mainGroup == 10 && datatype.subGroup == 1 && datatype.index <= 1 )
153
- return valueToBusValueTime (value, payload, payload_length, datatype);
154
-
155
131
// DPT 11.* - Date
156
132
if (datatype.mainGroup == 11 && datatype.subGroup == 1 && !datatype.index )
157
133
return valueToBusValueDate (value, payload, payload_length, datatype);
@@ -259,63 +235,6 @@ namespace Knx
259
235
return false ;
260
236
}
261
237
262
- int busValueToSigned16 (const uint8_t * payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
263
- {
264
- ASSERT_PAYLOAD (2 );
265
-
266
- if (datatype.subGroup == 10 )
267
- {
268
- value = signed16FromPayload (payload, 0 ) / 100.0 ;
269
- return true ;
270
- }
271
-
272
- value = signed16FromPayload (payload, 0 );
273
- return true ;
274
- }
275
-
276
- int busValueToTimeDelta (const uint8_t * payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
277
- {
278
- ASSERT_PAYLOAD (2 );
279
-
280
- int64_t duration = signed16FromPayload (payload, 0 );
281
- value = duration;
282
- return true ;
283
- }
284
-
285
-
286
- int busValueToTime (const uint8_t * payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
287
- {
288
- ASSERT_PAYLOAD (3 );
289
-
290
- switch (datatype.index )
291
- {
292
- case 0 :
293
- value = (uint8_t )((unsigned8FromPayload (payload, 0 ) >> 5 ) & 0x07 );
294
- return true ;
295
-
296
- case 1 :
297
- {
298
- unsigned char hours = unsigned8FromPayload (payload, 0 ) & 0x1F ;
299
- unsigned char weekDay = (unsigned8FromPayload (payload, 0 ) & 0xE0 ) >> 5 ;
300
- unsigned char minutes = unsigned8FromPayload (payload, 1 ) & 0x3F ;
301
- unsigned char seconds = unsigned8FromPayload (payload, 2 ) & 0x3F ;
302
-
303
- if (hours > 23 || minutes > 59 || seconds > 59 )
304
- return false ;
305
-
306
- struct tm tmp = {0 };
307
- tmp.tm_hour = hours;
308
- tmp.tm_wday = weekDay;
309
- tmp.tm_min = minutes;
310
- tmp.tm_sec = seconds;
311
- value = tmp;
312
- return true ;
313
- }
314
- }
315
-
316
- return false ;
317
- }
318
-
319
238
int busValueToDate (const uint8_t * payload, size_t payload_length, const Dpt& datatype, KNXValue& value)
320
239
{
321
240
ASSERT_PAYLOAD (3 );
@@ -797,68 +716,6 @@ namespace Knx
797
716
798
717
// -------------------------------------------------------------------------------------------------------------------------------------
799
718
800
- int valueToBusValueSigned16 (const KNXValue& value, uint8_t * payload, size_t payload_length, const Dpt& datatype)
801
- {
802
- if ((int64_t )value < INT64_C (-32768 ) || (int64_t )value > INT64_C (32767 ))
803
- return false ;
804
-
805
- if (datatype.subGroup == 10 )
806
- {
807
- if ((double )value < -327.68 || (double )value > 327.67 )
808
- return false ;
809
-
810
- signed16ToPayload (payload, 0 , (int16_t )((double )value * 100.0 ), 0xFFFF );
811
- }
812
- else
813
- signed16ToPayload (payload, 0 , (uint64_t )value, 0xffff );
814
-
815
- return true ;
816
- }
817
-
818
- int valueToBusValueTimeDelta (const KNXValue& value, uint8_t * payload, size_t payload_length, const Dpt& datatype)
819
- {
820
- struct tm tmp = value;
821
- time_t timeSinceEpoch = mktime (&tmp);
822
-
823
- if (timeSinceEpoch < INT64_C (-32768 ) || timeSinceEpoch > INT64_C (32767 ))
824
- return false ;
825
-
826
- signed16ToPayload (payload, 0 , timeSinceEpoch, 0xFFFF );
827
- return true ;
828
- }
829
-
830
-
831
-
832
- int valueToBusValueTime (const KNXValue& value, uint8_t * payload, size_t payload_length, const Dpt& datatype)
833
- {
834
- switch (datatype.index )
835
- {
836
- case 0 :
837
- {
838
- if ((int64_t )value < INT64_C (0 ) || (int64_t )value > INT64_C (7 ))
839
- return false ;
840
-
841
- ENSURE_PAYLOAD (3 );
842
- unsigned8ToPayload (payload, 0 , (uint64_t )value << 5 , 0xE0 );
843
- break ;
844
- }
845
-
846
- case 1 :
847
- {
848
- struct tm tmp = value;
849
- unsigned8ToPayload (payload, 0 , tmp.tm_hour , 0x1F );
850
- unsigned8ToPayload (payload, 1 , tmp.tm_min , 0x3F );
851
- unsigned8ToPayload (payload, 2 , tmp.tm_sec , 0x3F );
852
- break ;
853
- }
854
-
855
- default :
856
- return false ;
857
- }
858
-
859
- return true ;
860
- }
861
-
862
719
int valueToBusValueDate (const KNXValue& value, uint8_t * payload, size_t payload_length, const Dpt& datatype)
863
720
{
864
721
struct tm tmp = value;
0 commit comments