chiyu
Chiyu Chen 1 month ago
parent 8adb9c6bf3
commit 82d5e90460

@ -37,7 +37,7 @@ from .utils import pollStrategy
# ====================== 分割線 ===================== # ====================== 分割線 =====================
logger = setup_logger(os.path.basename(__file__)) logger = setup_logger(os.path.basename(__file__))
MODULE_VER = "2.00" MODULE_VER = "2.02"
rx_module_ack = RingBuffer(capacity=64, buffer_id=253) rx_module_ack = RingBuffer(capacity=64, buffer_id=253)
@ -145,12 +145,15 @@ class XBeeFrameProcessor_Base(FrameProcessor):
DEST_ADDR16_UNICAST = b'\xFF\xFE' DEST_ADDR16_UNICAST = b'\xFF\xFE'
DEST_ADDR16_BRAODCAST = b'\xFF\xFF' DEST_ADDR16_BRAODCAST = b'\xFF\xFF'
DEST_ADDR64_BRAODCAST = b'\x00\x00\x00\x00\x00\x00\x00\x00' DEST_ADDR64_BRAODCAST = b'\x00\x00\x00\x00\x00\x00\x00\x00'
def __init__(self, at_handler: "ATCommandHandler" = None): def __init__(self, at_handler: "ATCommandHandler" = None):
super().__init__() super().__init__()
self.at_handler = at_handler self.at_handler = at_handler
# ---- 對外契約 ---- # ---- 對外契約 ----
def process_incoming(self, data: bytes) -> bytes: def process_incoming(self, data: bytes) -> bytes:
"""處理 XBee API 幀並提取 payload""" """處理 XBee API 幀並提取 payload"""
@ -1398,51 +1401,51 @@ if __name__ == '__main__':
# UDP_REMOTE_PORT = 14571 # UDP_REMOTE_PORT = 14571
# sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.STRAIGHT) # sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.STRAIGHT)
# 測試項二 # # 測試項二
print("運行 測試項二") # print("運行 測試項二")
SERIAL_PORT = '/dev/ttyUSB0' # 手動指定 # SERIAL_PORT = '/dev/ttyUSB0' # 手動指定
SERIAL_BAUDRATE = 115200 # SERIAL_BAUDRATE = 115200
UDP_REMOTE_PORT = 14561 # UDP_REMOTE_PORT = 14561
sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.XBEEAPI2AT) # sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.XBEEAPI2AT)
serial_id = 1 # serial_id = 1
device_sys_id = 10 # device_sys_id = 10
linked_serial = sm.get_serial_link() # linked_serial = sm.get_serial_link()
print(f"連結完成 : {linked_serial}. 等待兩秒") # print(f"連結完成 : {linked_serial}. 等待兩秒")
# 等 connection_made 完成 writer 注入,再發一筆 AT 指令測試 # # 等 connection_made 完成 writer 注入,再發一筆 AT 指令測試
time.sleep(2) # time.sleep(2)
rssi_request = ATRequest(command=b'DB', parameter=b'', frame_id=device_sys_id) # rssi_request = ATRequest(command=b'DB', parameter=b'', frame_id=device_sys_id)
print(f"手動送出 DB AT Command:") # print(f"手動送出 DB AT Command:")
for i in range(20): # for i in range(20):
sm.send_at_command(1, rssi_request) # sm.send_at_command(1, rssi_request)
time.sleep(1) # time.sleep(1)
sm.remove_serial_link(1) # sm.remove_serial_link(1)
time.sleep(2) # time.sleep(2)
sm.shutdown() # sm.shutdown()
print("結束運行") # print("結束運行")
# # 測試項三 # 測試項三
# SERIAL_PORT = '/dev/ttyUSB0' SERIAL_PORT = '/dev/ttyUSB0'
# SERIAL_BAUDRATE = 115200 SERIAL_BAUDRATE = 115200
# UDP_REMOTE_PORT = 14561 UDP_REMOTE_PORT = 14561
# sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.XBEEAPI_espv1) sm.create_serial_link(SERIAL_PORT, SERIAL_BAUDRATE, UDP_REMOTE_PORT, SerialMode.XBEEAPI_espv1)
# time.sleep(2) # 等 serial 連線與 operator 啟動 time.sleep(2) # 等 serial 連線與 operator 啟動
# serial_id = 1 serial_id = 1
# processor = sm.get_espv1_processor(serial_id) processor = sm.get_espv1_processor(serial_id)
# if processor is not None: if processor is not None:
# processor.request_discovery() processor.request_discovery()
# processor.request_poll(target_system_id=1) processor.request_poll(target_system_id=1)
# processor.request_poll(target_system_id=1, grant_bytes=200) processor.request_poll(target_system_id=1, grant_bytes=200)
# print(processor.get_status_snapshot()) print(processor.get_status_snapshot())
# print(processor.get_gcs_queue_byte_count()) print(processor.get_gcs_queue_byte_count())
# sm.remove_serial_link(serial_id) time.sleep(120)
# time.sleep(30) sm.remove_serial_link(serial_id)
# sm.shutdown() sm.shutdown()
''' '''
================= 改版記錄 ============================ ================= 改版記錄 ============================

Loading…
Cancel
Save