def __send_data(self, slot, comm, send_msg): """ 制御からイベントが発生した場合、TCPにてクライアントにデータを送信します。 """ try: # スロットと通信方法から送信するportを特定(localhostのみ) setting = self.tp_config.get_setting('localhost', slot, comm) if setting == None or 'portEvent' not in setting: return port = setting['portEvent'] if (port != None and port in self.tcp_server_list): # 取得したポートにデータを送信する tcp_srv = self.tcp_server_list[port] tcp_srv.send(send_msg) except tpUtils.TpCheckError as e: # トレースは出さず、メッセージのみ tpUtils.stderr(str(e.args)) return "-- FAIL ---" except Exception as e: # 失敗 tpUtils.stderr(traceback.format_exc())
def recv_event(recv_data): """ データ受信イベント """ try: tpUtils.nodeOut(recv_data.decode('utf-8')) except Exception as e: tpUtils.stderr(str(e.args))
def recv_event(flag): """ データ受信イベント """ try: tpUtils.nodeOut(flag) except Exception as e: tpUtils.stderr(str(e.args))
def recv_event_dsr(recv_data): """ データ受信イベント(DSR) """ try: result_data = json.loads(recv_data.decode()) tpUtils.nodeOut(result_data['v']) except Exception as e: tpUtils.stderr(str(e.args))
def __recv_data(self, info, rcv_msg): """ TCPのデータが受信された場合、処理を行いデータをSendする(リクエスト・リプライ専用) """ try: return self.tp_control.control(info, rcv_msg) except Exception as e: # 失敗 tpUtils.stderr(traceback.format_exc()) return "-- FAIL ---"
def recv_event(self, recv_data): """ データ受信イベント """ try: # jsonで受け取る result = json.loads(recv_data.decode()) # on/offをコールバック(on/offは反転) if result['v'] == 0: val = 1 else: val = 0 self.handler(self.callback_recv, val) except Exception as e: tpUtils.stderr(str(e.args))
def __recv_data(self, info, rcv_msg): """ TCPのデータが受信された場合、処理を行いデータをSendする(リクエスト・リプライ専用) """ try: # 排他ロック確認 if self.__lock(rcv_msg): return return self.tp_control.control(info, rcv_msg) except tpUtils.TpCheckError as e: # トレースは出さず、メッセージのみ tpUtils.stderr(str(e.args)) return "-- FAIL ---" except Exception as e: # 失敗 tpUtils.stderr(traceback.format_exc()) return "-- FAIL ---"
def __server_thread_event_send(self, setting): """ サーバーを起動します。(リプライ) """ try: # TCPサーバー(設定情報を渡す) tcp_srv = TcpServer(None, setting) # 保持(ポートごと) self.tcp_server_list[setting['portEvent']] = tcp_srv # 待機(bindのhostは指定しない) tcp_srv.recv('', setting['portEvent']) except Exception as e: # 失敗 tpUtils.stderr(traceback.format_exc())
def __server_thread_event_send(self, setting): """ サーバーを起動します。(リプライ) """ try: # TCPサーバー(設定情報を渡す) tcp_srv = TcpServer(None, setting) # 保持(ポートごと) self.tcp_server_list[setting['portEvent']] = tcp_srv # 待機 bind_host = 'localhost' if self.connect_flg: # 外部も許可 bind_host = '' tcp_srv.recv(bind_host, setting['portEvent']) except Exception as e: # 失敗 tpUtils.stderr(traceback.format_exc())
"act": "w", "add": self.i2c_addr, "cmd": 0x00, "v": [] }) self.tp00.send(json.dumps(send_data)) # 小数点第一位まで取得 return round(val, 1) if __name__ == '__main__': argvs = sys.argv if (len(argvs) <= 1): tpUtils.stderr('Need argv! [1]: slot') sys.exit(0) try: slot = argvs[1] host = None if (len(argvs) > 2): host = argvs[2] tp28 = Tp28(slot, host) except Exception as e: tpUtils.stderr(str(e.args)) sys.exit(0) while True: try: data = input()
self.tcp_client = TcpClient() self.tcp_client.connect_by_conf(self.host, self.slot, self.comm) def send(self, msg): """ データを送信します。 """ recv_data = self.tcp_client.send(msg) return recv_data if __name__ == '__main__': argvs = sys.argv if (len(argvs) <= 2): tpUtils.stderr('Need argv! [1]: slot [2]: communication') sys.exit(0) try: slot = argvs[1] comm = argvs[2] host = None if (len(argvs) > 3): host = argvs[3] tp00 = Tp00(slot, comm, host) tp00.start() except Exception as e: tpUtils.stderr(str(e.args)) sys.exit(0) while True:
def recv_event(recv_data): """ データ受信イベント """ try: tpUtils.nodeOut(recv_data.decode('utf-8')) except Exception as e: tpUtils.stderr(str(e.args)) if __name__ == '__main__': argvs = sys.argv try: host = None if (len(argvs) > 1): host = argvs[1] tpc_button = TpcButton(host) tpc_button.start(recv_event) except Exception as e: tpUtils.stderr(str(e.args)) sys.exit(0) try: # 受信待ち tpc_button.wait_for_recv() except KeyboardInterrupt: sys.exit(0)
setting_file = None if (len(argvs) > 1): setting_file = argvs[1] connect_flg = False if (len(argvs) > 2 and argvs[2] == 'true'): connect_flg = argvs[2] try: # インスタンス生成 tp_connect = TpConnect(setting_file, connect_flg) except tpUtils.TpCheckError as e: # トレースは出さず、メッセージのみ tpUtils.stderr(str(e.args)) tpUtils.stderr('Tibbo-Pi failed to start up.') sys.exit(0) # サーバ起動 tp_connect.start() # 接続完了 tpUtils.stdout('Successfully connected!') # 待ち処理 try: while True: time.sleep(1) except KeyboardInterrupt: pass