Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import serial
- import json
- import time
- import sys
- in_phase = False
- import os
- import datetime
- print("Тест запущен", datetime.datetime.now())
- def read_json():
- is_work = True
- count = 0
- return_data = ''
- uart_answer = ser.readline().decode('cp1251')
- while not '"time":' in uart_answer:
- uart_answer = ser.readline().decode('cp1251')
- uart_answer = ser.readline().decode('cp1251')
- while is_work:
- uart_answer = ser.readline().decode('cp1251')
- if uart_answer.startswith('}'):
- is_work = False
- return_data = return_data + uart_answer
- count = count + 1
- # if count>24:
- # is_work = False
- if return_data.count('''{\n"header": ''') > 1:
- ff = return_data.find('''{\n"header": ''')
- fs = return_data[ff+1:].find('''{\n"header": ''')
- return return_data[fs:]
- return return_data
- def print_result(parsed):
- os.system('cls')
- memstat = parsed['SPI flash info'].split(' ')[0]
- print("Статус микросхем:", "Ок" if parsed["status_hardware"] == 7 else "Плохо")
- print("Статус микросхемы памяти:", 'Ок' if memstat=="1F" else "Плохо")
- print('Давление:', parsed['PS'])
- print("Main 12В");
- print('\tU =', parsed["12_MV"], 'В')
- print('\tI =', parsed["12_MC"], 'A')
- print("Reserve 12В");
- print('\tU =', parsed["12_RV"], 'В')
- print('\tI =', parsed["12_RC"], 'A')
- print()
- print("Main 24В");
- print('\tU =', parsed["24_MV"], 'В')
- print('\tI =', parsed["24_MC"], 'A')
- print("Reserve 24В");
- print('\tU =', parsed["24_RV"], 'В')
- print('\tI =', parsed["24_RC"], 'A')
- print()
- print('220В =', parsed['220_V'], "В")
- print()
- print('t SHT31', parsed["t_SHT"])
- print('Hum SHT31', parsed["HUM"])
- print("Данные от SHT31:", parsed["sht31 data"])
- print('Реле: ', "Вкл." if parsed["relay"]=='on' else "Выкл")
- print('USB отклик : ', str(parsed["uarts"]).replace('1', 'Да').replace('0','Нет'))
- doors = parsed["door_1"]+parsed["door_2"]+parsed["door_3"]+parsed["door_4"]
- print('Датчик двери:', "Не активен" if doors == 0 else "Активен")
- if len(sys.argv)> 2:
- print("Обнаружен второй COM, отправка пакета....")
- try:
- ser2 = serial.Serial(port=sys.argv[-2] if len(sys.argv)>1 else "COM28", baudrate=19200, timeout=100)
- ser2.write(bytes('AT R1 1\r', 'cp1251'))
- time.sleep(1)
- print('...')
- ser2.write(bytes('AT R1 1\r', 'cp1251'))
- print('... получаю данные от COM ',sys.argv[-2])
- readed = read_json()
- parsed = json.loads(readed, encoding="cp1251")
- print_result(parsed)
- ser2.close()
- print("Отправка завершена. Переключение на первый COM")
- except:
- print('Не могу связаться с ', sys.argv[-2])
- try:
- with serial.Serial(port=sys.argv[-1] if len(sys.argv)>1 else "COM27", baudrate=19200, timeout=100) as ser:
- i = 0
- print('Первый COM Активен')
- while 1:
- #time.sleep(2)
- ser.write(bytes('AT R1 1\r', 'cp1251'))
- if ser.in_waiting>0:
- i+=1
- readed = read_json()
- parsed = json.loads(readed, encoding="cp1251")
- print_result(parsed)
- time.sleep(2)
- ser.write(bytes('AT I\n', 'cp1251'))
- time.sleep(2)
- except:
- print('Не могу связаться с ', sys.argv[-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement