У меня проблема с программированием сокетов и построением графиков для живых данных. Я написал кусок кода для получения данных от датчика, подключенного к маршрутизатору. После декодирования данных с использованием data.decode('utf-8')
я получаю данные (o / p) в виде: ['T01:', '25.8', 'T02:', '27.0', 'DeltaT:', '1.2']
. Я разделил данные на T01 и T02 в список, используя list(data.split())
. Я вызываю функцию availableDevices
в главном while
l oop. Я преобразовал строку в число с плавающей точкой и пытаюсь добавить к ней значения (чтобы обновить) для непрерывного построения графика. Я в курсе np.append
не для поплавков. Мне нужна помощь в демистификации кода и отображении значений непрерывно, предпочтительно T01 и T02.
def availableDevices():
with open(os.devnull, "wb") as limbo:
global ip
ip = "192.168.1.{0}".format(input("Enter the valid ID from the range 1-20: "))
result = subprocess.Popen(["ping", "-n", "1", "-w", "100", ip],
stdout=limbo, stderr=limbo).wait(2)
if result:
print("Inactive:", ip)
print("Enter an active IP")
else:
print("Active: ", ip)
global updatedip
updatedip = ip
print("updated ip: ", updatedip)
while True:
availableDevices()
# s.connect(ip,port)
if ip == updatedip:
print("Type the IP of the active node:\t")
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((input(), 23))
sock.sendall(b'Read')
data = sock.recv(1024)
data = sock.recv(1024)
while True:
decoded_data = ((data.decode("utf-8")))
decoded_data = list((decoded_data.split()))
a = float(decoded_data[0]) # prints the temp values continuously
b = float(decoded_data[2])