Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. import serial
  2. import json
  3. import time
  4. import sys
  5.  
  6. in_phase = False
  7. import os
  8. import datetime
  9.  
  10. print("Тест запущен", datetime.datetime.now())
  11.  
  12. def read_json():
  13. is_work = True
  14. count = 0
  15. return_data = ''
  16. uart_answer = ser.readline().decode('cp1251')
  17. while not '"time":' in uart_answer:
  18. uart_answer = ser.readline().decode('cp1251')
  19. uart_answer = ser.readline().decode('cp1251')
  20. while is_work:
  21. uart_answer = ser.readline().decode('cp1251')
  22. if uart_answer.startswith('}'):
  23. is_work = False
  24. return_data = return_data + uart_answer
  25. count = count + 1
  26. # if count>24:
  27. # is_work = False
  28. if return_data.count('''{\n"header": ''') > 1:
  29. ff = return_data.find('''{\n"header": ''')
  30. fs = return_data[ff+1:].find('''{\n"header": ''')
  31. return return_data[fs:]
  32. return return_data
  33.  
  34.  
  35. def print_result(parsed):
  36. os.system('cls')
  37. memstat = parsed['SPI flash info'].split(' ')[0]
  38. print("Статус микросхем:", "Ок" if parsed["status_hardware"] == 7 else "Плохо")
  39. print("Статус микросхемы памяти:", 'Ок' if memstat=="1F" else "Плохо")
  40. print('Давление:', parsed['PS'])
  41. print("Main 12В");
  42. print('\tU =', parsed["12_MV"], 'В')
  43. print('\tI =', parsed["12_MC"], 'A')
  44. print("Reserve 12В");
  45. print('\tU =', parsed["12_RV"], 'В')
  46. print('\tI =', parsed["12_RC"], 'A')
  47. print()
  48. print("Main 24В");
  49. print('\tU =', parsed["24_MV"], 'В')
  50. print('\tI =', parsed["24_MC"], 'A')
  51. print("Reserve 24В");
  52. print('\tU =', parsed["24_RV"], 'В')
  53. print('\tI =', parsed["24_RC"], 'A')
  54. print()
  55. print('220В =', parsed['220_V'], "В")
  56. print()
  57. print('t SHT31', parsed["t_SHT"])
  58. print('Hum SHT31', parsed["HUM"])
  59. print("Данные от SHT31:", parsed["sht31 data"])
  60. print('Реле: ', "Вкл." if parsed["relay"]=='on' else "Выкл")
  61. print('USB отклик : ', str(parsed["uarts"]).replace('1', 'Да').replace('0','Нет'))
  62. doors = parsed["door_1"]+parsed["door_2"]+parsed["door_3"]+parsed["door_4"]
  63. print('Датчик двери:', "Не активен" if doors == 0 else "Активен")
  64.  
  65. if len(sys.argv)> 2:
  66. print("Обнаружен второй COM, отправка пакета....")
  67. try:
  68. ser2 = serial.Serial(port=sys.argv[-2] if len(sys.argv)>1 else "COM28", baudrate=19200, timeout=100)
  69. ser2.write(bytes('AT R1 1\r', 'cp1251'))
  70. time.sleep(1)
  71. print('...')
  72.  
  73. ser2.write(bytes('AT R1 1\r', 'cp1251'))
  74. print('... получаю данные от COM ',sys.argv[-2])
  75.  
  76. readed = read_json()
  77. parsed = json.loads(readed, encoding="cp1251")
  78. print_result(parsed)
  79.  
  80. ser2.close()
  81. print("Отправка завершена. Переключение на первый COM")
  82. except:
  83. print('Не могу связаться с ', sys.argv[-2])
  84. try:
  85. with serial.Serial(port=sys.argv[-1] if len(sys.argv)>1 else "COM27", baudrate=19200, timeout=100) as ser:
  86. i = 0
  87. print('Первый COM Активен')
  88. while 1:
  89. #time.sleep(2)
  90. ser.write(bytes('AT R1 1\r', 'cp1251'))
  91.  
  92. if ser.in_waiting>0:
  93. i+=1
  94. readed = read_json()
  95. parsed = json.loads(readed, encoding="cp1251")
  96. print_result(parsed)
  97.  
  98. time.sleep(2)
  99. ser.write(bytes('AT I\n', 'cp1251'))
  100.  
  101. time.sleep(2)
  102. except:
  103. print('Не могу связаться с ', sys.argv[-1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement