Commit message

This commit is contained in:
support.sampyo 2024-03-26 08:16:31 +00:00
parent 8510d04753
commit 3bb08fbd7b
4 changed files with 6 additions and 62 deletions

Binary file not shown.

View File

@ -7,5 +7,5 @@ spec:
virtualEnv: base # 사용할 가상환경 이름입니다. virtualEnv: base # 사용할 가상환경 이름입니다.
package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
stackbase: stackbase:
tagName: v0.0.5 # Stackbase(gitea)에 릴리즈 태그명 입니다. tagName: v0.0.6 # Stackbase(gitea)에 릴리즈 태그명 입니다.
repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다. repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다.

View File

@ -5,7 +5,7 @@ spec:
env: env:
bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.) bin: python3 # 앱을 실행할 바이너라 파일 종류입니다.(장비에 따라 다르므로 확인 후 정의해야 합니다.)
virtualEnv: base # 사용할 가상환경 이름입니다. virtualEnv: base # 사용할 가상환경 이름입니다.
package: requirement.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
stackbase: stackbase:
tagName: v0.0.1 # Stackbase(gitea)에 릴리즈 태그명 입니다. tagName: v0.0.5 # Stackbase(gitea)에 릴리즈 태그명 입니다.
repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다. repoName: sampyo-dio # Stackbase(gitea)에 저장될 저장소 이릅니다.

62
main.py
View File

@ -136,48 +136,7 @@ def Command_Read():
if cmd['device']['setzero']['action'] == 'On': if cmd['device']['setzero']['action'] == 'On':
Set_Zero(client=client) Set_Zero(client=client)
def connectMQTT(clientID, projectCode): def runAction():
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):
# Write the app's actions in the "runAction" function. # Write the app's actions in the "runAction" function.
# Connect MQTT Broker # 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) 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) 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) 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] mqttlist = [mqttClient1, mqttClient2, mqttClient3, mqttClient4, mqttClient5]
# If you have config's value, please make config.json file. # 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. # - You may need it to create a topic.
topic = f"sdtcloud/{projectCode}/{assetCode}/app/{con_info['appId']}/data"
cnt = 0 cnt = 0
while True: while True:
start = time.time() start = time.time()
Command_Read() Command_Read()
data['timestamp'] = int(time.time() * 1000)
sdtcloud.pubMessage(mqttlist[cnt], data) sdtcloud.pubMessage(mqttlist[cnt], data)
end = time.time() end = time.time()
@ -362,12 +314,6 @@ if __name__ == "__main__":
client = ModbusTcpClient(modbus_addr, modbus_port) 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 = { data = {
"timestamp": 0, "timestamp": 0,
"data":{ "data":{
@ -377,11 +323,9 @@ if __name__ == "__main__":
} }
## Get ProjectCode and AssetCode ## 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 ## 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() operation_thread.start()
tcp_addr = jsonData['tcp-server']['address'] tcp_addr = jsonData['tcp-server']['address']