import wx
from . import GDSStatusPanelGUI
###########################################################################
## Class StatusImpl
###########################################################################
[docs]class StatusImpl(GDSStatusPanelGUI.Status):
"""Implementation of the status panel tab"""
def __init__(self, parent, config=None):
GDSStatusPanelGUI.Status.__init__(self, parent)
self._send_msg_buffer = []
self._recv_msg_buffer = []
# Start text control updating service
self.update_text_ctrl()
[docs] def __del__(self):
pass
[docs] def update_text_ctrl(self):
"""Called to update the status panel with new raw output. Called every 500ms on the GUI thread."""
for m in self._recv_msg_buffer:
self.StatusTabRecvTextCtl.AppendText(m)
for m in self._send_msg_buffer:
self.StatusTabSendTextCtl.AppendText(m)
self._send_msg_buffer = []
self._recv_msg_buffer = []
wx.CallLater(500, self.update_text_ctrl)
# [00 12 34 ...]
# Some data was sent
[docs] def send(self, data, dest):
"""Send callback for the encoder
Arguments:
data {bin} -- binary data packet
dest {string} -- where the data will be sent by the server
"""
str_data = (
"["
+ " ".join(
[
"{:2x}".format(byte if type(byte) != str else ord(byte))
for byte in data
]
)
+ "]\n\n"
)
self._send_msg_buffer.append(str_data)
# Some data was recvd
[docs] def on_recv(self, data):
"""Data was recved on the socket server
Arguments:
data {bin} --binnary data string that was recved
"""
str_data = (
"["
+ " ".join(
[
"{:2x}".format(byte if type(byte) != str else ord(byte))
for byte in data
]
)
+ "]\n\n"
)
self._recv_msg_buffer.append(str_data)