From c8c68f7b313ea7cc4a63b4083f3b1b096613a5b8 Mon Sep 17 00:00:00 2001 From: Arda Aydin Date: Mon, 5 Oct 2026 14:57:39 +0300 Subject: [PATCH] Note why the message-length header is kept off the P-ION Tested on a P-ION (fw 1.32) at 192.168.1.252 with everything else as in 5acca52: with the 0x81 header forced on, the app save is answered but the app.sab file open never is, and the device drops off the network. Without it, the same Get with File works. Co-Authored-By: Claude Opus 5.5 --- app_state.py | 2 +- sox.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app_state.py b/app_state.py index 3dd5fdd..9fe73b0 100644 --- a/app_state.py +++ b/app_state.py @@ -8,7 +8,7 @@ so later rebinding would only ever be seen by the module that did it. import configparser import os -VERSION = "0.0.0.145" +VERSION = "0.0.0.146" PROPERTIES_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "editor.properties") DEFAULT_GRID_SIZE = 10 DEFAULT_ADD_TIMESTAMP = True diff --git a/sox.py b/sox.py index 67e9b88..a8e6f72 100644 --- a/sox.py +++ b/sox.py @@ -464,8 +464,9 @@ class SoxClient: # Same 512-byte limit as read_schema: whatever is cut off is left # blank rather than failing the connect. platform_id = res.try_str() or "" - # Ontrol's message-length header is for Orion only; the Niagara driver never - # sends it to a P-ION or R-ION. + # Ontrol's message-length header is for Orion only, as in the Niagara driver. + # A P-ION on firmware 1.32 takes it on most requests, but a file open sent with + # it goes unanswered and the device drops off the network for ~20 s. if self._session is not None: self._session.include_message_len = platform_id.startswith("ontrol-orion") scode_flags = res.u1() if res.remaining > 0 else 0