Advertisement
BanyRule

thermometer.py

Nov 25th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.82 KB | None | 0 0
  1. import socket
  2. import json     # для передачи кортежей
  3. import time     # костыль с сокетами
  4. import random   # для отладки
  5.  
  6. def get_temp(temp_id):
  7.     """
  8.    Возвращает значение на соответствующем термометре по его ID
  9.  
  10.    """
  11.  
  12.     # temp_file = open("/sys/bus/w1/devices/" + temp_id + "/w1_slave", "r")
  13.     # data = temp_file.read()
  14.     # temp_file.close()
  15.     #
  16.     # data = data.split("\n")[1].split(" ")[9]
  17.     #
  18.     # temperature = float(data[2:])
  19.     # temperature /= 1000
  20.  
  21.     # return temperature
  22.     return random.randint(0, 10)
  23.  
  24.  
  25. def submit_temp(self, temp_array):
  26.     """
  27.    Отправляет показания с термометров на порт индикации
  28.  
  29.    """
  30.     pass
  31.  
  32.  
  33. # TODO:
  34. def get_max_temp():
  35.     pass
  36.  
  37.  
  38. # TODO:
  39. def submit_max_temp():
  40.     pass
  41.  
  42.  
  43. TEMP_ID = ("28-0000078d4c68",   # ID[0] - комнатная температура
  44.            "28-0000078d4c68",   # ID[1..4] - температура на соответствующем термометре
  45.            "28-0000078d4c68",
  46.            "28-0000078d4c68",
  47.            "28-0000078d4c68",)
  48.  
  49. TEMP_MAX = (0, 0, 0, 0, 0)  # TEMP_MAX[1..4] - максимальная температура, считанная на соответствующем термометре
  50.  
  51. HOST = 'localhost'  # хост
  52. PORT = 9090  # порт, прослушиваемый сервером
  53.  
  54. with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
  55.  
  56.     s.connect((HOST, PORT))
  57.  
  58.     while True:
  59.  
  60.         current_temperature = [get_temp(thermometer) for thermometer in TEMP_ID]
  61.  
  62.         # submit-temp
  63.         encoded_array = json.dumps(current_temperature).encode('utf-8')
  64.         s.send(encoded_array)
  65.  
  66.         time.sleep(0.01)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement