コード例 #1
0
    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())
コード例 #2
0
def recv_event(recv_data):
    """
    データ受信イベント
    """
    try:
        tpUtils.nodeOut(recv_data.decode('utf-8'))
    except Exception as e:
        tpUtils.stderr(str(e.args))
コード例 #3
0
def recv_event(flag):
    """
    データ受信イベント
    """
    try:
        tpUtils.nodeOut(flag)
    except Exception as e:
        tpUtils.stderr(str(e.args))
コード例 #4
0
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))
コード例 #5
0
    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 ---"
コード例 #6
0
    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))
コード例 #7
0
    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 ---"
コード例 #8
0
    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())
コード例 #9
0
    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())
コード例 #10
0
            "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()
コード例 #11
0
        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:
コード例 #12
0

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)
コード例 #13
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