@Test
void testDpt1() {
- // for now only the DPTs for general use, others omitted
- // TODO add tests for more subtypes
-
helper("1.001", new byte[] { 0 }, OnOffType.OFF);
helper("1.001", new byte[] { 1 }, OnOffType.ON);
+ helper("1.001", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.001", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.002", new byte[] { 0 }, OnOffType.OFF);
helper("1.002", new byte[] { 1 }, OnOffType.ON);
+ helper("1.002", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.002", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.003", new byte[] { 0 }, OnOffType.OFF);
helper("1.003", new byte[] { 1 }, OnOffType.ON);
-
+ helper("1.003", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.003", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.004", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.004", new byte[] { 1 }, OnOffType.ON);
+ helper("1.004", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.004", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.005", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.005", new byte[] { 1 }, OnOffType.ON);
+ helper("1.005", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.005", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.006", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.006", new byte[] { 1 }, OnOffType.ON);
+ helper("1.006", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.006", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.007", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.007", new byte[] { 1 }, OnOffType.ON);
+ helper("1.007", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.007", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.008", new byte[] { 0 }, UpDownType.UP);
helper("1.008", new byte[] { 1 }, UpDownType.DOWN);
// NOTE: This is how DPT 1.009 is defined: 0: open, 1: closed
// For historical reasons it is defined the other way on OH
+ helper("1.009", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.009", new byte[] { 1 }, OnOffType.ON);
helper("1.009", new byte[] { 0 }, OpenClosedType.CLOSED);
helper("1.009", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.010", new byte[] { 0 }, StopMoveType.STOP);
helper("1.010", new byte[] { 1 }, StopMoveType.MOVE);
-
+ helper("1.011", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.011", new byte[] { 1 }, OnOffType.ON);
+ helper("1.011", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.011", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.012", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.012", new byte[] { 1 }, OnOffType.ON);
+ helper("1.012", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.012", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.013", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.013", new byte[] { 1 }, OnOffType.ON);
+ helper("1.013", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.013", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.014", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.014", new byte[] { 1 }, OnOffType.ON);
+ helper("1.014", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.014", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.015", new byte[] { 0 }, OnOffType.OFF);
helper("1.015", new byte[] { 1 }, OnOffType.ON);
+ helper("1.015", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.015", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.016", new byte[] { 0 }, OnOffType.OFF);
helper("1.016", new byte[] { 1 }, OnOffType.ON);
+ helper("1.016", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.016", new byte[] { 1 }, OpenClosedType.OPEN);
// DPT 1.017 is a special case, "trigger" has no "value", both 0 and 1 shall trigger
helper("1.017", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.017", new byte[] { 0 }, OpenClosedType.CLOSED);
// Calimero maps it always to 0
// helper("1.017", new byte[] { 1 }, OnOffType.ON);
helper("1.018", new byte[] { 0 }, OnOffType.OFF);
helper("1.018", new byte[] { 1 }, OnOffType.ON);
+ helper("1.018", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.018", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.019", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.019", new byte[] { 1 }, OnOffType.ON);
helper("1.019", new byte[] { 0 }, OpenClosedType.CLOSED);
helper("1.019", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.021", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.021", new byte[] { 1 }, OnOffType.ON);
+ helper("1.021", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.021", new byte[] { 1 }, OpenClosedType.OPEN);
+ // DPT 1.022 is mapped to decimal, Calimero does not follow the recommendation
+ // from KNX spec to add offset 1
+ helper("1.022", new byte[] { 0 }, DecimalType.valueOf("0"));
+ helper("1.022", new byte[] { 1 }, DecimalType.valueOf("1"));
+ helper("1.023", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.023", new byte[] { 1 }, OnOffType.ON);
+ helper("1.023", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.023", new byte[] { 1 }, OpenClosedType.OPEN);
helper("1.024", new byte[] { 0 }, OnOffType.OFF);
helper("1.024", new byte[] { 1 }, OnOffType.ON);
+ helper("1.024", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.024", new byte[] { 1 }, OpenClosedType.OPEN);
+
+ helper("1.100", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.100", new byte[] { 1 }, OnOffType.ON);
+ helper("1.100", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.100", new byte[] { 1 }, OpenClosedType.OPEN);
+
+ helper("1.1200", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.1200", new byte[] { 1 }, OnOffType.ON);
+ helper("1.1200", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.1200", new byte[] { 1 }, OpenClosedType.OPEN);
+ helper("1.1201", new byte[] { 0 }, OnOffType.OFF);
+ helper("1.1201", new byte[] { 1 }, OnOffType.ON);
+ helper("1.1201", new byte[] { 0 }, OpenClosedType.CLOSED);
+ helper("1.1201", new byte[] { 1 }, OpenClosedType.OPEN);
}
@Test