#python #oop #telnet
#python #ооп #telnet
Вопрос:
У меня есть простой класс, который я смоделировал, представляющий источник питания, к которому я буду удаленно подключаться через сеанс telnet. Класс имеет различные методы, включая подключение к источнику питания, включение / выключение источника питания и настройку его напряжения. Я пытаюсь добавить метод, который позволит мне собирать данные о выходном напряжении, пока он включен и установлено соединение. В качестве попытки я реализовал этот GetAllData
метод. Метод использует цикл while, где условием является выполнение цикла while до тех пор, пока состояние источника питания не будет установлено на on . Я хотел бы иметь возможность выйти из цикла method / while после отключения питания с помощью TurnOff()
метода. К сожалению, как только цикл while останавливается, он не может вырваться. Может кто-нибудь порекомендовать лучший способ реализовать то, что я пытаюсь сделать? вот мой класс ниже:
import os
import telnetlib
class PowerSupply():
# ---------------------------------- #
def __init__(self,port_no,my_name):
self.Status = "Off"
self.Port = port_no
self.Name = my_name
self.tn = None
self.HOST = "192"
# ---------------------------------- #
def TurnOn(self):
onCommand = "OUT 1r"
if self.Status == "ON":
print "I'm already on"
else:
self.tn = telnetlib.Telnet(self.HOST,self.Port)
self.tn.write(onCommand)
self.Status = "ON"
print "I am now on"
# ---------------------------------- #
def TurnOff(self):
offCommand = "OUT 0r"
self.tn.write(offCommand)
self.tn.close()
print "I am now off"
# ---------------------------------- #
def SetVoltage(self,volts):
voltageCommand = "PV" " " str(volts) "r"
self.tn.write(voltageCommand)
# ---------------------------------- #
def GetAllData(self):
while(self.Status == "ON"):
self.tn.write("DVC?r")
all_data = self.tn.read_some()
vdc = all_data.split(',')
vdc = vdc[0]
print vdc