Files
controller-data-analysis/main.py
T
2023-02-10 10:31:07 +08:00

70 lines
2.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
import sys
import json,csv
# from deviceManager import DeviceManager
# from requests import Requests
from mqtt import MqttThread
from test import VTmode_run, slop_run ,CVmode_run
class Main():
def __init__(self, controller_id = 'dc:a6:32:0f:56:9d', mqtt_ip = '192.168.2.1') -> None:
# setup mqtt thread
self._mqttThread = MqttThread(self, controller_id, mqtt_ip, 1883, 'test')
self._mqttThread.run()
def get_analysis_data(self, input:str):
start_time = time.time()
input_data = json.loads(input)['e']
# print(input_data['data_name'])
# print([i.split('-') for i in input_data['data_id']])
search_id = [int(i.split('-')[1]) for i in input_data['data_id']]
print(search_id)
with open('csv_file/output.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
# print([[i[0],i[1]] for i in input_data.items()])
writer.writerows([[i[0],i[1]] for i in input_data.items()])
writer.writerow("")
if input_data['mode'] == 1:
first_flag = True
for i in search_id:
print(i)
raw_data, csv_data = VTmode_run(i, input_data['data_channel'], input_data['data']['persentage'])
fieldnames = list(csv_data.keys())
print(fieldnames)
dict_writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
if first_flag:
# self._mqttThread.publish(raw_data)
dict_writer.writeheader()
first_flag = False
print('csv_data', csv_data)
dict_writer.writerow(csv_data)
elif input_data['mode'] == 3:
raw_data = CVmode_run()
else:
for i in search_id:
raw_data = slop_run(i, input_data['data_channel'], input_data['data']['window'])
self._mqttThread.publish(raw_data)
end_time = time.time()
print("執行時間:%f 秒" % (end_time - start_time))
if __name__ == '__main__':
# if len(sys.argv) < 3:
# print('please input controller_id & ip')
# sys.exit()
main = Main()
try:
while True:
time.sleep(1)
pass
except (KeyboardInterrupt, SystemExit):
print("Received keyboard interrupt, quitting ...")
exit(0)