2021-12-24 10:51:48 +08:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
class Requests():
|
|
|
|
|
def __init__(self, mqtt_client) -> None:
|
|
|
|
|
self._mqtt_client = mqtt_client
|
|
|
|
|
|
|
|
|
|
def get_device(self) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'get_device_info_all/0'
|
2022-08-10 16:14:43 +08:00
|
|
|
})
|
|
|
|
|
return
|
2021-12-24 10:51:48 +08:00
|
|
|
|
2022-01-20 23:16:52 +08:00
|
|
|
def device_parameter_array_set(self, device: str, name: str, data: str) -> None:
|
2021-12-24 10:51:48 +08:00
|
|
|
dataArray = [0 for i in range(16)]
|
|
|
|
|
for index in range(0, len(data), 2):
|
|
|
|
|
dataArray[int(index / 2)] = int(data[index:index+2],16)
|
|
|
|
|
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'device_parameter/0',
|
|
|
|
|
'device': device,
|
|
|
|
|
'parameter': name,
|
|
|
|
|
'content': '0:16=' + ','.join([str(ele) for ele in dataArray])
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
|
2022-01-20 23:16:52 +08:00
|
|
|
def device_parameter_set(self, device: str, name: str, data: str) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'device_parameter/0',
|
|
|
|
|
'device': device,
|
|
|
|
|
'parameter': name,
|
|
|
|
|
'content': data
|
|
|
|
|
})
|
|
|
|
|
return
|
|
|
|
|
|
2021-12-24 10:51:48 +08:00
|
|
|
def device_parameter_get(self, device: str, name: str) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'device_parameter_value/0',
|
|
|
|
|
'device': device,
|
|
|
|
|
'parameter': name,
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def device_instruction_send(self, device: str, instruction: str) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'device_instruction/0',
|
|
|
|
|
'device': device,
|
|
|
|
|
'instruction': instruction
|
|
|
|
|
})
|
2022-01-27 17:27:44 +08:00
|
|
|
|
|
|
|
|
def update_device_calibration(self, device: str) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'device_instruction/0',
|
|
|
|
|
'device': device,
|
2022-08-10 16:14:43 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def hardware_scan(self) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'hardware_scan/0',
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def hardware_device(self) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'hardware_device/0',
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def hardware_device_connect(self, device_name, device_address, serial_number) -> None:
|
|
|
|
|
self._mqtt_client.publish({
|
|
|
|
|
'header': 'hardware_device_connect/0',
|
|
|
|
|
'content': {
|
|
|
|
|
'device_name': device_name,
|
|
|
|
|
'device_address': self.mac_tuple_to_str(device_address),
|
|
|
|
|
'serial_number': serial_number
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
def mac_tuple_to_str(self, mac_array):
|
|
|
|
|
return ':'.join('{:02x}'.format(b) for b in mac_array)
|