Commit message
This commit is contained in:
parent
8510d04753
commit
3bb08fbd7b
Binary file not shown.
|
@ -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)에 저장될 저장소 이릅니다.
|
||||
|
|
|
@ -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)에 저장될 저장소 이릅니다.
|
||||
|
|
62
main.py
62
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']
|
||||
|
|
Loading…
Reference in New Issue