This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

pc-ble-driver-py missing high-rate notifications

Hello,

whilst implementing my embedded device software, I'm developing a tool running on a Windows laptop to validate my work.

The idea is to use pc-ble-driver-py python bindings to implement simple interactions with the device over BLE using the services exposed.

The current setup is:

  • pc-ble-driver-py 0.15.0 (latest)
  • nRF52840 Dongle (PCA10059) running connectivity FW 4.1.2 SD API v5 (latest supported)

Most of the functionalities seem to be working fine.

But when I try to collect notifications from a certain rate on, looks like the system is not able to "catch-up".

To give some context - from the embedded device, I'm polling data and queuing notifications on certain char every 10ms. The connection interval is set 15ms.

The moment I enable the notifications on this char from Client side(after the wanted connection intervals are updated), I start receiving as a return value from sd_ble_gatts_hvx the error code NRF_ERROR_RESOURCES on the server side - it's not always the case, but very often, at least 10/20 times per second.

The only explanation I can give to this is that the Central (i.e. the python script) is not meeting all the connection events at fixed interval (15ms), and this way the notification queue on the Server is increasing till its limit.

I tested this scenario with different platforms (Windows UWP, Android) and this is the only case I'm seeing this behaviour.

What I find rather odd is that using exactly the same dongle (with same FW), but from the nRF Connect Desktop App GUI this is NOT happening - I can subscribe to the notifications and getting them at the rate I expect.

Adding a couple of graph to make things clearer:

Notifications Intervals (ms) from nRF Connect Desktop:

Notifications Intervals (ms) from pc-ble-driver-py:

It's clear that in the first case, two notifications are sometimes very close as the queuing rate is higher than the connection interval (i.e you get more than one notification for conn interval).

Instead in the second case, interval is never below 15ms, meaning that for sure notifications are lost (I imagine due to missed connection events...).

I tried to do the same but changing the dongle with a nRF52-DK. The result is that in this case the system crashes and disconnects after a couple of seconds from the enabling of notifications with this log:

2020-10-20 15:17:21,194 [21092/LogThread] h5_decode error, code: 0x802c, H5 error count: 1. raw packet: c0 f0 0e 02 00 02 39 00 00 00 00 00 00 00 1c 00 01 12 00 f7 03 71 03 d0 02 de 02 fe 02 0e c0 

As a quick workaround, If I try to queue notifications every 20ms (or anything above the connection interval), I don't see any problem and the system works flawlessly.

Can you help me understanding what's going on?

I'm evaluating this python libraries for the system testing framework of our devices - and of course we'll need to evaluate also the high-rate notifications.

I think reproducing the issue would be quite trivial, but maybe there is something I'm missing that can solve this straightaway.

Thanks!

  • Hello,

    getting back to you with two traces over Wireshark:

    • one is a case when I'm not seeing any NRF_ERROR_RESOURCE error on the Server/Peripheral (my smartphone enabling notifications)
    • the other is instead the case of pc-ble-driver-py running from laptop through the connectivity dongle, with multiple error when calling the SD notification API.

    To confirm that notifications are "lost" in the second case, I'm now printing in the python script the value of a counter that I set in the first byte of the notification.

    I also tried to increase the NRF_SDH_BLE_GAP_EVENT_LENGTH to 12 (15ms), but nothing changed.

    I don't think that increasing that value above 15ms could make sense, since anyway that is the connection interval.

    I hope this may help in understanding the root cause of the issue.

    Thanks and please keep me posted,

    D


    Connection: 0, 0x0005 --> len = 18 - data = [72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    Connection: 0, 0x0005 --> len = 18 - data = [193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    capture_nok.pcapngcapture_ok.pcapng

  • Hello again,

    Sorry for my late reply.

    davege said:
    getting back to you with two traces over Wireshark:

    Thank you for the traces and their description, these are of great help for me to understand the issue better.

    davege said:
    To confirm that notifications are "lost" in the second case, I'm now printing in the python script the value of a counter that I set in the first byte of the notification.

    Looking at the traces in combination with your log, it seems that the missing notifications are in fact never sent ( such as the notification number 94 and 97 ).
    For this, I am guessing that an error occured when you tried to queue these for sending using the sd_ble_gatts_hvx function. I suspect that these particular calls then returned NRF_ERROR_RESOURCES ( if this is the error you are still seeing ), and since they were not retried by the application they were never queued, and thus never sent. Does this sound plausible to you?

    Looking at the logs, it is apparent that when the transmissions fail there is only 1 notifications being sent per connection event. This is probably causing a buildup, leading to the NRF_ERROR_RESOURCES error.
    If you look at the log where it works as intended, there are almost always sent multiple notifications per event, which decreases the chance of a notification buildup on the server side. 

    What error handling have you implemented for the NRF_ERROR_RESOURCES error?

    davege said:

    I also tried to increase the NRF_SDH_BLE_GAP_EVENT_LENGTH to 12 (15ms), but nothing changed.

    I don't think that increasing that value above 15ms could make sense, since anyway that is the connection interval.

    Great! This is correct - the event length is limited by the interval either way. You could set it to 500, it would be no change unless you also change the interval.

    Looking forward to resolving this issue together!

    Best regards,
    Karl

  • Hello,

    Looking at the traces in combination with your log, it seems that the missing notifications are in fact never sent ( such as the notification number 94 and 97 ).
    For this, I am guessing that an error occured when you tried to queue these for sending using the sd_ble_gatts_hvx function. I suspect that these particular calls then returned NRF_ERROR_RESOURCES ( if this is the error you are still seeing ), and since they were not retried by the application they were never queued, and thus never sent. Does this sound plausible to you?

    Yes, this makes sense. I'm not handling that error with any kind of retry, so I'm expecting those numbers to never really being sent.

    Looking at the logs, it is apparent that when the transmissions fail there is only 1 notifications being sent per connection event. This is probably causing a buildup, leading to the NRF_ERROR_RESOURCES error.
    If you look at the log where it works as intended, there are almost always sent multiple notifications per event, which decreases the chance of a notification buildup on the server side. 

    What error handling have you implemented for the NRF_ERROR_RESOURCES error?

    So here's the point: I'm not trying to understand how to handle the error on the Server (this is something I will do for robustness anyway).
    What I want to understand is why there's a different behaviour by the Client in the failing case.
    If I got it correctly, in the failing log there is always up to 1 notification being sent per connection event.
    Why is this the case? Is there any configuration on Client to side to avoid that? Could it be a limitation of the serialisation libraries initialisation of the PCA10059 dongle running on the laptop?

    Since the problem is very easy to reproduce, I'd like to know from you if you're seeing the same...
    You would just need to queue notifications at a rate higher than the connection interval (like in my case: 10ms vs 15ms) to be in the same situation.

    Then someone in the dev team could debug what's happening in the lower layers...

    How does it sound?

    Thanks,

    D

  • Looking closer at the connection length in both traces, it seems like it is set correctly - So I do not see any reason why the central on the one hand pulls for additional notifications, but not in the other ( as you can see in the trace _nok, the peripheral reports that more data is available, but the central never sends another packet to retrieve it ).

    Could you tell me exactly how you have setup the dongle on your side to collect the notifications, so that I may try to replicate the issue here on my end?
    Is the central doing anything else while it is in the connection and receiving the notifications - such as actively scanning for more peripherals?

    Best regards,
    Karl

  • Hello,

    apparently we've been writing simultaneously Slight smile

    Looking closer at the connection length in both traces, it seems like it is set correctly - So I do not see any reason why the central on the one hand pulls for additional notifications, but not in the other ( as you can see in the trace _nok, the peripheral reports that more data is available, but the central never sends another packet to retrieve it ).

    Exactly, that's the mystery to solve!

    Could you tell me exactly how you have setup the dongle on your side to collect the notifications, so that I may try to replicate the issue here on my end?
    Is the central doing anything else while it is in the connection and receiving the notifications - such as actively scanning for more peripherals?

    It is all very standard, as I just slightly modified the example code for the heart rate that I've found in the repository.

    At HW/FW level current setup is:

    • pc-ble-driver-py 0.15.0 (latest)
    • nRF52840 Dongle (PCA10059) running connectivity FW 4.1.2 SD API v5 (latest supported)

    The python script is just subscribing for notifications (on the selected custom service/char in my case, but I believe it could be whatever, even Nordic UART) and printing that line you've seen in the log with the data received.

    I believe there's no scanning active after the connection to the peripheral.
    I'm calling this API:

    self.adapter.driver.ble_gap_scan_start(scan_params=params)
    Now wondering if this will keep scanning active even after I receive on_gap_evt_connected callback...
    Well, please have a look - if you manage to get a generic example working I could compare your code with mine and check for differences (my script is less than 300 lines, not a big work)...
    Thanks,
    D
Related