观察者 (Scanner)
BLE.gap_scan(duration_ms[, interval_us][, window_us])
运行持续指定时间(以毫秒为单位)的扫描操作。
要无限期扫描,请将 duration_ms 设置为 0 。要停止扫描,请将 duration_ms 设置为 None 。
使用 interval_us 和 window_us 可以选择配置占空比。 扫描器将每间隔一微秒运行一次 window_us 微秒,总计持续时间为毫秒。默认间隔和窗口分别为1.28秒和11.25毫秒。
对于每个扫描结果,_IRQ_SCAN_RESULT 将引发该事件。
停止扫描(由于持续时间结束或明确停止)时,_IRQ_SCAN_COMPLETE 将引发该事件。
外围设备 (GATT Server)
BLE外围设备具有一组注册服务。每个服务可能包含特性,每个特性都有一个值。特征也可以包含描述符,描述符本身具有值。
这些值存储在本地,并通过在服务注册过程中生成的“值柄”进行访问。它们也可以被远程的中央设备读取或写入。 此外,外围设备可以通过连接句柄将特征“通知”到已连接的中央设备。
特征和描述符的默认最大为20个字节。任何由中央设备写给它们的都会被截短到这个长度。但是,任何本地写操作都会增加最大大小, 所以,如果你写想更长的数据,请注册后使用 gatts_write 。例如, gatts_write(char_handle, bytes(100))
BLE.gatts_register_services(services_definition)
使用指定的服务配置外围设备,替换所有现有服务。
services_definition 是一个服务的列表,其中每个服务都是一个包含UUI