Example #1
0
    def loop(self):
        """
        Цикл программы по считыванию данных с http-сервера.
        """
        time_begin = self.time_begin

        settings = self.settings
        plan = self.plan
        commands = self.commands

        stage = self.stage

        timer = self.timer

        # Если не поступил код завершения
        if not self.is_end:
            # Продолжение работы таймера
            t = Timer(float(settings.loc["sample rate"][0]), self.loop)
            t.start()

            # Получение данных давления
            info = client.get_info(settings, time_begin)
            # <CONSOLE>
            pressures_str = "\t".join(str(value) for value in info.iloc[0])
            info_str = "\t".join([info.index[0], pressures_str])
            print(info_str)
            #self.data = self.data.append(info, ignore_index=True)
            # Добавить запись в файл данных
            info.to_csv(self.settings.loc["pressures"][0],
                        header=False,
                        mode="a")

            # Если приоритет работы этапа - давление, то выполнение проверки превышения
            # давления. Если проверка пройдена, то перейти к следующему этапу
            if str(plan.iloc[stage]["Priority"]) == "p":
                channel = plan.iloc[stage]["Channel"]
                pressure = float(plan.iloc[stage]["Pressure"])
                # Корректное сравнение float c заданной точностью pp
                pp = settings.iloc[stage]["pressure precision"]
                if abs(pressure - self.data.iloc[-1][channel]) >= 10**(-pp):
                    timer.close()
                    self.sequence()
Example #2
0
 def __init__(self):
     self.info = client.get_info()