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()
def __init__(self): self.info = client.get_info()