def get_data(self, message): """ Parameters ---------- message Returns ------- """ messg = ThreadCommand(message) if message == 'set_info': list_len = get_int(self.socket) path = [] for ind in range(list_len): path.append(get_string(self.socket)) param_xml = get_string(self.socket) messg.attributes = [path, param_xml] elif message == 'move_abs': position = get_scalar(self.socket) messg.attributes = [position] elif message == 'move_rel': position = get_scalar(self.socket) messg.attributes = [position] self.cmd_signal.emit(messg)
def command_to_from_client(self, command): sock = self.find_socket_within_connected_clients(self.client_type) if sock is not None: # if client self.client_type is connected then send it the command if command == 'x_axis': x_axis = dict(data=get_array(sock)) x_axis['label'] = get_string(sock) x_axis['units'] = get_string(sock) self.x_axis = x_axis.copy() self.emit_x_axis() elif command == 'y_axis': y_axis = dict(data=get_array(sock)) y_axis['label'] = get_string(sock) y_axis['units'] = get_string(sock) self.y_axis = y_axis.copy() self.emit_y_axis() else: self.send_command(sock, command) else: # else simulate mock data if command == "Send Data 0D": self.set_1D_Mock_data() self.data_mock = np.array([self.data_mock[0]]) elif command == "Send Data 1D": self.set_1D_Mock_data() data = self.data_mock elif command == "Send Data 2D": self.set_2D_Mock_data() data = self.data_mock self.process_cmds('Done')
def init_connection(self): # %% try: # create an INET, STREAMing socket self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # now connect to the web server on port 80 - the normal http port self.socket.connect((self.ipaddress, self.port)) self.cmd_signal.emit(ThreadCommand('connected')) send_string(self.socket, self.client_type) self.send_infos_xml( custom_tree.parameter_to_xml_string(self.settings)) self.cmd_signal.emit(ThreadCommand('get_axis')) # %% while True: try: ready_to_read, ready_to_write, in_error = \ select.select([self.socket], [self.socket], [self.socket], 0) if len(ready_to_read) != 0: message = get_string(self.socket) # print(message) self.get_data(message) if len(in_error) != 0: self.cmd_signal.emit(ThreadCommand('disconnected')) QtWidgets.QApplication.processEvents() except Exception as e: try: self.cmd_signal.emit( ThreadCommand('Update_Status', [getLineInfo() + str(e), 'log'])) send_string(self.socket, 'Quit') self.socket.close() except: pass finally: break except ConnectionRefusedError as e: self.cmd_signal.emit(ThreadCommand('disconnected')) self.cmd_signal.emit( ThreadCommand('Update_Status', [getLineInfo() + str(e), 'log']))
def read_commands(self, sock): """ Read the commands from the given socket. =============== ============ **Parameters** **Type** *sock* =============== ============ Returns ------- message_bytes The readed and decoded message See Also -------- check_received_length """ message = get_string(sock) return message