Exemplo n.º 1
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(menu.button['Утечка'].clicked, self)

        self.start = Start(self)
        self.prepare_pressure = common.prepare_pressure(self)
        self.pressure_4 = common.pressure_4(self)
        self.leak_on = LeakOn(self)
        self.measure = Measure(self)
        self.leak_off = LeakOff(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.pressure_4)
        self.pressure_4.addTransition(ctrl.server_updated, self.pressure_4)
        self.pressure_4.addTransition(ctrl.button['yes'].clicked, self.leak_on)
        self.leak_on.addTransition(ctrl.switch['leak 0,5'].high_value,
                                   self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.leak_off)
        self.leak_off.addTransition(ctrl.switch['leak 0,5'].low_value,
                                    self.show_result)
Exemplo n.º 2
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['РД 042']
        parent.menu.addTransition(menu.button['Поддержание давления'].clicked,
                                  self)

        self.start = Start(self)
        self.pressure_check = common.PressureCheck(self)
        self.leak_on = LeakOn(self)
        self.measure = Measure(self)
        self.leak_off = LeakOff(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.pressure_check)
        self.pressure_check.addTransition(self.pressure_check.finished,
                                          self.leak_on)
        self.leak_on.addTransition(ctrl.switch['leak 1'].high_value,
                                   self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.leak_off)
        self.leak_off.addTransition(ctrl.switch['leak 1'].low_value,
                                    self.show_result)
Exemplo n.º 3
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)

        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КЭБ 208']
        parent.menu.addTransition(menu.button['Время торможения'].clicked,
                                  self)

        self.start = Start(self)
        self.prepare_pressure = PreparePressure(self)
        self.reset_ptc = ResetPtc(self)
        self.rdkp = Rdkp(self)
        self.measure = Measure(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.reset_ptc)
        self.reset_ptc.addTransition(self.reset_ptc.finished, self.rdkp)
        self.rdkp.addTransition(ctrl.switch_with_neutral['rd-0-keb'].state_two,
                                self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.show_result)
Exemplo n.º 4
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['РД 042']
        parent.menu.addTransition(menu.button['Герметичность соединений'].clicked, self)

        self.start = Start(self)
        self.pressure_check = common.PressureCheck(self)
        self.upr_rd = UprRd(self)
        self.rdkp_rd = RdkpRd(self)
        self.ptc = Ptc(self)
        self.set_ptc = SetPtc(self)
        self.junctions_check = JunctionsCheck(self)
        self.junctions_success = JunctionsSuccess(self)
        self.junctions_fail = JunctionsFail(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.pressure_check)
        self.pressure_check.addTransition(self.pressure_check.finished, self.upr_rd)
        self.upr_rd.addTransition(ctrl.switch['upr rd 042'].high_value, self.rdkp_rd)
        self.rdkp_rd.addTransition(ctrl.switch_with_neutral['rd-0-keb'].state_one, self.ptc)
        self.ptc.addTransition(self.ptc.success, self.junctions_check)
        self.ptc.addTransition(self.ptc.fail, self.set_ptc)
        self.set_ptc.addTransition(ctrl.server_updated, self.set_ptc)
        self.set_ptc.addTransition(ctrl.button['yes'].clicked, self.junctions_check)
        self.junctions_check.addTransition(ctrl.button['yes'].clicked, self.junctions_success)
        self.junctions_check.addTransition(ctrl.button['no'].clicked, self.junctions_fail)
Exemplo n.º 5
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(menu.button['Ступени торможения'].clicked, self)

        self.start = Start(self)
        self.prepare_pressure = common.prepare_pressure(self)
        self.pressure_0 = common.pressure_0(self)
        self.breaking_stage_1 = common.breaking_stage(self, 1)
        self.breaking_stage_2 = common.breaking_stage(self, 2)
        self.breaking_stage_3 = common.breaking_stage(self, 3)
        self.breaking_stage_4 = common.breaking_stage(self, 4)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished, self.pressure_0)
        self.pressure_0.addTransition(ctrl.server_updated, self.pressure_0)
        self.pressure_0.addTransition(ctrl.button['yes'].clicked, self.breaking_stage_1)
        self.breaking_stage_1.addTransition(self.breaking_stage_1.finished, self.breaking_stage_2)
        self.breaking_stage_2.addTransition(self.breaking_stage_2.finished, self.breaking_stage_3)
        self.breaking_stage_3.addTransition(self.breaking_stage_3.finished, self.breaking_stage_4)
        self.breaking_stage_4.addTransition(self.breaking_stage_4.finished, self.show_result)
Exemplo n.º 6
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        self.controller: Controller = parent.controller
        ctrl = self.controller
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent)
        self.reset = Reset(self)
        self.disable_menu = DisableMenu(self)
        self.report_data = ReportData(self)
        self.menu = Menu(self)
        parent.addTransition(
            ctrl.menu.menu['Главное меню'].button['КЭБ 208'].clicked, self)

        self.setInitialState(self.reset)
        self.reset.addTransition(self.disable_menu)
        self.disable_menu.addTransition(self.report_data)
        self.report_data.addTransition(ctrl.button['back'].clicked,
                                       self.finish)
        self.report_data.addTransition(ctrl.menu.prepare_menu.done.clicked,
                                       self.menu)
        self.menu.addTransition(ctrl.button['back'].clicked, self.finish)

        self.prepare = Prepare(self)
        self.fill = Fill(self)
        self.junctions = Junctions(self)
        self.empty = Empty(self)
        self.end = End(self)
Exemplo n.º 7
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(menu.button['Подготовка'].clicked, self)

        self.start = Start(self)
        self.install = Install(self)
        self.ku = KU(self)
        self.tc820 = Tc820(self)
        self.leak = Leak(self)
        self.enable_menu = EnableMenu(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.install)
        self.install.addTransition(ctrl.button['yes'].clicked, self.ku)
        self.ku.addTransition(ctrl.switch['ku 215'].high_value, self.tc820)
        self.tc820.addTransition(ctrl.switch['tc 820'].low_value, self.leak)
        self.leak.addTransition(ctrl.switch['leak 0,5'].low_value,
                                self.enable_menu)
Exemplo n.º 8
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)

        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КЭБ 208']
        parent.menu.addTransition(menu.button['Герметичность соединений'].clicked, self)

        self.start = Start(self)
        self.prepare_pressure = PreparePressure(self)
        self.set_ptc = SetPtc(self)
        self.check_junctions = CheckJunctions(self)
        self.junctions_success = JunctionsSuccess(self)
        self.junctions_fail = JunctionsFail(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished, self.set_ptc)
        self.set_ptc.addTransition(self.set_ptc.finished, self.check_junctions)
        self.check_junctions.addTransition(ctrl.button['yes'].clicked, self.junctions_success)
        self.check_junctions.addTransition(ctrl.button['no'].clicked, self.junctions_fail)
Exemplo n.º 9
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(
            menu.button['Герметичность соединений'].clicked, self)

        self.start = Start(self)
        self.prepare_pressure = common.prepare_pressure(self)
        self.pressure_4 = common.pressure_4(self)
        self.check_junctions = CheckJunctions(self)
        self.junctions_fail = JunctionsFail(self)
        self.junctions_success = JunctionsSuccess(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.pressure_4)
        self.pressure_4.addTransition(ctrl.server_updated, self.pressure_4)
        self.pressure_4.addTransition(ctrl.button['yes'].clicked,
                                      self.check_junctions)
        self.check_junctions.addTransition(ctrl.button['yes'].clicked,
                                           self.junctions_success)
        self.check_junctions.addTransition(ctrl.button['no'].clicked,
                                           self.junctions_fail)
Exemplo n.º 10
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(menu.button['Подготовка'].clicked, self)

        self.start = Start(self)
        self.install = Install(self)
        self.prepare_pressure = common.prepare_pressure(self)
        self.leak = Leak(self)
        self.tank = Tank(self)
        self.pim_0 = Pim0(self)
        self.enable_menu = EnableMenu(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.install)
        self.install.addTransition(ctrl.button['yes'].clicked,
                                   self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.leak)
        self.leak.addTransition(ctrl.switch['leak 0,5'].low_value, self.tank)
        self.tank.addTransition(ctrl.switch_with_neutral['tank'].state_two,
                                self.pim_0)
        self.pim_0.addTransition(ctrl.server_updated, self.pim_0)
        self.pim_0.addTransition(self.pim_0.done, self.enable_menu)
Exemplo n.º 11
0
    def createState(self):
        # state defintion
        mainState = QState(self.fsm)
        finalState = QFinalState(self.fsm)
        self.fsm.setInitialState(mainState)

        initState = QState(mainState)
        standbyState = QState(mainState)

        #transition defition
        mainState.setInitialState(initState)
        mainState.addTransition(self.sigStateStop, finalState)

        initState.addTransition(self.sigInitOk, standbyState)
        standbyState.addTransition(self.sigError, initState)

        # #state entered slot connect
        mainState.entered.connect(self.mainStateEntered)
        initState.entered.connect(self.initStateEntered)
        standbyState.entered.connect(self.standbyStateEntered)
        finalState.entered.connect(self.finalStateEntered)

        #fsm start
        self.fsm.start()

        pass
Exemplo n.º 12
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        ctrl = parent.controller
        self.controller = ctrl
        common: Common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        menu = ctrl.menu.menu['РД 042']
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        parent.menu.addTransition(menu.button['Подготовка'].clicked, self)

        self.start = Start(self)
        self.tc820 = Tc820(self)
        self.set_rd = SetRd(self)
        self.rdkp_0 = Rdkp0(self)
        self.pressure_check = common.PressureCheck(self)
        self.enable_menu = EnableMenu(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.set_rd)
        self.set_rd.addTransition(ctrl.button['yes'].clicked, self.tc820)
        self.tc820.addTransition(ctrl.switch['tc 820'].high_value, self.rdkp_0)
        self.rdkp_0.addTransition(
            ctrl.switch_with_neutral['rd-0-keb'].state_neutral,
            self.pressure_check)
        self.pressure_check.addTransition(self.pressure_check.finished,
                                          self.enable_menu)
Exemplo n.º 13
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КП 106']
        parent.menu.addTransition(menu.button['Завершение'].clicked, self)

        self.start = Start(self)
        self.upr_rd = UprRd(self)
        self.rd = Rd(self)
        self.kp106 = Kp106(self)
        self.km = Km(self)
        self.rdkp = RdKp(self)
        self.tc820 = Tc820(self)
        self.uninstall = Uninstall(self)
        self.report = Report(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.upr_rd)
        self.upr_rd.addTransition(ctrl.switch['upr rd 042'].low_value, self.rd)
        self.rd.addTransition(ctrl.switch['rd 042'].low_value, self.kp106)
        self.kp106.addTransition(ctrl.switch['kp 106'].low_value, self.km)
        self.km.addTransition(ctrl.switch_with_neutral['km'].state_neutral,
                              self.rdkp)
        self.rdkp.addTransition(
            ctrl.switch_with_neutral['rd-0-keb'].state_neutral, self.tc820)
        self.tc820.addTransition(ctrl.switch['tc 820'].low_value,
                                 self.uninstall)
        self.uninstall.addTransition(ctrl.button['yes'].clicked, self.report)
Exemplo n.º 14
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КУ 215']
        parent.menu.addTransition(menu.button['Время наполнения'].clicked,
                                  self)

        self.start = Start(self)
        self.prepare_pressure = common.prepare_pressure(self)
        self.pressure_0 = common.pressure_0(self)
        self.handle_4 = Handle4(self)
        self.measure = Measure(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.pressure_0)
        self.pressure_0.addTransition(ctrl.server_updated, self.pressure_0)
        self.pressure_0.addTransition(ctrl.button['yes'].clicked,
                                      self.handle_4)
        self.handle_4.addTransition(ctrl.server_updated, self.handle_4)
        self.handle_4.addTransition(self.handle_4.done, self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.show_result)
Exemplo n.º 15
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        common = Common(self)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['РД 042']
        parent.menu.addTransition(menu.button['Время наполнения'].clicked, self)

        self.start = Start(self)
        self.rdkp_0 = Rdkp0(self)
        self.upr_rd_off = UprRdOff(self)
        self.ptc = Ptc(self)
        self.set_ptc = SetPtc(self)
        self.pressure_check = common.PressureCheck(self)
        self.rdkp_rd = RdkpRd(self)
        self.upr_rd_on = UprRdOn(self)
        self.measure = Measure(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.pressure_check)
        self.pressure_check.addTransition(self.pressure_check.finished, self.upr_rd_off)
        self.upr_rd_off.addTransition(ctrl.switch['upr rd 042'].low_value, self.ptc)
        self.ptc.addTransition(self.ptc.success, self.upr_rd_on)
        self.ptc.addTransition(self.ptc.fail, self.set_ptc)
        self.set_ptc.addTransition(ctrl.server_updated, self.set_ptc)
        self.set_ptc.addTransition(ctrl.button['yes'].clicked, self.upr_rd_on)
        self.upr_rd_on.addTransition(ctrl.switch['upr rd 042'].high_value, self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.show_result)
Exemplo n.º 16
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)

        self.controller: Controller = parent.controller
        ctrl = self.controller
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КЭБ 208']
        parent.menu.addTransition(
            menu.button['Подготовка к испытанию'].clicked, self)

        self.start = Start(self)
        self.install_rd = InstallRd(self)
        self.rd = Rd(self)
        self.reset_ptc = ResetPtc(self)
        self.voltage = Voltage(self)
        self.install_keb = InstallKeb(self)
        self.prepare_pressure = PreparePressure(self)
        self.tc820 = Tc820(self)
        self.enable_menu = EnableMenu(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.install_rd)
        self.install_rd.addTransition(ctrl.button['yes'].clicked, self.rd)
        self.rd.addTransition(ctrl.switch['rd 042'].high_value, self.reset_ptc)
        self.reset_ptc.addTransition(self.reset_ptc.finished, self.voltage)
        self.voltage.addTransition(ctrl.button['yes'].clicked,
                                   self.install_keb)
        self.install_keb.addTransition(ctrl.button['yes'].clicked,
                                       self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.tc820)
        self.tc820.addTransition(ctrl.switch['tc 820'].high_value,
                                 self.enable_menu)
Exemplo n.º 17
0
    def set_states(self):
        """ Create state machine states """

        self.rootState = QState()
        # Initial setup states
        self.languageState = QState(self.rootState)
        self.loadState = QState(self.rootState)
        self.instructState = QState(self.rootState)
        self.nameState = QState(self.rootState)
        self.setplayersState = QState(self.rootState)
        self.tileState = QState(self.rootState)
        self.checkState = QState(self.rootState)
        self.setupState = QState(self.rootState)
        # Wait state between turns
        self.startState = QState(self.rootState)
        # Playing states
        self.playState = QState(self.rootState)
        self.blankState = QState(self.rootState)
        self.acceptState = QState(self.rootState)
        self.passState = QState(self.rootState)
        self.challengeState = QState(self.rootState)
        self.exchangeState = QState(self.rootState)
        self.endState = QState(self.rootState)
        # End state
        self.quitState = QFinalState()
Exemplo n.º 18
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['РД 042']
        parent.menu.addTransition(menu.button['Завершение'].clicked, self)

        self.start = Start(self)
        self.upr_rd = UprRd(self)
        self.ptc = Ptc(self)
        self.rd = Rd(self)
        self.rdkp_0 = RdKp0(self)
        self.tank_2 = Tank2(self)
        self.uninstall = Uninstall(self)
        self.air = Air(self)
        self.report = Report(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.upr_rd)
        self.upr_rd.addTransition(ctrl.switch['upr rd 042'].low_value,
                                  self.ptc)
        self.ptc.addTransition(ctrl.server_updated, self.ptc)
        self.ptc.addTransition(self.ptc.done, self.rd)
        self.rd.addTransition(ctrl.switch['rd 042'].low_value, self.rdkp_0)
        self.rdkp_0.addTransition(
            ctrl.switch_with_neutral['rd-0-keb'].state_neutral, self.tank_2)
        self.tank_2.addTransition(ctrl.server_updated, self.tank_2)
        self.tank_2.addTransition(self.tank_2.done, self.uninstall)
        self.uninstall.addTransition(ctrl.button['yes'].clicked, self.air)
        self.air.addTransition(ctrl.server_updated, self.air)
        self.air.addTransition(self.air.done, self.report)
Exemplo n.º 19
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)

        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КЭБ 208']
        parent.menu.addTransition(menu.button['Время отпуска'].clicked, self)

        self.start = Start(self)
        self.prepare_pressure = PreparePressure(self)
        self.set_ptc = SetPtc(self)
        self.auto = Auto(self)
        self.measure = Measure(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.prepare_pressure)
        self.prepare_pressure.addTransition(self.prepare_pressure.finished,
                                            self.set_ptc)
        self.set_ptc.addTransition(self.set_ptc.finished, self.auto)
        self.auto.addTransition(ctrl.server_updated, self.auto)
        self.auto.addTransition(self.auto.done, self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.show_result)
Exemplo n.º 20
0
    def __init__(self, controller: Controller, menu_state: QState):
        super().__init__(parent=controller.stm)
        global ctrl
        ctrl = controller
        common = Common(controller=ctrl)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, menu_state)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['БТП 020']
        menu_state.addTransition(menu.button['Замещение торможения'].clicked,
                                 self)

        self.start = Start(self)
        self.ppm = common.Ppm(self)
        self.el_breaking = common.ElBreaking(self)
        self.speed_60 = common.Speed60(self)
        self.ku_215 = common.KU215(self)
        self.pim = common.Pim(self)
        self.enter = common.Enter(state='- 0 -', parent=self)
        self.el_breaking_on = ElBreakingOn(self)
        self.measure = Measure(self)
        self.ok = Ok(self)
        self.ok_measure = OkMeasure(self)
        self.el_breaking_off = ElBreakingOff(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.ppm)
        self.ppm.addTransition(ctrl.server_updated, self.ppm)
        self.ppm.addTransition(self.ppm.done, self.el_breaking)
        self.el_breaking.addTransition(ctrl.switch['el. braking'].low_value,
                                       self.speed_60)
        self.speed_60.addTransition(ctrl.switch['>60 km/h'].low_value,
                                    self.ku_215)
        self.ku_215.addTransition(ctrl.switch['ku 215'].high_value, self.pim)
        self.pim.addTransition(ctrl.server_updated, self.pim)
        self.pim.addTransition(self.pim.done, self.enter)
        self.enter.addTransition(
            ctrl.switch_with_neutral['enter'].state_neutral,
            self.el_breaking_on)
        self.el_breaking_on.addTransition(ctrl.server_updated,
                                          self.el_breaking_on)
        self.el_breaking_on.addTransition(self.el_breaking_on.done,
                                          self.measure)
        self.measure.addTransition(ctrl.server_updated, self.measure)
        self.measure.addTransition(self.measure.done, self.ok)
        self.ok.addTransition(ctrl.switch['ok'].high_value, self.ok_measure)
        self.ok_measure.addTransition(ctrl.server_updated, self.ok_measure)
        self.ok_measure.addTransition(ctrl.switch['ok'].low_value,
                                      self.el_breaking_off)
        self.el_breaking_off.addTransition(ctrl.server_updated,
                                           self.el_breaking_off)
        self.el_breaking_off.addTransition(self.el_breaking_off.done,
                                           self.show_result)
Exemplo n.º 21
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        self.enter = Enter(self)
        self.ku_215 = Ku215(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.enter)
        self.enter.addTransition(ctrl.switch_with_neutral['km'].state_neutral,
                                 self.ku_215)
        self.ku_215.addTransition(ctrl.switch['ku 215'].high_value,
                                  self.finish)
Exemplo n.º 22
0
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.pim = Pim(self)
        self.rd042 = Rd042(self)
        self.prdsd = Prdsd(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.pim)
        self.pim.addTransition(self.pim.finished, self.rd042)
        self.rd042.addTransition(ctrl.switch['rd 042'].high_value, self.prdsd)
        self.prdsd.addTransition(self.prdsd.finished, self.finish)
Exemplo n.º 23
0
    def __init__(self, parent, stage: int):
        super().__init__(parent=parent)

        self.handle_stage = HandleStage(self, stage)
        self.stabilize = Stabilize(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.handle_stage)
        self.handle_stage.addTransition(ctrl.server_updated, self.handle_stage)
        self.handle_stage.addTransition(self.handle_stage.done, self.stabilize)
        self.stabilize.addTransition(ctrl.server_updated, self.stabilize)
        self.stabilize.addTransition(self.stabilize.done, self.finish)
Exemplo n.º 24
0
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.upr_rd042 = UprRd042(self)
        self.check_prdsd = CheckPrsd(self)
        self.set_prdsd = SetPrdsd(self)
        self.finsh = QFinalState(self)

        self.setInitialState(self.upr_rd042)
        self.upr_rd042.addTransition(ctrl.switch['upr rd 042'].high_value, self.check_prdsd)
        self.check_prdsd.addTransition(self.check_prdsd.success, self.finsh)
        self.check_prdsd.addTransition(self.check_prdsd.fail, self.set_prdsd)
        self.set_prdsd.addTransition(ctrl.server_updated, self.set_prdsd)
        self.set_prdsd.addTransition(ctrl.button['yes'].clicked, self.finsh)
Exemplo n.º 25
0
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.tank = Tank(self)
        self.check_pim = CheckPim(self)
        self.set_pim = SetPim(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.tank)
        self.tank.addTransition(ctrl.switch_with_neutral['tank'].state_one, self.check_pim)
        self.check_pim.addTransition(self.check_pim.success, self.finish)
        self.check_pim.addTransition(self.check_pim.fail, self.set_pim)
        self.set_pim.addTransition(ctrl.server_updated, self.set_pim)
        self.set_pim.addTransition(ctrl.button['yes'].clicked, self.finish)
Exemplo n.º 26
0
    def __init__(self, parent):
        super().__init__(parent=parent.controller.stm)
        global ctrl
        self.controller: Controller = parent.controller
        ctrl = self.controller
        self.finish = QFinalState(self)
        self.addTransition(self.finished, parent.menu)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['КП 106']
        parent.menu.addTransition(
            menu.button['Подготовка к испытанию'].clicked, self)

        self.start = Start(self)
        self.install = Install(self)
        self.tc820 = Tc820(self)
        self.rdkp = Rdkp(self)
        self.km = Km(self)
        self.ptm = Ptm(self)
        self.set_ptm = SetPtm(self)
        self.kp106 = Kp106(self)
        self.rd042 = Rd042(self)
        self.upr_rd042 = UprRd042(self)
        self.pupr = Pupr(self)
        self.set_pupr = SetPupr(self)
        self.enable_menu = EnableMenu(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.install)
        self.install.addTransition(ctrl.button['yes'].clicked, self.tc820)
        self.tc820.addTransition(ctrl.switch['tc 820'].high_value, self.rdkp)
        self.rdkp.addTransition(ctrl.switch_with_neutral['rd-0-keb'].state_two,
                                self.km)
        self.km.addTransition(ctrl.switch_with_neutral['km'].state_one,
                              self.ptm)
        self.ptm.addTransition(self.ptm.success, self.kp106)
        self.ptm.addTransition(self.ptm.fail, self.set_ptm)
        self.set_ptm.addTransition(ctrl.server_updated, self.set_ptm)
        self.set_ptm.addTransition(ctrl.button['yes'].clicked, self.kp106)
        self.kp106.addTransition(ctrl.switch['kp 106'].high_value, self.rd042)
        self.rd042.addTransition(ctrl.switch['rd 042'].high_value,
                                 self.upr_rd042)
        self.upr_rd042.addTransition(ctrl.switch['upr rd 042'].high_value,
                                     self.pupr)
        self.pupr.addTransition(self.pupr.success, self.enable_menu)
        self.pupr.addTransition(self.pupr.fail, self.set_pupr)
        self.set_pupr.addTransition(ctrl.server_updated, self.set_pupr)
        self.set_pupr.addTransition(ctrl.button['yes'].clicked,
                                    self.enable_menu)
Exemplo n.º 27
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.set_pim = SetPim(self)
        self.keb = Keb(self)
        self.rd = Rd(self)
        self.set_pupr = SetPupr(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.set_pim)
        self.set_pim.addTransition(self.set_pim.finished, self.keb)
        self.keb.addTransition(ctrl.switch['keb 208'].high_value, self.rd)
        self.rd.addTransition(ctrl.switch['rd 042'].high_value, self.set_pupr)
        self.set_pupr.addTransition(self.set_pupr.finished, self.finish)
Exemplo n.º 28
0
    def __init__(self, controller: Controller, menu_state: QState):
        super().__init__(parent=controller.stm)
        global ctrl
        ctrl = controller
        common = Common(controller=ctrl)
        self.finish = QFinalState(self)
        self.addTransition(self.finished, menu_state)
        self.addTransition(ctrl.button['back'].clicked, self.finish)
        menu = ctrl.menu.menu['БТП 020']
        menu_state.addTransition(menu.button['Повышенная скорость'].clicked,
                                 self)

        self.start = Start(self)
        self.ppm = common.Ppm(self)
        self.el_breaking = common.ElBreaking(self)
        self.speed_60 = common.Speed60(self)
        self.ku_215 = common.KU215(self)
        self.pim = common.Pim(self)
        self.enter = common.Enter(state='- 0 -', parent=self)
        self.speed_on = SpeedOn(self)
        self.measure_fill = MeasureFill(self)

        self.speed_off = SpeedOff(self)
        self.measure_empty = MeasureEmpty(self)
        self.show_result = ShowResult(self)

        self.setInitialState(self.start)
        self.start.addTransition(self.ppm)
        self.ppm.addTransition(ctrl.server_updated, self.ppm)
        self.ppm.addTransition(self.ppm.done, self.ku_215)
        # self.el_breaking.addTransition(ctrl.switch['el. braking'].low_value, self.speed_60)
        # self.speed_60.addTransition(ctrl.switch['>60 km/h'].low_value, self.ku_215)
        self.ku_215.addTransition(ctrl.switch['ku 215'].high_value, self.pim)
        self.pim.addTransition(ctrl.server_updated, self.pim)
        self.pim.addTransition(self.pim.done, self.enter)
        self.enter.addTransition(ctrl.switch_with_neutral['km'].state_neutral,
                                 self.speed_on)
        self.speed_on.addTransition(ctrl.server_updated, self.speed_on)
        self.speed_on.addTransition(self.speed_on.done, self.measure_fill)
        self.measure_fill.addTransition(ctrl.server_updated, self.measure_fill)
        self.measure_fill.addTransition(self.measure_fill.done, self.speed_off)
        self.speed_off.addTransition(ctrl.server_updated, self.speed_off)
        self.speed_off.addTransition(self.speed_off.done, self.measure_empty)
        self.measure_empty.addTransition(ctrl.server_updated,
                                         self.measure_empty)
        self.measure_empty.addTransition(self.measure_empty.done,
                                         self.show_result)
Exemplo n.º 29
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.upr_rd = UprRd(self)
        self.pupr = Pupr(self)
        self.check_pupr = CheckPupr(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.upr_rd)
        self.upr_rd.addTransition(ctrl.switch['upr rd 042'].high_value,
                                  self.pupr)
        self.pupr.addTransition(self.pupr.success, self.finish)
        self.pupr.addTransition(self.pupr.fail, self.check_pupr)
        self.check_pupr.addTransition(ctrl.server_updated, self.check_pupr)
        self.check_pupr.addTransition(ctrl.button['yes'].clicked, self.finish)
Exemplo n.º 30
0
    def __init__(self, parent):
        super().__init__(parent=parent)
        self.controller: Controller = parent.controller
        ctrl = self.controller

        self.rdkp_0 = Rdkp0(self)
        self.ptc_0 = Ptc0(self)
        self.check_ptc_0 = CheckPtc0(self)
        self.finish = QFinalState(self)

        self.setInitialState(self.rdkp_0)
        self.rdkp_0.addTransition(
            ctrl.switch_with_neutral['rd-0-keb'].state_neutral, self.ptc_0)
        self.ptc_0.addTransition(self.ptc_0.success, self.finish)
        self.ptc_0.addTransition(self.ptc_0.fail, self.check_ptc_0)
        self.check_ptc_0.addTransition(ctrl.server_updated, self.check_ptc_0)
        self.check_ptc_0.addTransition(self.check_ptc_0.done, self.finish)
Exemplo n.º 31
0
    def loadState(self, dev, stateParam, stateID = ""):

        curExecContext = ScExecContext()
        curExecContext.stateMachine = self.stateMachine
        curHistoryState = None
        debug = True

        r = QXmlStreamReader(dev)

        while not r.atEnd():
            r.readNext()
            if r.isStartElement():
                logger.info("Element :<%s>", r.name())
                #
                # <scxml>
                #
                name = r.name().lower()
                if name == "scxml":

                    if stateID == "":
                        topLevelState = curState = stateParam
                        self.stateInfo[curState] = r.attributes().value("initial")
                        if curState == self.stateMachine:
                            pass
                #
                # <state> || <parallel>
                #
                elif name == "state" or name == "parallel":
                    inRoot = False
                    stateId = r.attributes().value("id")
                    newState = None
                    #
                    # Create state
                    #
                    if curState is not None:
                        logger.info("Creating state [%s] child of [%s]", stateId, curState.objectName())
                        type = QState.ExclusiveStates if name == "state" else QState.ParallelStates
                        newState = QState(type, curState)
                    #
                    # ???
                    #
                    elif stateId == stateID:
                        topLevelState = newState = stateParam

                    if newState is not None:
                        self.stateInfo[newState] = r.attributes().value("initial")
                        newState.setObjectName(stateId)
                        #
                        # initial state
                        #
                        if stateId is not "" and self.stateInfo[curState] == stateId:
                            if curState == self.stateMachine:
                                logger.info("Setting [%s] initial state to [%s]",
                                            self.stateMachine.objectName(),
                                            newState.objectName())
                                self.stateMachine.setInitialState(newState)
                            else:
                                logger.info("Setting [%s] initial state to [%s]",
                                            curState.objectName(),
                                            newState.objectName())
                                curState.setInitialState(newState)
                        #
                        # TODO implement src attribute management in state element
                        #
                        initialID = r.attributes().value("initial")
                        self.stateByID[stateId] = newState
                        curState = newState
                        curExecContext.state = newState

                        if debug:

                            # Add entry and exit log

                            curExecContext.script = 'logger.debug("[scxml] [debug] > Entering state: [' + stateId + ']")'
                            curExecContext.type = ScExecContext.StateEntry
                            curExecContext.applyScript()
                            curExecContext.script = 'logger.debug("[scxml] [debug] < Exiting state: [' + stateId + ']")'
                            curExecContext.type = ScExecContext.StateExit
                            curExecContext.applyScript()
                #
                # <initial>
                #
                elif name == "initial":
                    if curState is not None and self.stateInfo[curState] == "":
                        logger.info("Creating state [%s] child of [%s]", stateId, curState.objectName())
                        newState = QState(curState)
                        curState.setInitialState(newState)
                #
                # <history>
                #
                elif name == "history":
                    if curState is not None:
                        stateId = r.attributes().value("id")
                        type = r.attributes().value("type")
                        type = QHistoryState.ShallowHistory if type == "shallow" else QHistoryState.DeepHistory
                        curHistoryState = QHistoryState(type)
                        curHistoryState.setObjectName(stateId)
                        self.stateByID[stateId] = curHistoryState
                #
                # <final>
                #
                elif name == "final":
                    if curState is not None:
                        stateId = r.attributes().value("id")
                        f = QFinalState(curState)
                        f.setObjectName(stateId)
                        curExecContext.state = f
                        self.statesWithFinal.add(curState)
                        gp = curState.parentState()
                        if gp is not None:
                            if gp.childMode() == QState.ParallelStates:
                                self.statesWithFinal.add()
                        self.stateByID[stateId] = f

                        if debug:

                            # Add entry and exit log

                            curExecContext.script = 'logger.debug("[scxml] [debug] > Entering final state: [' + stateId + ']")'
                            curExecContext.type = ScExecContext.StateEntry
                            curExecContext.applyScript()
                            curExecContext.script = 'logger.debug("[scxml] [debug] < Exiting final state: [' + stateId + ']")'
                            curExecContext.type = ScExecContext.StateExit
                            curExecContext.applyScript()

                #
                # <script>
                #
                elif name == "script":
                    txt = r.readElementText()
                    #
                    # The SCXML Processor MUST evaluate any <script> element that is a child
                    # of <scxml> at document load time
                    #
                    if curExecContext.type == ScExecContext.Unknown and curState == topLevelState:
                        # TODO execute script
                        pass
                    else:
                        curExecContext.script += txt
                #
                # <log>
                #
                elif name == "log":
                    curExecContext.script += 'logger.' + r.attributes().value("level") + '("[' + \
                                             r.attributes().value("label") + '] [' +  \
                                             r.attributes().value("level") + '] ' + r.attributes().value("expr") + '")'
                #
                # <assign>
                #
                elif name == "assign":
                    pass
                #
                # <if>
                #
                elif name == "if":
                    pass
                #
                # <elseif>
                #
                elif name == "elseif":
                    pass
                #
                # <else>
                #
                elif name == "else":
                    pass
                #
                # <cancel>
                #
                elif name == "cancel":
                    pass
                #
                # <onentry>
                #
                elif name == "onentry":
                    curExecContext.type = ScExecContext.StateEntry
                    curExecContext.script = ""
                #
                # <onexit>
                #
                elif name == "onexit":
                    curExecContext.type = ScExecContext.StateExit
                    curExecContext.script = ""
                #
                # <raise>
                #
                elif name == "raise":
                    pass
                #
                # <send>
                #
                elif name == "send":
                    pass
                #
                # <invoke>
                #
                elif name == "invoke":
                    pass
                #
                # <transition>
                #
                elif name == "transition":
                    if curHistoryState is not None:
                        inf = ScHistoryInfo()
                        inf.hstate = curHistoryState
                        inf.defaultStateID = r.attributes().value("target")
                        self.historyInfo.append(inf)
                    else:
                        inf = ScTransitionInfo()
                        inf.targets = r.attributes().value("target").split() # TODO split targets
                        curExecContext.type = ScExecContext.Transition

                        curExecContext.script = ""
                        if debug:
                            curExecContext.script = 'logger.debug("[scxml] [debug] = Transitioning to: [' \
                                                    + ', '.join(inf.targets) + ']")' + '\n'


                        curTransitions = list()
                        inf.transitions = list()
                        self.transitionsInf.append(inf)

                        for pfx in r.attributes().value("event").split(' '):
                            sigTransition = None
                            if pfx == '':

                                # For eventless transition create QScxmlEventlessTransition transition

                                sigTransition = QScxmlEventlessTransition(self.stateMachine)

                            elif pfx.startswith("q-signal:"):

                                # For all q-signal event, add a QSxcmlSignalTransition

                                self.signalEvents.append(pfx)

                                # get object name (a.b.c) => a

                                objName = pfx[pfx.index(':')+1:pfx.index('.')]

                                # get object reference

                                obj = self.stateMachine.registeredObjects[objName]

                                # get signal reference

                                for attr in pfx[pfx.index('.')+1:].split('.'):
                                    sig = getattr(obj, attr)
                                    obj = sig

                                # create Signal transition

                                sigTransition = QScxmlSignalTransition(sig, self.stateMachine)

                            if sigTransition is not None:

                                # add condition to transition

                                sigTransition.setConditionExpression(r.attributes().value("cond"))

                                # add transition to current state

                                curState.addTransition(sigTransition)

                                # append sigTransition to transition info

                                inf.transitions.append(sigTransition)

                                # append sigTransition to curTransitions list

                                curTransitions.append(sigTransition)

                            else:
                                logger.error("Transition creation error")
            #
            # End element
            #
            elif r.isEndElement():
                name = r.name().lower()
                #
                # </state> or </parallel>
                #
                if name == "state" or name == "parallel":
                    if curState == topLevelState:
                        return
                    else:
                        curState = curState.parent()
                        curExecContext.state = curState
                #
                # </history>
                #
                elif name == "history":
                    curHistoryState = None
                #
                # </final>
                #
                elif name == "final":
                    curExecContext.state = curExecContext.state.parentState()
                #
                # </if>
                #
                elif name == "if":
                    pass
                #
                # </send> </raise>
                #
                elif name == "send" or name == "raise":
                    pass
                #
                # </onentry> </onexit> </scxml>
                #
                elif name == "onentry" or name == "onexit" or name == "scxml":
                    curExecContext.state = curState
                    curExecContext.type = ScExecContext.StateExit if name == "onexit" else ScExecContext.StateEntry
                    curExecContext.applyScript()
                    curExecContext.type = ScExecContext.Unknown
                    curExecContext.script = ""
                #
                # </transition>
                #
                elif name == "transition":
                    if curHistoryState is None:
                        curExecContext.transitions = curTransitions
                        curExecContext.type = ScExecContext.Transition
                        curExecContext.applyScript()
                        curExecContext.script = ""
                    curExecContext.type = ScExecContext.Unknown