資源簡介
該工程實現了MQTT,訂閱消息,發布消息的功能。DEMO工程。
代碼片段和文件信息
import?re
import?os
import?sys
from?socket?import?*
from?threading?import?Thread
import?struct
import?time
msgid=-1
def?get_my_ip():
????s1?=?socket(AF_INET?SOCK_DGRAM)
????s1.connect((“8.8.8.8“?80))
????my_ip?=?s1.getsockname()[0]
????s1.close()
????return?my_ip
def?mqqt_server_sketch(my_ip?port):
????global?msgid
????print(“Starting?the?server?on?{}“.format(my_ip))
????s?=?None
????try:
????????s=socket(AF_INET?SOCK_STREAM)
????????s.settimeout(60)
????????s.bind((my_ip?port))
????????s.listen(1)
????????qaddr=s.accept()
????????q.settimeout(30)
????????print(“connection?accepted“)
????except:
????????print(“Local?server?on?{}:{}?listening/accepting?failure:?{}“
????????????????“Possibly?check?permissions?or?firewall?settings“
????????????????“to?accept?connections?on?this?address“.format(my_ip?port?sys.exc_info()[0]))
????????raise
????data?=?q.recv(1024)
????#?check?if?received?initial?empty?message
????print(“received?from?client?{}“.format(data))
????data?=?bytearray([0x20?0x02?0x00?0x00])
????q.send(data)
????#?try?to?receive?qos1
????data?=?q.recv(1024)
????msgid?=?struct.unpack(“>H“?data[15:17])[0]
????print(“received?from?client?{}?msgid:?{}“.format(data?msgid))
????data?=?bytearray([0x40?0x02?data[15]?data[16]])
????q.send(data)
????time.sleep(5)
????s.close()
????print(“server?closed“)
#?this?is?a?test?case?write?with?tiny-test-fw.
#?to?run?test?cases?outside?tiny-test-fw
#?we?need?to?set?environment?variable?‘TEST_FW_PATH‘
#?then?get?and?insert?‘TEST_FW_PATH‘?to?sys?path?before?import?FW?module
test_fw_path?=?os.getenv(“TEST_FW_PATH“)
if?test_fw_path?and?test_fw_path?not?in?sys.path:
????sys.path.insert(0?test_fw_path)
import?TinyFW
import?IDF
import?DUT
@IDF.idf_example_test(env_tag=“Example_WIFI“)
def?test_examples_protocol_mqtt_qos1(env?extra_data):
????global?msgid
????“““
????steps:?(QoS1:?Happy?flow)
??????1.?start?the?broker?broker?(with?correctly?sending?ACK)
??????2.?DUT?client?connects?to?a?broker?and?publishes?qos1?message
??????3.?Test?evaluates?that?qos1?message?is?queued?and?removed?from?queued?after?ACK?received
??????4.?Test?the?broker?received?the?same?message?id?evaluated?in?step?3
????“““
????dut1?=?env.get_dut(“mqtt_tcp“?“examples/protocols/mqtt/tcp“)
????#?check?and?log?bin?size
????binary_file?=?os.path.join(dut1.app.binary_path?“mqtt_tcp.bin“)
????bin_size?=?os.path.getsize(binary_file)
????IDF.log_performance(“mqtt_tcp_bin_size“?“{}KB“.format(bin_size//1024))
????IDF.check_performance(“mqtt_tcp_size“?bin_size//1024)
????#?1.?start?mqtt?broker?sketch
????host_ip?=?get_my_ip()
????thread1?=?Thread(target?=?mqqt_server_sketch?args?=?(host_ip1883))
????thread1.start()
????#?2.?start?the?dut?test?and?wait?till?client?gets?IP?address
????dut1.start_app()????
????#?waiting?for?getting?the?IP?address
????try:
????????ip_address?=?dut1.expect(re.compile(r“?sta?ip:?([^]+)“)?timeout=30)
????????print(“Connected?to?AP?with?IP:?{}“.format(ip_address))
????except?DUT.ExpectTimeout:
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????237??2018-11-13?14:54??CMakeLists.txt
?????文件?????????178??2018-11-13?14:54??Makefile
?????文件????????2282??2018-11-13?14:54??README.md
?????目錄???????????0??2019-05-08?15:24??build\
?????目錄???????????0??2019-05-08?15:09??build\app_trace\
?????文件???????15982??2019-05-08?15:09??build\app_trace\app_trace.d
?????文件????????1972??2019-05-08?15:09??build\app_trace\app_trace.o
?????文件???????13713??2019-05-08?15:09??build\app_trace\app_trace_util.d
?????文件???????16056??2019-05-08?15:09??build\app_trace\app_trace_util.o
?????文件?????????289??2019-05-08?15:08??build\app_trace\component_project_vars.mk
?????目錄???????????0??2019-05-08?15:09??build\app_trace\gcov\
?????文件???????14591??2019-05-08?15:09??build\app_trace\gcov\gcov_rtio.d
?????文件????????1976??2019-05-08?15:09??build\app_trace\gcov\gcov_rtio.o
?????文件???????13547??2019-05-08?15:09??build\app_trace\host_file_io.d
?????文件????????1976??2019-05-08?15:09??build\app_trace\host_file_io.o
?????文件???????22576??2019-05-08?15:09??build\app_trace\libapp_trace.a
?????目錄???????????0??2019-05-08?15:09??build\app_update\
?????文件?????????294??2019-05-08?15:08??build\app_update\component_project_vars.mk
?????文件???????16824??2019-05-08?15:09??build\app_update\esp_ota_ops.d
?????文件???????52956??2019-05-08?15:09??build\app_update\esp_ota_ops.o
?????文件???????53274??2019-05-08?15:09??build\app_update\libapp_update.a
?????目錄???????????0??2019-05-08?15:09??build\asio\
?????目錄???????????0??2019-05-08?14:42??build\asio\asio\
?????目錄???????????0??2019-05-08?14:42??build\asio\asio\asio\
?????目錄???????????0??2019-05-08?15:09??build\asio\asio\asio\src\
?????文件???????63699??2019-05-08?15:09??build\asio\asio\asio\src\asio.d
?????文件?????1740932??2019-05-08?15:09??build\asio\asio\asio\src\asio.o
?????文件?????????347??2019-05-08?15:08??build\asio\component_project_vars.mk
?????文件?????1779596??2019-05-08?15:09??build\asio\libasio.a
?????目錄???????????0??2019-05-08?15:09??build\aws_iot\
?????文件?????????232??2019-05-08?15:08??build\aws_iot\component_project_vars.mk
............此處省略2248個文件信息
- 上一篇:opengl繪制花瓶演示
- 下一篇:線性系統理論(第二版 鄭大鐘著 清華大學出版社
評論
共有 條評論