Esempio n. 1
0
    def Switching(self,
                  param):  # リクエストのJSON({ kadenId:x, manipulateId:y })を引数とする
        # orderJson = self.getRequestStatus(param)         # リクエストのJSONをorderJsonに保持
        kadenId = param["kadenId"]  # 操作したい家電のID
        manipulateId = param["manipulateId"]  # どう操作したいか(1:ONにしたい、2:OFFにしたい)
        # ※(3:ON予約、4:OFF予約)はindex.py⇒timer.pyの直通で処理

        bool_status = self.priorConfirmation(
            kadenId, manipulateId)  # status.pyへ現在の家電のステータス確認
        if not bool_status:  # 既に求める状態になっている場合
            on_off = "ON" if manipulateId == "1" else "OFF"  # status=1なら「ON」、=2なら「OFF」の文字列をセット
            msg = "既に" + on_off + "になっています"  # 返答メッセージ
            return msg
        else:
            result = self.kadenSwitching(
                kadenId)  # remoteController.pyへ赤外線送信依頼
            if result:  # 赤外線送信の成否
                st = Status()
                rewrite = st.changeStatusJson(
                    kadenId, manipulateId)  # 成功:status.pyへのステータス書き換え依頼
                msg = "操作完了" if rewrite else "書換失敗"  # 書き換えの成否に応じてmsgをセット
                return msg
            else:
                msg = "操作失敗"  # 失敗:赤外線送信失敗メッセージをセット
                return msg
Esempio n. 2
0
class Switch:
    def __init__(self):
        self.st = Status()

    # kadenIdとmanipulateIdで家電を操作するメソッド。戻り値としてお言葉がもらえる。=========================================
    """引数 :param { kadenId:x, manipulateId:y }"""
    """戻り値:msg(文字列、処理結果を表す返答メッセージ)"""

    def switching(self,
                  param):  # リクエストのJSON({ kadenId:x, manipulateId:y })を引数とする
        logging.debug("開始 : ONOFF処理")
        kadenId = param["kadenId"]  # 操作したい家電のID
        orderStatus = param["manipulateId"]  # どう操作したいか(1:ONにしたい、2:OFFにしたい)
        # ※(3:ON予約、4:OFF予約)はindex.py⇒timer.pyの直通で処理

        bool_status = self.priorConfirmation(
            kadenId, orderStatus)  # status.pyへ現在の家電のステータス確認
        if bool_status:  # 既に求める状態になっている場合
            on_off = "ON" if orderStatus == "1" else "OFF"  # status=1なら「ON」、=2なら「OFF」の文字列をセット
            msg = "既に" + on_off + "になっています"  # 返答メッセージ
            logging.debug("end switching :" + msg)
            return msg
        else:
            result = self.kadenSwitching(
                kadenId)  # remoteController.pyへ赤外線送信依頼
            if result:  # 赤外線送信の成否

                rewrite = self.st.changeStatusJson(
                    kadenId)  # 成功:status.pyへのステータス書き換え依頼
                msg = "操作完了" if rewrite else "書換失敗"  # 書き換えの成否に応じてmsgをセット
                logging.debug("end switching :" + msg)
                return msg
            else:
                msg = "操作失敗"  # 失敗:赤外線送信失敗メッセージをセット
                logging.debug("end switching :" + msg)
                return msg

    # ▼class内の処理用メソッド▼
    def priorConfirmation(self, kadenId, orderStatus):
        """事前確認。現在の家電の状態を見てremoteController.pyに命令を送るか決める"""

        nowStatus = self.st.checkStatusForSwitch(kadenId)  # ステータス確認依頼
        if orderStatus == "1" and nowStatus == "1":  # 求める状態と現在の状態を比較
            return True  # 既に求める状態になっている⇒True
        elif orderStatus == "2" and nowStatus == "0":
            return True  # 既に求める状態になっている⇒戻り値True
        else:
            return False  # 求める状態と現在の状態が異なる⇒戻り値False

    # kadenIdを引数にしてremoteController.pyに電源操作の命令を送るメソッド=================================================
    """引数 :kadenId"""
    """戻り値:result(true/false、赤外線送信の成否)"""

    def kadenSwitching(self, kadenId):
        rc = remoteController()
        result = rc.execute(kadenId)
        return result