You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/05 14:18:46 UTC

[incubator-plc4x] branch master updated: - More work on decoding the addressing of DeltaV traffic

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/master by this push:
     new e771476  - More work on decoding the addressing of DeltaV traffic
e771476 is described below

commit e7714764c5a43c33e5f6dad50c6e680b5ebf4dd5
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Fri Oct 5 16:18:38 2018 +0200

    - More work on decoding the addressing of DeltaV traffic
---
 .../java/org/apache/plc4x/java/deltav/PoC.java     | 365 +++++++++++++++++----
 1 file changed, 299 insertions(+), 66 deletions(-)

diff --git a/plc4j/protocols/delta-v/src/test/java/org/apache/plc4x/java/deltav/PoC.java b/plc4j/protocols/delta-v/src/test/java/org/apache/plc4x/java/deltav/PoC.java
index 6185908..4c7dd31 100644
--- a/plc4j/protocols/delta-v/src/test/java/org/apache/plc4x/java/deltav/PoC.java
+++ b/plc4j/protocols/delta-v/src/test/java/org/apache/plc4x/java/deltav/PoC.java
@@ -93,66 +93,9 @@ public class PoC {
                 if(messageType == 0x0002) {
                     short payloadType = buf.readShort();
                     switch(payloadType) {
-                        case 0x1B01: {
-                            // NOTE:
-                            // - Seems to be sent as soon as the OS start up and a screen is opened.
-                            // - Sent from the controller to the OS
-                            // - The end seems to be a string followed by 0xFFFF
-                            //
-                            // Found packets:
-                            // 1b 01 00 00 00 00 00 07 03 8a 01 c4 00 04 00 1e
-                            // 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 04 cf 1a 0b 00 35 01 2c
-                            // 00 00 03 e8 00 00 00 05 00 49 00 44 00 49 00 53
-                            // 00 50 00 00 ff ff 01
-                            //
-                            // 1b 01 00 00 00 00 00 07 03 8c 01 c6 00 04 00 30
-                            // 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 04 cf 1a 0b 00 35 01 2c
-                            // 00 00 03 e8 00 01 00 0e 00 43 00 2f 00 53 00 57
-                            // 00 5f 00 4d 00 41 00 58 00 5f 00 53 00 43 00 41
-                            // 00 4c 00 45 00 00 ff ff 01
-                        }
-                        case 0x1B02: {
-                            // NOTE:
-                            // - Seems to be sent as soon as the OS start up and a screen is opened.
-                            // - Sent from the OS to the controller
-                            // - Seems to be a response from the OS to the controller to a previous 0x1B01 message
-                            // - Size of the response seems to be in direct correlation with the size of the corresponding 0x1B01 message
-                            //
-                            // Found packets:
-                            // 1b 02 00 00 00 00 00 07 03 8a 01 c4 00 04 00 00
-                            // 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 01 00 00 00 00 00 35 01
-                            // 2c 04 cf 1a 0b 03 00 00 00 00 00 1f 01
-                            //
-                            // 1b 02 00 00 00 00 00 07 03 8c 01 c6 00 04 00 00
-                            // 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-                            // 00 00 00 00 00 00 00 00 01 00 00 00 00 00 35 01
-                            // 2c 04 cf 1a 0b 02 00 01 24 00 0e 43 48 00 00 c2
-                            // 20 00 00 03 e9 01 01 5e 8a
-                        }
                         case 0x0201: {
+                            // Notes:
+                            // - Sent from the OS to the controller
                             // Found packets:
                             // 02 01 00 42 0a 08 00 65 01 5a 00 59 00 00 00 00
                             // 00 00 00 00
@@ -166,7 +109,8 @@ public class PoC {
                         case 0x0202: {
                             // Note:
                             // - Seems to occur during connection establishment phase.
-
+                            // - Response to a 0x0201
+                            // - Sent from the Controller to the OS
                             // Found packets:
                             // 02 02 00 00 00 00 00 65 01 de 00 18 00 00 00 00
                             // 00 06 00 00 00 00 00 00
@@ -174,7 +118,7 @@ public class PoC {
                         }
                         case 0x0301: {
                             // Note:
-                            // - The controllers seem to send these messages
+                            // - Sent from the OS to the controllers
                             // - It seems that there are two variants of these packets:
                             //   - Short ones containing almost no information
                             //   - Long ones containing a pattern 14 bytes each starting with 0x04 an an incrementing byte value
@@ -193,6 +137,21 @@ public class PoC {
                             // 03 01 00 2e 0a 08 00 66 00 00 00 00 00 00 00 00
                             // 00 04 00 00 00 00 00 00 c5
                             //
+                            // (medium)
+                            // 03 01 00 00 00 00 00 07 02 95 00 bf 00 04 00 00
+                            // 00 08 00 01 00 00 00 00 01 04 8f 17 b8 00 2f 01
+                            // 36 00 00 3a 98 00 01 00 04 00 44 00 4e 00 4c 00
+                            // 44 00 00 00 02 00 06 00 4f 00 49 00 4e 00 54 00
+                            // 45 00 47 00 00 ff ff 88 ad
+                            // Contains Text: DNLD and OINTEG
+                            //
+                            // (medium)
+                            // 03 01 00 00 00 00 00 07 02 ec 01 16 00 04 00 00
+                            // 00 08 00 01 00 00 00 00 01 04 8f 17 b8 00 2f 01
+                            // 36 00 00 3a 98 00 03 00 06 00 53 00 49 00 4e 00
+                            // 54 00 45 00 47 00 00 ff ff
+                            // Contains Text: SINTEG
+                            //
                             // (big)
                             // 03 01 00 00 00 00 00 53 00 00 00 00 00 00 00 00
                             // 00 04 00 00 00 00 00 00 23 04 1f 17 48 00 3c 00
@@ -213,6 +172,11 @@ public class PoC {
                             outputPacket(buf);
                             break;
                         }
+                        case 0x0302: {
+                            // Notes:
+                            // - Seems to be one possible response to a 0x0301 message
+                            // - Sent from the Controller to the OS
+                        }
                         case 0x0304: {
                             // Note:
                             // - The Operator Systems seem to be sending these messages.
@@ -279,8 +243,15 @@ public class PoC {
                         }
                         case 0x0401: {
                             // Note:
-                            // - Seems to be sent by the controller every 10-15 seconds.
+                            // - Sent by the OS during connection phase.
                             // Found packets:
+                            // Connection OS sent to Controller:
+                            // 04 01 00 00 00 00 00 64 03 57 01 82 00 00 00 00
+                            // 00 19 00 00 00 05 00 24 00 00 00 00 00 00 00 fa
+                            // ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+                            // ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff c0
+                            // 01 2e
+                            // Later on:
                             // 04 01 00 2a 0a 08 00 64 02 26 01 38 00 00 00 00
                             // 00 19 00 00 00 05 00 24 00 00 00 00 00 00 00 fa
                             // ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
@@ -603,11 +574,10 @@ public class PoC {
                                         break;
                                     }
                                     case (byte) 0x03: {
-                                        // TODO: Check if these other types still exist ..
+                                        // Note:
+                                        // - Might be error responses ...
                                         // Found blocks:
                                         // 03 00 23 00 00 00 4a             (size 6)
-                                        // 03 01 00 27 01 1e 04 36 1d       (size 8)
-                                        // 03 01 00 24 01 1b 04 33 1c fe    (size 9)
                                         switch (type) {
                                             case (byte) 0x00: {
                                                 buf.skipBytes(3);
@@ -630,7 +600,7 @@ public class PoC {
                         }
                         case 0x0404: {
                             // Note:
-                            // - Seems to be used during connection.
+                            // - Seems to be used during connection phase.
                             // Found Packets:
                             // 04 04 00 00 00 00 01 23 00 00 00 00 00 00 00 00
                             // 00 0a 00 00 00 00 00 00 00 00 00 00 00 07 00 45
@@ -647,10 +617,273 @@ public class PoC {
                             break;
                         }
                         case 0x0506: {
+                            // Notes:
+                            // - Sent from the Controller to the OS
+                            // Found packets:
+                            // 05 06 00 00 00 00 01 03 00 00 00 00 00 00 00 00
+                            // 00 06 00 00 00 04 00 04 00 04 00 1f 00 00 00 00
+                            // 00 00 01 90 00 00 0b 00 45 00 52 00 53 00 41 00
+                            // 54 00 5a 00 53 00 54 00 52 00 4f 00 4d 00 00 01
+                            // Contained a text at the end: ERSATZSTROM
+                            //
+                            // 05 06 00 00 00 01 01 03 00 00 00 00 00 00 00 00
+                            // 00 06 00 00 00 04 00 04 00 04 00 29 00 00 00 00
+                            // 00 00 01 90 00 00 10 00 56 00 45 00 52 00 52 00
+                            // 5f 00 51 00 55 00 45 00 4c 00 4c 00 41 00 42 00
+                            // 53 00 41 00 55 00 47 00 00 01
+                            // Contained a text at the end: VERR_QUELLABSAUG
+                            //
+                            // 05 06 00 00 00 00 01 03 00 00 00 00 00 00 00 00
+                            // 00 06 00 00 00 04 00 04 00 04 00 45 00 00 00 00
+                            // 00 00 01 90 00 00 0e 00 50 00 53 00 30 00 32 00
+                            // 41 00 57 00 56 00 42 00 31 00 4d 00 43 00 54 00
+                            // 31 00 30 00 00 00 0e 00 50 00 53 00 30 00 32 00
+                            // 41 00 57 00 56 00 42 00 31 00 4d 00 43 00 54 00
+                            // 30 00 33 00 00 02
+                            // Contained a text at the end: PS02AWVB1MCT10 and PS02AWVB1MCT03
                             System.out.println("Got 0x" + Hex.encodeHexString(new byte[]{(byte)(payloadType >> 8), (byte)(payloadType & 0xFF)}) + " packet");
 //                            outputPacket(buf);
                             break;
                         }
+                        // 0x08xx: Possibly explicit read request/response
+                        case 0x0801: {
+                            // Notes:
+                            // - Sent from the OS to the controller
+                            // Found packets:
+                            // 08 01 00 00 00 00 00 00 02 92 00 bc 00 08 00 00
+                            // 00 03 00 04 00 0a 00 08 00 06 00 18 00 0a 00 1c
+                            // 00 02 00 24 00 02 00 26 00 00 00 00 04 8f 17 b8
+                            // ff ff ff ff 00 06 00 4f 00 49 00 4e 00 54 00 45
+                            // 00 47 00 00 00 00 00 00 00 02 00 43 00 56 00 00
+                            // 00 00 00 00
+                            // Contained a text OINTEG
+                            break;
+                        }
+                        case 0x0802: {
+                            // Notes:
+                            // - Response for a 0x0801 message
+                            // - Sent from the Controller to the OS
+                            // Found packets:
+                            // 08 02 00 00 00 00 00 00 02 92 00 bc 00 00 00 00
+                            // 00 00 00 00 00 1a 00 04 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00
+                            // 01 01
+                            break;
+                        }
+                        case 0x1B01: {
+                            // NOTE:
+                            // - Seems to be sent as soon as the OS start up and a screen is opened.
+                            // - Sent from the OS to the Controller
+                            // - Structure of parts is always:
+                            //
+                            // Found packets:
+                            // 1b 01 00 00 00 00 00 07 03 8a 01 c4 00 04 00 1e
+                            // 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            // 04 cf 1a 0b 00 35 01 2c 00 00 03 e8
+                            // 00 00 00 05 00 49 00 44 00 49 00 53 00 50 00 00
+                            // ff ff 01
+                            //
+                            // Another short one:
+                            // 1b 01 00 00 00 00 00 07 03 8c 01 c6 00 04 00 30
+                            // 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            // 04 cf 1a 0b 00 35 01 2c 00 00 03 e8
+                            // 00 01 00 0e 00 43 00 2f 00 53 00 57 00 5f 00 4d 00 41 00 58 00 5f 00 53 00 43 00 41 00 4c 00 45 00 00
+                            // ff ff 01
+                            //
+                            // When opening a new screen:
+                            // 1b 01 00 00 00 00 00 07 03 6d 01 97 00 04 05 04
+                            // 00 08 00 00 00 08 01 78 00 08 02 90 00 08 03 fa
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            //
+                            // 04 96 17 bf 00 38 01 3f 00 00 03 e8
+                            // 00 00 00 0d 00 41 00 2f 00 49 00 53 00 54 00 5f 00 46 00 57 00 5f 00 4b 00 55 00 52 00 5a 00 00
+                            // 00 01 00 05 00 53 00 4b 00 41 00 4c 00 31 00 00
+                            // 00 02 00 06 00 41 00 4c 00 41 00 52 00 4d 00 53 00 00
+                            // 00 03 00 05 00 53 00 4b 00 41 00 4c 00 32 00 00
+                            // 00 04 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 32 00 00
+                            // 00 05 00 0b 00 41 00 4b 00 54 00 5f 00 53 00 43 00 48 00 52 00 49 00 54 00 54 00 00
+                            // 00 06 00 0e 00 41 00 2f 00 42 00 41 00 5f 00 47 00 46 00 45 00 53 00 5f 00 41 00 55 00 54 00 4f 00 00
+                            // 00 07 00 04 00 41 00 2f 00 42 00 41 00 00
+                            // 00 08 00 09 00 47 00 46 00 5f 00 53 00 54 00 41 00 54 00 55 00 53 00 00
+                            // 00 09 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 32 00 00
+                            // 00 0a 00 07 00 47 00 46 00 5f 00 4e 00 41 00 4d 00 45 00 00
+                            // 00 0b 00 06 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 0c 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 0d 00 06 00 42 00 45 00 53 00 43 00 48 00 32 00 00
+                            // 00 0e 00 0b 00 41 00 2f 00 47 00 46 00 45 00 5f 00 41 00 4c 00 41 00 52 00 4d 00 00
+                            // 00 0f 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 31 00 00
+                            // ff ff
+                            // 04 97 17 c0 00 39 01 40 00 00 03 e8
+                            // 00 00 00 06 00 41 00 4c 00 41 00 52 00 4d 00 53 00 00
+                            // 00 01 00 05 00 53 00 4b 00 41 00 4c 00 31 00 00
+                            // 00 02 00 09 00 47 00 46 00 5f 00 53 00 54 00 41 00 54 00 55 00 53 00 00
+                            // 00 03 00 06 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 04 00 04 00 41 00 2f 00 41 00 31 00 00
+                            // 00 05 00 0d 00 41 00 2f 00 49 00 53 00 54 00 5f 00 46 00 57 00 5f 00 4b 00 55 00 52 00 5a 00 00
+                            // 00 06 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 07 00 07 00 47 00 46 00 5f 00 4e 00 41 00 4d 00 45 00 00
+                            // 00 08 00 04 00 41 00 2f 00 42 00 41 00 00
+                            // 00 09 00 0b 00 41 00 2f 00 47 00 46 00 45 00 5f 00 41 00 4c 00 41 00 52 00 4d 00 00
+                            // 00 0a 00 0e 00 41 00 2f 00 42 00 41 00 5f 00 47 00 46 00 45 00 53 00 5f 00 41 00 55 00 54 00 4f 00 00
+                            // 00 0b 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 31 00 00
+                            // ff ff
+                            // 04 98 17 c1 00 3a 01 41 00 00 03 e8
+                            // 00 00 00 05 00 53 00 4b 00 41 00 4c 00 32 00 00
+                            // 00 01 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 31 00 00
+                            // 00 02 00 09 00 47 00 46 00 5f 00 53 00 54 00 41 00 54 00 55 00 53 00 00
+                            // 00 03 00 05 00 53 00 4b 00 41 00 4c 00 31 00 00
+                            // 00 04 00 04 00 41 00 2f 00 41 00 31 00 00
+                            // 00 05 00 06 00 41 00 4c 00 41 00 52 00 4d 00 53 00 00
+                            // 00 06 00 0b 00 41 00 2f 00 47 00 46 00 45 00 5f 00 41 00 4c 00 41 00 52 00 4d 00 00
+                            // 00 07 00 07 00 47 00 46 00 5f 00 4e 00 41 00 4d 00 45 00 00
+                            // 00 08 00 04 00 41 00 2f 00 42 00 41 00 00
+                            // 00 09 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 32 00 00
+                            // 00 0a 00 06 00 42 00 45 00 53 00 43 00 48 00 32 00 00
+                            // 00 0b 00 06 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 0c 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 32 00 00 00
+                            // 0d 00 0e 00 41 00 2f 00 42 00 41 00 5f 00 47 00 46 00 45 00 53 00 5f 00 41 00 55 00 54 00 4f 00 00
+                            // 00 0e 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 0f 00 0d 00 41 00 2f 00 49 00 53 00 54 00 5f 00 46 00 57 00 5f 00 4b 00 55 00 52 00 5a 00 00
+                            // ff ff
+                            // 04 99 17 c2 00 3b 01 42 00 00 03 e8
+                            // 00 00 00 06 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 01 00 05 00 53 00 4b 00 41 00 4c 00 31 00 00
+                            // 00 02 00 0e 00 41 00 2f 00 42 00 41 00 5f 00 47 00 46 00 45 00 53 00 5f 00 41 00 55 00 54 00 4f 00 00
+                            // 00 03 00 07 00 47 00 46 00 5f 00 4e 00 41 00 4d 00 45 00 00
+                            // 00 04 00 0b 00 41 00 2f 00 47 00 46 00 45 00 5f 00 41 00 4c 00 41 00 52 00 4d 00 00
+                            // 00 05 00 0d 00 41 00 2f 00 49 00 53 00 54 00 5f 00 46 00 57 00 5f 00 4b 00 55 00 52 00 5a 00 00
+                            // 00 06 00 06 00 41 00 4c 00 41 00 52 00 4d 00 53 00 00
+                            // 00 07 00 04 00 41 00 2f 00 42 00 41 00 00
+                            // 00 08 00 09 00 47 00 46 00 5f 00 53 00 54 00 41 00 54 00 55 00 53 00 00
+                            // 00 09 00 0a 00 44 00 59 00 4e 00 5f 00 42 00 45 00 53 00 43 00 48 00 31 00 00
+                            // 00 0a 00 08 00 49 00 53 00 54 00 57 00 45 00 52 00 54 00 31 00 00
+                            // ff ff 04
+                        }
+                        case 0x1B02: {
+                            // NOTE:
+                            // - Seems to be sent as soon as the OS start up and a screen is opened.
+                            // - Sent from the Controller to the OS
+                            // - Seems to be a response to a previous 0x1B01 message
+                            // - Size of the response seems to be in direct correlation with the size of the corresponding 0x1B01 message
+                            //
+                            // Found packets:
+                            // 1b 02 00 00 00 00 00 07 03 8a 01 c4 00 04 00 00
+                            // 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            // 01 00 00 00 00 00 35 01 2c 04 cf 1a 0b
+                            // 03 00 00 00 00 00 1f <!-- Error response with return code (0x0000001F)
+                            // 01
+                            //
+                            // Another short one:
+                            // 1b 02 00 00 00 00 00 07 03 8c 01 c6 00 04 00 00
+                            // 00 06 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            // 01 00 00 00 00 00 35 01 2c 04 cf 1a 0b
+                            // 02 00 01 24 00 0e 43 48 00 00 c2 20 00 00 03 e9 01
+                            // 01
+                            //
+                            // When opening a new screen:
+                            // 1b 02 00 00 00 00 00 07 03 6d 01 97 00 04 00 00
+                            // 00 06 00 01 00 06 01 51 00 06 02 3c 00 06 03 59
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+                            // 00 00 00 00 00 00 00 00
+                            //
+                            // 04 00 00 00 00 00 38 01 3f 04 96 17 bf
+                            // 02 00 00 47 00 17 00 08 00 4b 00 65 00 69 00 6e 00 65 00 20 00 46 00 57 00 00
+                            // 02 00 01 24 00 0e 43 48 00 00 c2 20 00 00 03 e9 01
+                            // 02 00 02 76 00 76 05 01 01 00 00 00 0e 00 47 00 46 00 45 00 5f 00 56 00 45 00 52 00 52 00 49 00 45 00 47 00 45 00 4c 00 54 00 00 00 54 00 54 01 07 00 00 2a f1 c7 82 e4 d8 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
+                            // 02 00 03 24 00 0e 40 20 00 00 00 00 00 00 80 16 03
+                            // 02 00 04 47 00 11 00 05 00 4d 00 43 00 50 00 30 00 31 00 00
+                            // 02 00 05 47 00 07 00 00 00 00
+                            // 02 00 06 01 00
+                            // 02 00 07 05 00
+                            // 02 00 08 63 00 00 19 c4 2f
+                            // 02 00 09 08 3f 89 68 4c
+                            // 02 00 0a 47 00 19 00 09 00 50 00 54 00 30 00 39 00 41 00 4e 00 41 00 44 00 31 00 00
+                            // 02 00 0b 47 00 09 00 01 00 54 00 00
+                            // 02 00 0c 47 00 11 00 05 00 4d 00 43 00 54 00 30 00 31 00 00
+                            // 02 00 0d 47 00 09 00 01 00 50 00 00
+                            // 02 00 0e 05 01
+                            // 02 00 0f 08 42 49 aa aa
+                            //
+                            // 01 00 00 00 00 00 39 01 40 04 97 17 c0
+                            // 02 00 00 76 00 58 05 01 01 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
+                            // 02 00 01 24 00 0e 41 28 00 00 00 00 00 00 05 45 01
+                            // 02 00 02 63 00 00 19 c4 2f
+                            // 02 00 03 47 00 09 00 01 00 46 00 00
+                            // 02 00 04 05 01
+                            // 02 00 05 47 00 17 00 08 00 4b 00 65 00 69 00 6e 00 65 00 20 00 46 00 57 00 00
+                            // 02 00 06 47 00 07 00 00 00 00
+                            // 02 00 07 47 00 19 00 09 00 50 00 54 00 30 00 39 00 41 00 44 00 42 00 51 00 31 00 00
+                            // 02 00 08 05 00
+                            // 02 00 09 05 01
+                            // 02 00 0a 01 00
+                            // 02 00 0b 21 80 00 00 00 00
+                            //
+                            // 01 00 00 00 00 00 3a 01 41 04 98 17 c1
+                            // 02 00 00 24 00 0e 42 c8 00 00 00 00 00 00 06 34 00
+                            // 02 00 01 08 3f 7f ff ff
+                            // 02 00 02 63 00 00 19 c4 2f
+                            // 02 00 03 24 00 0e 3f 99 99 9a 00 00 00 00 80 16 03
+                            // 02 00 04 05 01
+                            // 02 00 05 76 00 58 05 01 01 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
+                            // 02 00 06 05 00
+                            // 02 00 07 47 00 19 00 09 00 50 00 54 00 30 00 39 00 41 00 44 00 48 00 4f 00 31 00 00
+                            // 02 00 08 05 00
+                            // 02 00 09 47 00 07 00 00 00 00
+                            // 02 00 0a 47 00 07 00 00 00 00
+                            // 02 00 0b 47 00 09 00 01 00 50 00 00
+                            // 02 00 0c 08 00 00 00 00
+                            // 02 00 0d 01 01
+                            // 02 00 0e 47 00 0d 00 03 00 56 00 41 00 4b 00 00
+                            // 02 00 0f 47 00 17 00 08 00 4b 00 65 00 69 00 6e 00 65 00 20 00 46 00 57 00 00
+                            //
+                            // 01 00 00 00 00 00 3b 01 42 04 99 17 c2
+                            // 02 00 00 47 00 09 00 01 00 46 00 00
+                            // 02 00 01 24 00 0e 41 20 00 00 00 00 00 00 05 45 01
+                            // 02 00 02 01 00
+                            // 02 00 03 47 00 19 00 09 00 50 00 54 00 30 00 39 00 41 00 41 00 4e 00 4b 00 31 00 00
+                            // 02 00 04 05 01
+                            // 02 00 05 47 00 17 00 08 00 4b 00 65 00 69 00 6e 00 65 00 20 00 46 00 57 00 00
+                            // 02 00 06 76 00 58 05 01 01 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
+                            // 02 00 07 05 00
+                            // 02 00 08 63 00 00 19 c4 2f
+                            // 02 00 09 47 00 07 00 00 00 00
+                            // 02 00 0a 08 00 00 00 00
+                            //
+                            // 01
+                        }
                         default: {
                             System.out.println("Got 0x" + Hex.encodeHexString(new byte[]{(byte)(payloadType >> 8), (byte)(payloadType & 0xFF)}) + " packet");
                             outputPacket(buf);