Skip to content

Commit 4d5dbd1

Browse files
committed
minior fixes Evo Home
1 parent 126421c commit 4d5dbd1

File tree

5 files changed

+69
-22
lines changed

5 files changed

+69
-22
lines changed

de.ibapl.fhz4j.parser.cul/src/main/java/de/ibapl/fhz4j/parser/cul/CulParser.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
import de.ibapl.fhz4j.protocol.em.EmMessage;
4343
import de.ibapl.fhz4j.protocol.evohome.EvoHomeMessage;
4444
import de.ibapl.fhz4j.protocol.fht.AbstractFhtMessage;
45-
import de.ibapl.fhz4j.protocol.fht.FhtMessage;
4645
import de.ibapl.fhz4j.protocol.fht.Fht80TfMessage;
46+
import de.ibapl.fhz4j.protocol.fht.FhtMessage;
4747
import de.ibapl.fhz4j.protocol.fs20.FS20Message;
4848
import de.ibapl.fhz4j.protocol.hms.HmsMessage;
4949
import de.ibapl.fhz4j.protocol.lacrosse.tx2.LaCrosseTx2Message;
@@ -344,8 +344,13 @@ public void parse(char c) {
344344
} else {
345345
initParser(emParser);
346346
state = State.PARSER_PARSING;
347-
firstNibble = digit2Byte(c);
348-
isFirstNibble = false;
347+
try {
348+
firstNibble = digit2Byte(c);
349+
isFirstNibble = false;
350+
} catch (IllegalArgumentException iae) {
351+
LOG.log(Level.SEVERE, "In state {0} for CUL unexpected parser error", state);
352+
state = State.IDLE;
353+
}
349354
}
350355
}
351356
case CUL_EO_PARSED -> {

de.ibapl.fhz4j.parser.cul/src/main/java/de/ibapl/fhz4j/parser/evohome/EvoHomeParser.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -993,8 +993,10 @@ private void buildMessage() {
993993
state = State.COLLECT_SINGLE_VALUE;
994994
}
995995
case RESPONSE, INFORMATION -> {
996-
//TODO allow multiple of 6
997-
checkLength(0x06, remainingDataLength, "ZoneConfigPayLoadMessage");
996+
//must be a multiple of 6
997+
if ((remainingDataLength % 6) != 0) {
998+
checkLength(0x06 * (remainingDataLength / 6), remainingDataLength, "ZoneConfigPayLoadMessage");
999+
}
9981000
evoHomeMessage = new ZoneConfigPayloadMessage(evoHomeMsgType, evoHomeMsgParam0);
9991001
zonesParamParser.init(remainingDataLength);
10001002
state = State.PARSE_ZONE_CONFIG_ELEMENTS;

de.ibapl.fhz4j.parser.cul/src/test/java/de/ibapl/fhz4j/evohome/EvoHomeMessageTest.java

+44-4
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ private void decode(String s) {
429429
}
430430

431431
@Test
432-
public void decode_EvoHome_0xXX_0x0004_0x02_ZoneNameRequestMessage() {
432+
public void decode_EvoHome_0x0C_0x0004_0x02_ZoneNameRequestMessage() {
433433
decode("0C 114977 067AEC 0004 02 0000");
434434
assertZoneNameRequestMessage((ZoneNameRequestMessage) evoHomeMessage, 0x114977, 0x067AEC, (byte) 0x00);
435435
decode("0C 131589 067AEC 0004 02 01 00");
@@ -530,14 +530,17 @@ public void decode_EvoHome_0x18_0x0009_0x03_RelayFailsaveInformationMessage() {
530530
@Test
531531
public void decode_EvoHome_0x18_0x000A_0x06_ZoneConfigPayloadMessage() {
532532
decode("18 067AEC 067AEC 000A 06 00 10 01F4 0DAC");
533+
534+
List<ZoneConfigPayloadMessage.ZoneParams> zoneParams = new LinkedList<>();
535+
533536
ZoneConfigPayloadMessage.ZoneParams zoneParam = new ZoneConfigPayloadMessage.ZoneParams();
534537
zoneParam.zoneId = 0;
535538
zoneParam.windowFunction = true;
536539
zoneParam.operationLock = false;
537540
zoneParam.minTemperature = new BigDecimal("5");
538541
zoneParam.maxTemperature = new BigDecimal("35");
539-
List<ZoneConfigPayloadMessage.ZoneParams> zoneParams = new LinkedList<>();
540542
zoneParams.add(zoneParam);
543+
541544
assert_0x000A_ZoneConfigPayloadMessage((ZoneConfigPayloadMessage) evoHomeMessage, 0x067AEC, 0x067AEC,
542545
zoneParams);
543546
}
@@ -828,16 +831,19 @@ public void decode_EvoHome_0x3C_0x0004_0x16() {
828831
}
829832

830833
@Test
831-
public void decode_EvoHome_0x3C_0x000A() {
834+
public void decode_EvoHome_0x3C_0x000A_0x06_ZoneConfigPayloadMessage() {
832835
decode("3C 067AEC 895E5D 000A 06 00 10 01F4 0DAC");
836+
837+
List<ZoneConfigPayloadMessage.ZoneParams> zoneParams = new LinkedList<>();
838+
833839
ZoneConfigPayloadMessage.ZoneParams zoneParam = new ZoneConfigPayloadMessage.ZoneParams();
834840
zoneParam.zoneId = 0;
835841
zoneParam.windowFunction = true;
836842
zoneParam.operationLock = false;
837843
zoneParam.minTemperature = new BigDecimal("5");
838844
zoneParam.maxTemperature = new BigDecimal("35");
839-
List<ZoneConfigPayloadMessage.ZoneParams> zoneParams = new LinkedList<>();
840845
zoneParams.add(zoneParam);
846+
841847
assert_0x000A_ZoneConfigPayloadMessage((ZoneConfigPayloadMessage) evoHomeMessage, 0x067AEC, 0x895E5D,
842848
zoneParams);
843849
}
@@ -904,4 +910,38 @@ private void testEncode_EvoHome_0x18_0x2349_0x07_ZONE_SETPOINT_PERMANENT_Message
904910
assertEquals(expected, evoHomeWriter.written);
905911
}
906912

913+
@Test
914+
public void decode_EvoHome_0x18_0x000A_0x12_ZoneConfigPayloadMessage() {
915+
decode("18 067AEC 067AEC 000A 12 00 10 01F4 0DAC 01 10 01F4 0DAC 02 10 01F4 0DAC");
916+
917+
List<ZoneConfigPayloadMessage.ZoneParams> zoneParams = new LinkedList<>();
918+
919+
ZoneConfigPayloadMessage.ZoneParams zoneParam = new ZoneConfigPayloadMessage.ZoneParams();
920+
zoneParam.zoneId = 0;
921+
zoneParam.windowFunction = true;
922+
zoneParam.operationLock = false;
923+
zoneParam.minTemperature = new BigDecimal("5");
924+
zoneParam.maxTemperature = new BigDecimal("35");
925+
zoneParams.add(zoneParam);
926+
927+
zoneParam = new ZoneConfigPayloadMessage.ZoneParams();
928+
zoneParam.zoneId = 1;
929+
zoneParam.windowFunction = true;
930+
zoneParam.operationLock = false;
931+
zoneParam.minTemperature = new BigDecimal("5");
932+
zoneParam.maxTemperature = new BigDecimal("35");
933+
zoneParams.add(zoneParam);
934+
935+
zoneParam = new ZoneConfigPayloadMessage.ZoneParams();
936+
zoneParam.zoneId = 2;
937+
zoneParam.windowFunction = true;
938+
zoneParam.operationLock = false;
939+
zoneParam.minTemperature = new BigDecimal("5");
940+
zoneParam.maxTemperature = new BigDecimal("35");
941+
zoneParams.add(zoneParam);
942+
943+
assert_0x000A_ZoneConfigPayloadMessage((ZoneConfigPayloadMessage) evoHomeMessage, 0x067AEC, 0x067AEC,
944+
zoneParams);
945+
}
946+
907947
}

de.ibapl.fhz4j.parser.cul/src/test/java/de/ibapl/fhz4j/parser/cul/CulParserTest.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141
import de.ibapl.fhz4j.parser.fht.FhtTimeMessageTest;
4242
import de.ibapl.fhz4j.protocol.em.EmMessage;
4343
import de.ibapl.fhz4j.protocol.evohome.EvoHomeMessage;
44+
import de.ibapl.fhz4j.protocol.fht.Fht80TfMessage;
45+
import de.ibapl.fhz4j.protocol.fht.Fht80TfValue;
4446
import de.ibapl.fhz4j.protocol.fht.Fht80bRawMessage;
4547
import de.ibapl.fhz4j.protocol.fht.FhtMessage;
4648
import de.ibapl.fhz4j.protocol.fht.FhtProperty;
47-
import de.ibapl.fhz4j.protocol.fht.Fht80TfMessage;
48-
import de.ibapl.fhz4j.protocol.fht.Fht80TfValue;
4949
import de.ibapl.fhz4j.protocol.fs20.FS20Message;
5050
import de.ibapl.fhz4j.protocol.hms.HmsMessage;
5151
import de.ibapl.fhz4j.protocol.lacrosse.tx2.LaCrosseTx2Message;
@@ -342,8 +342,8 @@ public void decode_LA_CROSSE_TX2() {
342342
@Test
343343
public void decode_LA_CROSSE__tAFC67860001E() {
344344
decode("tAFC67860001E\r\n");
345-
assertNull(throwable);
346-
assertNotNull(laCrosseTx2Message);
345+
assertNotNull(throwable);
346+
assertNull(laCrosseTx2Message);
347347

348348
//TODO ??? decode("tA00AA002EAE5\r\n");
349349
// assertNotNull(laCrosseTx2Message);

pom.xml

+9-9
Original file line numberDiff line numberDiff line change
@@ -135,17 +135,17 @@
135135
<plugin>
136136
<groupId>org.apache.maven.plugins</groupId>
137137
<artifactId>maven-surefire-plugin</artifactId>
138-
<version>3.2.3</version>
138+
<version>3.5.0</version>
139139
</plugin>
140140
<plugin>
141141
<groupId>com.mycila</groupId>
142142
<artifactId>license-maven-plugin</artifactId>
143-
<version>4.3</version>
143+
<version>4.6</version>
144144
<dependencies>
145145
<dependency>
146146
<groupId>com.mycila</groupId>
147147
<artifactId>license-maven-plugin-git</artifactId>
148-
<version>4.3</version>
148+
<version>4.6</version>
149149
</dependency>
150150
</dependencies>
151151
<!-- do not pass config to the modules-->
@@ -177,7 +177,7 @@
177177
<plugin>
178178
<groupId>org.apache.maven.plugins</groupId>
179179
<artifactId>maven-compiler-plugin</artifactId>
180-
<version>3.12.1</version>
180+
<version>3.13.0</version>
181181
<configuration>
182182
<source>${compile.source}</source>
183183
<target>${compile.target}</target>
@@ -188,7 +188,7 @@
188188
<plugin>
189189
<groupId>org.apache.maven.plugins</groupId>
190190
<artifactId>maven-source-plugin</artifactId>
191-
<version>3.3.0</version>
191+
<version>3.3.1</version>
192192
<executions>
193193
<execution>
194194
<id>attach-sources</id>
@@ -201,7 +201,7 @@
201201
<plugin>
202202
<groupId>org.apache.maven.plugins</groupId>
203203
<artifactId>maven-javadoc-plugin</artifactId>
204-
<version>3.6.3</version>
204+
<version>3.10.0</version>
205205
<executions>
206206
<execution>
207207
<id>attach-javadocs</id>
@@ -214,7 +214,7 @@
214214
<plugin>
215215
<groupId>org.apache.maven.plugins</groupId>
216216
<artifactId>maven-release-plugin</artifactId>
217-
<version>3.0.1</version>
217+
<version>3.1.1</version>
218218
<configuration>
219219
<localCheckout>true</localCheckout>
220220
<pushChanges>false</pushChanges>
@@ -227,7 +227,7 @@
227227
<plugin>
228228
<groupId>org.apache.maven.plugins</groupId>
229229
<artifactId>maven-jar-plugin</artifactId>
230-
<version>3.3.0</version>
230+
<version>3.4.2</version>
231231
<configuration>
232232
<archive>
233233
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
@@ -237,7 +237,7 @@
237237
<plugin>
238238
<groupId>org.apache.maven.plugins</groupId>
239239
<artifactId>maven-gpg-plugin</artifactId>
240-
<version>3.2.0</version>
240+
<version>3.2.5</version>
241241
<executions>
242242
<execution>
243243
<id>sign-artifacts</id>

0 commit comments

Comments
 (0)