diff --git a/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md b/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md index e317facd..24064852 100644 --- a/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md +++ b/doc/30.TencentOS_Tiny_EVB_AIoT_QuickStart.md @@ -483,7 +483,7 @@ username = username.encode("utf-8") passwd = passwd.encode("utf-8") sign = hmacsha1(username, passwd) -template = ('#ifndef TOS_MQTT_CONFIG_H\n' +template_header = ('#ifndef TOS_MQTT_CONFIG_H\n' '#define TOS_MQTT_CONFIG_H\n' '\n' '#define MQTT_SERVER_IP "111.230.189.156"\n' @@ -496,26 +496,55 @@ template = ('#ifndef TOS_MQTT_CONFIG_H\n' '#define MQTT_SUBSCRIBE_TOPIC "$product/$dev/$sub"\n' '#define MQTT_PUBLISH_TOPIC "$product/$dev/$pub"\n' '\n' + '#define MQTT_SERVER_DOMAIN "$product.iotcloud.tencentdevices.com"\n' + '#define MQTT_TOPIC "$product/$dev"\n' + '#define MQTT_SUBSCRIBE_TOPIC_DOWN "$thing/down/property/$product/$dev"\n' + '#define MQTT_PUBLISH_TOPIC_UP "$thing/up/property/$product/$dev"\n' + '\n' '#endif\n' '\n') -src = Template(template) +template_c = ('#ifndef TOS_MQTT_CONFIG_H\n' + 'tos_sal_module_parse_domain(MQTT_SERVER_DOMAIN,host_ip,sizeof(host_ip));\n' + '\n' + 'mqtt_set_port(client, MQTT_SERVER_PORT);\n' + 'mqtt_set_host(client, host_ip);\n' + 'mqtt_set_client_id(client, MQTT_CLIENT_ID);\n' + 'mqtt_set_user_name(client, MQTT_USR_NAME);\n' + 'mqtt_set_password(client, MQTT_PASSWORD);\n' + 'mqtt_set_clean_session(client, 1);\n' + '\n' + 'error = mqtt_subscribe(client, MQTT_SUBSCRIBE_TOPIC_DOWN, QOS0, tos_topic_handler);\n' + '\n' + 'error = mqtt_publish(client, MQTT_PUBLISH_TOPIC_UP, &msg);\n' + '\n' + '#endif\n' + '\n') + +src_header = Template(template_header) +src_c = Template(template_c) d = { 'product':product_id, 'dev':dev_name, 'sign':sign, 'sub':sub, - 'pub':pub + 'pub':pub, + 'thing':'$thing' } #do the substitution -dst = src.substitute(d) +dst_header = src_header.substitute(d) +dst_c = src_c.substitute(d) print("===============Generate mqtt_config.h==================") -print(dst) +print(dst_header) with open('mqtt_config.h', 'w') as f: - f.write(dst) + f.write(dst_header) +print("===============Generate mqtt_connect_demo.c==================") +print(dst_c) +with open('mqtt_connect_demo.c', 'w') as f: + f.write(dst_c) ``` @@ -528,6 +557,8 @@ with open('mqtt_config.h', 'w') as f: ![](image/EVB_AIoT_guide/cloud_016.png) +最新版本的mqtt_config_gen.py将同时生成mqtt_config.h、mqtt_connect_demo.c文件,引入mqtt_config.h后,可直接复制mqtt_connect_demo.c中的示例代码,到mqttclient_task函数之中对应的部分。 + #### 4.2.3 编译工程 工程上右键,选择构建项目,编译整个工程: diff --git a/tools/mqtt_config_gen.py b/tools/mqtt_config_gen.py index a1656302..8e2ba66c 100644 --- a/tools/mqtt_config_gen.py +++ b/tools/mqtt_config_gen.py @@ -37,7 +37,7 @@ username = username.encode("utf-8") passwd = passwd.encode("utf-8") sign = hmacsha1(username, passwd) -template = ('#ifndef TOS_MQTT_CONFIG_H\n' +template_header = ('#ifndef TOS_MQTT_CONFIG_H\n' '#define TOS_MQTT_CONFIG_H\n' '\n' '#define MQTT_SERVER_IP "111.230.189.156"\n' @@ -50,22 +50,52 @@ template = ('#ifndef TOS_MQTT_CONFIG_H\n' '#define MQTT_SUBSCRIBE_TOPIC "$product/$dev/$sub"\n' '#define MQTT_PUBLISH_TOPIC "$product/$dev/$pub"\n' '\n' + '#define MQTT_SERVER_DOMAIN "$product.iotcloud.tencentdevices.com"\n' + '#define MQTT_TOPIC "$product/$dev"\n' + '#define MQTT_SUBSCRIBE_TOPIC_DOWN "$thing/down/property/$product/$dev"\n' + '#define MQTT_PUBLISH_TOPIC_UP "$thing/up/property/$product/$dev"\n' + '\n' '#endif\n' '\n') -src = Template(template) +template_c = ('#ifndef TOS_MQTT_CONFIG_H\n' + 'tos_sal_module_parse_domain(MQTT_SERVER_DOMAIN,host_ip,sizeof(host_ip));\n' + '\n' + 'mqtt_set_port(client, MQTT_SERVER_PORT);\n' + 'mqtt_set_host(client, host_ip);\n' + 'mqtt_set_client_id(client, MQTT_CLIENT_ID);\n' + 'mqtt_set_user_name(client, MQTT_USR_NAME);\n' + 'mqtt_set_password(client, MQTT_PASSWORD);\n' + 'mqtt_set_clean_session(client, 1);\n' + '\n' + 'error = mqtt_subscribe(client, MQTT_SUBSCRIBE_TOPIC_DOWN, QOS0, tos_topic_handler);\n' + '\n' + 'error = mqtt_publish(client, MQTT_PUBLISH_TOPIC_UP, &msg);\n' + '\n' + '#endif\n' + '\n') + +src_header = Template(template_header) +src_c = Template(template_c) d = { 'product':product_id, 'dev':dev_name, 'sign':sign, 'sub':sub, - 'pub':pub + 'pub':pub, + 'thing':'$thing' } #do the substitution -dst = src.substitute(d) +dst_header = src_header.substitute(d) +dst_c = src_c.substitute(d) print("===============Generate mqtt_config.h==================") -print(dst) +print(dst_header) with open('mqtt_config.h', 'w') as f: - f.write(dst) + f.write(dst_header) + +print("===============Generate mqtt_connect_demo.c==================") +print(dst_c) +with open('mqtt_connect_demo.c', 'w') as f: + f.write(dst_c)