From e30787234c6d6b69eb0c0daf8342178d3dec4202 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 23 Aug 2019 13:35:37 +1000 Subject: [PATCH] wacom: change the data logger to take a request msg instead of just raw data Signed-off-by: Peter Hutterer --- tuhi/wacom.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tuhi/wacom.py b/tuhi/wacom.py index 3ca7932..d985fed 100644 --- a/tuhi/wacom.py +++ b/tuhi/wacom.py @@ -124,7 +124,7 @@ class DataLogger(object): A wrapper to log data transfer between the device and Tuhi. Use as:: logger = DataLogger() - logger.nordic.send([1, 2, 3...]) + logger.nordic.request(nordic_data) logger.nordic.recv([1, 2, 3...]) This uses a logger for stdout, but it also writes the log files to disk @@ -142,8 +142,8 @@ class DataLogger(object): def recv(self, data): return self.parent._recv(self.source, data) - def send(self, data): - return self.parent._send(self.source, data) + def request(self, request): + return self.parent._request(self.source, request) class _Pen(object): source = 'PEN' @@ -246,17 +246,16 @@ class DataLogger(object): if source != 'NORDIC': self.logfile.write(f' source: {source}\n') - def _send(self, source, data): - command = data[0] - arguments = data[2:] - - if data[0] in self.commands: - self.logger.debug(f'command: {self.commands[data[0]]}') - self.logger.debug(f'{self.btaddr}: TX {source} --> {command:02x} / {len(arguments):02x} / {list2hex(arguments)}') + def _request(self, source, request): + if request.opcode in self.commands: + self.logger.debug(f'command: {self.commands[request.opcode]}') + self.logger.debug(f'{self.btaddr}: TX {source} --> {request.opcode:02x} / {len(request):02x} / {list2hex(request)}') self._init_file() - if data[0] in self.commands: - self.logfile.write(f'# {self.commands[data[0]]}\n') + if request.opcode in self.commands: + self.logfile.write(f'# {self.commands[request.opcode]}\n') + + data = [request.opcode, len(request), *request] self.logfile.write(f' - send: {list2hexlist(data)}\n') if source != 'NORDIC': self.logfile.write(f' source: {source}\n') @@ -358,10 +357,11 @@ class WacomProtocolLowLevelComm(GObject.Object): self.nordic_answer += value self.nordic_event.release() - def send_nordic_command(self, command, arguments): + def send_nordic_command(self, request): chrc = self.device.characteristics[NORDIC_UART_CHRC_TX_UUID] - data = [command, len(arguments), *arguments] - self.fw_logger.nordic.send(data) + self.fw_logger.nordic.request(request) + + data = [request.opcode, len(request), *request] chrc.write_value(data) def pop_next_message(self): @@ -377,7 +377,7 @@ class WacomProtocolLowLevelComm(GObject.Object): def nordic_data_exchange(self, request, requires_reply=False, userdata=None, timeout=None): if request is not None: - self.send_nordic_command(request.opcode, request) + self.send_nordic_command(request) if requires_reply: if not self.nordic_event.acquire(timeout=timeout or 5): return None