diff --git a/.framework.yaml.un~ b/.framework.yaml.un~ index e9ce13c..f61fed1 100644 Binary files a/.framework.yaml.un~ and b/.framework.yaml.un~ differ diff --git a/framework.yaml b/framework.yaml index 1453327..4088f61 100644 --- a/framework.yaml +++ b/framework.yaml @@ -7,5 +7,5 @@ spec: virtualEnv: base # 사용할 가상환경 이름입니다. package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) stackbase: - tagName: v0.0.5 # Stackbase(gitea)에 릴리즈 태그명 입니다. + tagName: v0.0.6 # Stackbase(gitea)에 릴리즈 태그명 입니다. repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다. diff --git a/framework.yaml~ b/framework.yaml~ index 3d39b43..1453327 100644 --- a/framework.yaml~ +++ b/framework.yaml~ @@ -5,7 +5,7 @@ spec: env: bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.) virtualEnv: base # 사용할 가상환경 이름입니다. - package: requirement.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) + package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) stackbase: - tagName: v0.0.1 # Stackbase(gitea)에 릴리즈 태그명 입니다. + tagName: v0.0.5 # Stackbase(gitea)에 릴리즈 태그명 입니다. repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다. diff --git a/main.py b/main.py index ed7dd57..1cf77b4 100644 --- a/main.py +++ b/main.py @@ -136,48 +136,7 @@ def Command_Read(): if cmd['device']['setzero']['action'] == 'On': Set_Zero(client=client) -def connectMQTT(clientID, projectCode): - CLIENT_ID = clientID - ENDPOINT = "avk03ee629rck-ats.iot.ap-northeast-2.amazonaws.com" - PATH_TO_CERTIFICATE = f"/etc/sdt/cert/{projectCode}-certificate.pem" - PATH_TO_PRIVATE_KEY = f"/etc/sdt/cert/{projectCode}-private.pem" - PATH_TO_AMAZON_ROOT_CA_1 = f"/etc/sdt/cert/AmazonRootCA1.pem" - - myAWSIoTMQTTClient = AWSIoTPyMQTT.AWSIoTMQTTClient(CLIENT_ID) - myAWSIoTMQTTClient.configureEndpoint(ENDPOINT, 8883) - myAWSIoTMQTTClient.configureCredentials(PATH_TO_AMAZON_ROOT_CA_1, PATH_TO_PRIVATE_KEY, PATH_TO_CERTIFICATE) - - myAWSIoTMQTTClient.configureMQTTOperationTimeout(5) - myAWSIoTMQTTClient.configureConnectDisconnectTimeout(10) - myAWSIoTMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing - myAWSIoTMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz - - return myAWSIoTMQTTClient - -def publishMsg(mqttClient, topic, msg): - while True: - try: - mqttClient.connect() - break - except Exception as e: - print(f'Connection Fail: {e}') - continue - - msg['timestamp'] = int(time.time() * 1000) - - # Publish message to server desired number of times. - # print('Begin Publish') - mqttClient.publish(topic=topic, payload=json.dumps(msg), QoS=1) - - while True: - try: - mqttClient.disconnect() - break - except Exception as e: - print(f'Disconnection Fail: {e}') - continue - -def runAction(projectCode, assetCode, con_info): +def runAction(): # Write the app's actions in the "runAction" function. # Connect MQTT Broker @@ -193,12 +152,6 @@ def runAction(projectCode, assetCode, con_info): mqttClient3 = sdtcloud.setClient(f"device-app-3{uuid.uuid1()}") # parameter is client ID(string) mqttClient4 = sdtcloud.setClient(f"device-app-4{uuid.uuid1()}") # parameter is client ID(string) mqttClient5 = sdtcloud.setClient(f"device-app-5{uuid.uuid1()}") # parameter is client ID(string) - - # mqttClient1 = connectMQTT("device-app-test1", projectCode) - # mqttClient2 = connectMQTT("device-app-test2", projectCode) - # mqttClient3 = connectMQTT("device-app-test3", projectCode) - # mqttClient4 = connectMQTT("device-app-test4", projectCode) - # mqttClient5 = connectMQTT("device-app-test5", projectCode) mqttlist = [mqttClient1, mqttClient2, mqttClient3, mqttClient4, mqttClient5] # If you have config's value, please make config.json file. @@ -207,12 +160,11 @@ def runAction(projectCode, assetCode, con_info): # - You may need it to create a topic. - topic = f"sdtcloud/{projectCode}/{assetCode}/app/{con_info['appId']}/data" - cnt = 0 while True: start = time.time() Command_Read() + data['timestamp'] = int(time.time() * 1000) sdtcloud.pubMessage(mqttlist[cnt], data) end = time.time() @@ -362,12 +314,6 @@ if __name__ == "__main__": client = ModbusTcpClient(modbus_addr, modbus_port) - parser = argparse.ArgumentParser() - parser.add_argument('-app',help='') - args = parser.parse_args() - - # ROOT_PATH = f'/usr/local/sdt/app/{args.app}' - data = { "timestamp": 0, "data":{ @@ -377,11 +323,9 @@ if __name__ == "__main__": } ## Get ProjectCode and AssetCode - with open(f'/etc/sdt/device.config/config.json', encoding='UTF-8') as f: - codeData = json.load(f) ## Execution main funcion - operation_thread = threading.Thread(target=runAction, args=(codeData["projectcode"], codeData["assetcode"], jsonData)) + operation_thread = threading.Thread(target=runAction, args=()) operation_thread.start() tcp_addr = jsonData['tcp-server']['address']