88import struct
99import threading
1010import time
11- from typing import Any , Callable
11+ from typing import Callable
1212
1313import tzlocal
1414from websocket import ABNF , WebSocketApp
1515
1616from ._rscpLib import (
17+ RscpMessage ,
1718 rscpDecode ,
1819 rscpEncode ,
1920 rscpFindTag ,
@@ -132,11 +133,9 @@ def reset(self):
132133 self .virtConId = None
133134 self .virtAuthLevel = None
134135 self .webSerialno = None
135- self .responseCallback : Callable [
136- [tuple [str | int | RscpTag , str | int | RscpType , Any ]], None
137- ]
136+ self .responseCallback : Callable [[RscpMessage ], None ]
138137 self .responseCallbackCalled = False
139- self .requestResult : tuple [ str | int | RscpTag , str | int | RscpType , Any ]
138+ self .requestResult : RscpMessage
140139
141140 def buildVirtualConn (self ):
142141 """Method to create Virtual Connection."""
@@ -161,9 +160,7 @@ def buildVirtualConn(self):
161160 # print("--------------------- Sending virtual conn")
162161 self .ws .send (virtualConn , ABNF .OPCODE_BINARY )
163162
164- def respondToINFORequest (
165- self , decoded : tuple [str | int | RscpTag , str | int | RscpType , Any ]
166- ):
163+ def respondToINFORequest (self , decoded : RscpMessage ):
167164 """Create Response to INFO request."""
168165 TIMEZONE_STR , utcDiffS = calcTimeZone ()
169166
@@ -228,9 +225,7 @@ def respondToINFORequest(
228225 return ""
229226 return None # this is no standard request
230227
231- def registerConnectionHandler (
232- self , decodedMsg : tuple [str | int | RscpTag , str | int | RscpType , Any ]
233- ):
228+ def registerConnectionHandler (self , decodedMsg : RscpMessage ):
234229 """Registering Connection Handler."""
235230 if self .conId == 0 :
236231 self .conId = rscpFindTagIndex (decodedMsg , RscpTag .SERVER_CONNECTION_ID )
@@ -324,14 +319,10 @@ def on_message(self, message: bytes):
324319 ABNF .OPCODE_BINARY ,
325320 )
326321
327- def _defaultRequestCallback (
328- self , msg : tuple [str | int | RscpTag , str | int | RscpType , Any ]
329- ):
322+ def _defaultRequestCallback (self , msg : RscpMessage ):
330323 self .requestResult = msg
331324
332- def sendRequest (
333- self , message : tuple [str | int | RscpTag , str | int | RscpType , Any ]
334- ) -> tuple [str | int | RscpTag , str | int | RscpType , Any ]:
325+ def sendRequest (self , message : RscpMessage ) -> RscpMessage :
335326 """Send a request and wait for a response."""
336327 self ._sendRequest_internal (rscpFrame (rscpEncode (message )))
337328 for _ in range (self .TIMEOUT * 10 ):
@@ -343,24 +334,19 @@ def sendRequest(
343334
344335 return self .requestResult
345336
346- def sendCommand (
347- self , message : tuple [str | int | RscpTag , str | int | RscpType , Any ]
348- ):
337+ def sendCommand (self , message : RscpMessage ):
349338 """Send a command."""
350339 return self ._sendRequest_internal (rscpFrame (rscpEncode (message )))
351340
352341 def _sendRequest_internal (
353342 self ,
354- innerFrame : bytes | tuple [str | int | RscpTag , str | int | RscpType , Any ],
355- callback : (
356- Callable [[tuple [str | int | RscpTag , str | int | RscpType , Any ]], None ]
357- | None
358- ) = None ,
343+ innerFrame : bytes | RscpMessage ,
344+ callback : Callable [[RscpMessage ], None ] | None = None ,
359345 ):
360346 """Internal send request method.
361347
362348 Args:
363- innerFrame (Union[ tuple, <RSCP encoded frame>] ): inner frame
349+ innerFrame (tuple | bytes ): inner frame
364350 callback (str): callback method
365351 synchronous (bool): If True, the method waits for a response (i.e. exits after calling callback).
366352 If True and callback = None, the method returns the (last) response message
0 commit comments