1 Commits

Author SHA1 Message Date
姜武誠 613167c285 Add tmp directory 2022-02-13 20:59:48 +00:00
4 changed files with 13 additions and 63 deletions
+6 -32
View File
@@ -10,29 +10,22 @@ from requests import Requests
from mqtt import MqttThread
class Main():
def __init__(self, controller_id = 'b8:27:eb:dd:f4:28', mqtt_ip = '192.168.5.240') -> None:
# setup devicemanager & mqtt thread
def __init__(self, controller_id = 'b8:27:eb:0c:d3:11', mqtt_ip = '192.168.5.53') -> None:
self._deviceManager = DeviceManager()
self._mqttThread = MqttThread(self, controller_id, mqtt_ip, 1883, 'test')
self._mqttThread.run()
# create requests instance
self._mqttRequest = Requests(self._mqttThread)
# hardware scan
self._mqttRequest.hardware_scan()
# self._mqttRequest.hardware_device()
# self._mqttRequest.get_device()
self._mqttRequest.get_device()
# callback func for get_device_info_all
def get_device_info_all(self, device: str) -> str:
deviceDict = json.loads(device)
# until get device info
self._deviceManager.set_device(deviceDict)
# instruction example 1
self._mqttRequest.device_parameter_array_set(self._deviceManager.get_mac_address(), 'BLE_WRITE', '040005')
self._mqttRequest.device_instruction_send(self._deviceManager.get_mac_address(), 'ble_instru_send')
# self._mqttRequest.device_parameter_array_set(self._deviceManager.get_mac_address(), 'BLE_WRITE', '040005')
# self._mqttRequest.device_instruction_send(self._deviceManager.get_mac_address(), 'ble_instru_send')
# instruction example 2
# self._mqttRequest.device_parameter_array_set(self._deviceManager.get_mac_address(), 'BLE_WRITE', '01')
@@ -40,34 +33,15 @@ class Main():
# self._mqttRequest.device_parameter_get(self._deviceManager.get_mac_address(), 'ADC_VALUE_I')
#instruction example 3
# self._mqttRequest.device_parameter_set(self._deviceManager.get_mac_address(), 'MODE', 4)
# self._mqttRequest.device_instruction_send(self._deviceManager.get_mac_address(), 'start')
self._mqttRequest.device_parameter_set(self._deviceManager.get_mac_address(), 'MODE', 4)
self._mqttRequest.device_instruction_send(self._deviceManager.get_mac_address(), 'start')
# callback func for device_parameter_value
def device_parameter_value(self, data: str) -> None:
dataDict = json.loads(data)
print(dataDict)
if dataDict['data'].get('ADC_VALUE_I') is not None:
value = format(dataDict['data']['ADC_VALUE_I'], '040x')
print(value)
# callback func for hardware_scan
def hardware_scan(self):
self._mqttRequest.hardware_device()
# callback func for hardware_device
def hardware_device(self, message):
ret = json.loads(message)
device = ret['data'][0]
if device['status'] != 'connected':
self._mqttRequest.hardware_device_connect(device['device_name'], device['device_address'], device['serial_number'])
if device['status'] == 'connected':
self._mqttRequest.get_device()
# callback func for hardware_device_connect
def hardware_device_connect(self, message):
self._mqttRequest.get_device()
if __name__ == '__main__':
# if len(sys.argv) < 3:
+4 -5
View File
@@ -51,9 +51,8 @@ class MqttThread():
def on_connect(self, client: mqtt.Client, user_data, flags, rc: int):
topic = self.__controller_ID + '_user'
self._mqtt_client.subscribe('#')
# self._mqtt_client.subscribe(self.__controller_ID + '/+/+')
# self._mqtt_client.subscribe(self.__controller_ID + '/data_server/device_data_stream/+/+')
self._mqtt_client.subscribe(self.__controller_ID + '/+/+')
self._mqtt_client.subscribe(self.__controller_ID + '/data_server/device_data_stream/+/+')
self._connected = True
def on_disconnect(self, client: mqtt.Client, user_data, rc):
@@ -73,12 +72,12 @@ class MqttThread():
def on_message(self, client: mqtt.Client, user_data, message):
topic = message.topic.split('/')[1]
payload = None
try:
payload = message.payload.decode('utf-8')
print('callback from', topic, message.topic, payload)
print(message.topic, payload)
except:
print('error')
func = getattr(self._handler, topic, None)
if func != None:
return func(payload)
+3 -26
View File
@@ -8,8 +8,8 @@ class Requests():
def get_device(self) -> None:
self._mqtt_client.publish({
'header': 'get_device_info_all/0'
})
return
}, True)
return
def device_parameter_array_set(self, device: str, name: str, data: str) -> None:
dataArray = [0 for i in range(16)]
@@ -51,27 +51,4 @@ class Requests():
self._mqtt_client.publish({
'header': 'device_instruction/0',
'device': device,
})
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)
})
View File