分类下相关文章
2023-03-19 · 阅读 58 · 字数 455
开发环境没有真实的 CPE 设备,只能找一个虚拟的 CPE 模拟器,来模拟与 ACS 的通信。 同时需要能支持 CPE Server 服务来处理 ACS 的请求。 找到一个开源的实现。唯一不确定的是,是否是标准的 TR069 协议。 项目地址 https://github.com/genieacs/genieacs-sim 安装 git clone https://github.com/zaidka/genieacs-sim.git cd genieacs-sim npm install Unsupported engine > npm install npm WARN EBADENG ...
2023-03-17 · 阅读 67 · 字数 205
HTTP Digest method,即,Digest access authentication,中文名为"摘要访问认证"。 digest 摘要/文摘的意思。 实际上就是,不以明文发送密码的验证方式。例如,TR069 协议中,ACS 与 CPE 之间的通信都是基于 HTTP Digest method。 HTTP Digest 的逻辑 客户端发起 GET 请求 服务器响应 401 Unauthorized 未认证,HTTP 头信息中的 WWW-Authenticate 指定认证算法,realm 指定安全域 (realm 领域的意思,一般指域名),同时返回随机字符串 no ...
2023-03-17 · 阅读 140 · 字数 470
建立连接前 TPE 需要的配置 ACS 的 URL 地址 TPE 与 ACS 的通信频率。Inform Interval。两者间不是长期保持连接,而是周期性的通信一会,大概几秒钟,即可完成关键数据的交换。这个短暂的过程称为 provisioning session。 用户名/密码。验证是可选的,这取决于 ACS 是否需要验证,及安全级别。 会话 (Session) 发起者 TPE,即由设备向 ACS 发起会话。 注意:ACS 并不能发起 session 会话,只能由 TPE 发起。 但是,ACS 可以向 TPE 请求 (Connection Request),请求 TPE 发起会话。 对应 ...
2023-03-08 · 阅读 125 · 字数 582
排查无法收到蓝牙设备语音流的问题时,发现仅仅阅读 SDK 源代码很难定位到问题根源,主要是不了解整个通信过程。 所以阅读了一下 STM32WB 的官方专题文档,确实收获不少。 文档地址 https://www.stmcu.com.cn/Article/ArticleCat/cat_code/mkt_info/art_id/2121 报警推送 opus 服务下有两个 notify 特性: Audio 特性。用于对讲 Ctrl 特性。用于发送控制数据。这个可以作为报警信息接收使用。 之前没仔细看,以为两个特性 id 一致,实际上不一样。正好区分了音频和控制功能。 手机 App 和蓝牙设备在对讲 ...
2023-02-28 · 阅读 288 · 字数 503
今天发现 Android 手机微信小程序中收到的 BLE 蓝牙数据包出现了粘包的情况。 确认校验失败的数据包实际长度 校验失败的数据包: ab0002a20800a8ba ab0002a21a02b8ba ab0002a2 ab00022638100cba ab000628380bb80b b80bb8a5 ab000212380820ba ab00021338052cba ab000214 长度均为 20 个字节(MTU 的默认大小,也是最小值); 02 包对应的长度为 8 个字节。 单个包,以 ab 开始,ba 结束。可以看到明显的两个/甚至三个包的粘包现象。 校验成功的 ab000 ...
2023-02-24 · 阅读 244 · 字数 500
SNMP(Simple Network Management Protocol), 即,简单网络管理协议。用于网络设备的远程管理。 为不同厂商的各式网络设备提供了统一的远程管理接口。 使用场景 监控。例如,与 Nagios, Cacti 集成,对服务器系统指标(CPU,内存,硬盘容量等)进行监控。也可以对单片机、一个进程,网络设备路由器、交换机等进行监控。国内外大量的网络设备(如路由器、交换机)都支持SNMP协议,并作为一项标配。 设备的远程初始化配置 设备上的传感器数据异常上报 版本 目前有三个版本:v1, v2, v3 兼容性:v3 版本对 v1,v2 兼容。 系统组成 NMS(Ne ...
2023-03-11 · 阅读 301 · 字数 691
TR069 协议 TR069 (Technical Report 069), 即 CPE 用户终端设备广域网管理协议(CPE WAN Management Protocol, CWMP)。用于实现终端的自动配置。 CPE / ACS TR069 里有两个重要的名词: 用户终端设备(Customer Premise Equipment,CPE)。在宽带接入中,CPE 指的就是家庭网关。any equipment used by customers which can be managed by the ACS (set-top boxes, VoIP-phones but also modem ...
2022-12-15 · 阅读 728 · 字数 855
最近在调研基于局域网的语音对讲方案。看到 Android 官方文档提到了 Wi-Fi Direct,于是收集了一下相关的资料。 Wi-Fi Direct Wi-Fi Direct (也被称为 WiFi peer-to-peer 或者 WiFi P2P) ,可以简单理解为对标蓝牙的技术规范,也是用于快速发现附近的设备,进行数据交互。但是传输距离上要优于蓝牙。本质上是 WiFi 产业链图谋完全取代蓝牙技术。 使用 Wi-Fi Direct 则无需连接到网络 (Network) 或热点 (hotspot),即可建立设备间的通信连接。 两台设备可以直接建立 TCP/IP 链接,而不需要 AP (介绍在 ...
2022-12-07 · 阅读 6548 · 字数 411
Profile 可以理解为接口规范。 经典蓝牙 Profiles 包括 HFP, HSP, A2DP, AVRCP, PBAP, MAP 等。 HFP HFP 英文全称是 Hands-Free Profile。 定义了与 Hands-Free 设备通信的最小功能集。 Hands-Free 设备举例: 车载控制屏: 例如,在开车时使用中控屏连接手机拨打电话,整个通话过程就是基于 HFP。 头戴式耳机 补充: 音频通过同步的 SCO 通道传输 独立的数据通道用于控制音频流 音频延迟在 20 ~ 30 毫秒 支持的音频编码:CVSD,mSBC AT 指令可以用于控制手机 HSP HSP 的 ...
2023-03-10 · 阅读 3906 · 字数 149
BLE 的一个特性可能包含五种 property: Read Write Write No Response Notify Indicate Notify 和 Indicate 都是订阅蓝牙设备的推送消息。 但是 Indications 与 Notifications 有什么需求呢? indication (指示、标示) 需要客户端收到消息后,进行回应。类似 TCP。 notification (通知,通告,告示) 不需要客户端的回应。类似 UDP。例如,BLE 语音对讲服务基本都是用的 notification。 补充 由于 indication 需要应答,所以相对而言,效率会低一 ...
2022-11-15 · 阅读 743 · 字数 509
周末听人讨论了半天的无人机控制,各种名词都是头一回听闻,于是搜索了一番,记录一下。 陌生的新名词 mission planner。地面控制站的一种。 QGroundControl。地面控制站的一种。 Pixhawk:飞行控制器的一种,即飞控。 mavlink。控制协议。 地面站 (Ground Control Station) QGroundControl QGroundControl(QGC)是一个开源无人机地面站(Ground Control Station)系统。由 Qt 开发的界面部分,可以运行在 Windows、Mac OS、Linux 及 Android 和iOS 等主流操作系 ...
2022-10-17 · 阅读 725 · 字数 446
是不是叫 EMQX 系统参数调优更合适?因为不但 max open files 需要配置,其他 TCP 参数也需要配置。 主要参考官方的配置: https://www.emqx.io/docs/zh/v5.0/deploy/tune.html 清单 done:ulimit -n 1048576 done: /etc/security/limits.conf done: /etc/sysctl.conf done: /etc/systemd/system.conf done: 重启 emqx 服务:ulimit -n 1048576; ./emqx stop; ./emqx start don ...
2022-09-02 · 阅读 774 · 字数 107
MQTT WebSocket URI ws(s)://host:8083/mqtt ws 还是 wss ws (非加密)、wss(SSL 加密) 作为协议标识。 在 HTTPS 下使用非加密的 WebSocket 连接: Google 等机构在推进 HTTPS 的同时也通过浏览器约束进行了安全限定, 即 HTTPS 连接下浏览器会自动禁止使用非加密的 ws 协议发起连接请求; 参考 https://www.emqx.io/docs/zh/v3.0/guide.html#mqtt-websocket-%E8%BF%9E%E6%8E%A5 浏览器 https://www.emqx.com/z ...
2022-08-10 · 阅读 1342 · 字数 292
多设备接入需求 多个设备接入 MQTT 多种设备型号的兼容。考虑到蓝牙网关/体征监测设备商可能停产,或升级。造成蓝牙协议变化。 MQTT Client ID 规范 终端类型 整机设备标识 DeviceID 座位标识 SeatIndex 例如:1/2/3 ...。以密封舱内多设备为例。 例如: - 蓝牙网关:gateway_<DeviceID>_<SeatIndex> - Pad: pad_<DeviceID>_<SeatIndex> 主要是为了防止 client id 冲突。 TOPIC 规范 mqtt 订阅回调函数中可以获取到消息的来 ...
2022-07-23 · 阅读 983 · 字数 679
问题 蓝牙设备默认会以每秒钟 350 次的频率向蓝牙网关发送实时波形数据(心电波形、血氧波形、呼吸波形), 然后蓝牙网关再将这些数据转发到服务器。 这些波形数据是没有记录价值的 蓝牙设备数量不可控,在数量多时,对服务器产生巨大的并发请求压力。我在开发机上 WSL Ubuntu 里部署的 EMQX 偶尔会扛不住挂掉。。。原因不明。 高频造成的数据黏包严重。例如蓝牙网关协议的数据包部分,能频繁看到多个蓝牙数据包拼接,且被截断的情况 蓝牙设备虽然支持禁用波形数据输出,但是每次重启都恢复原配置 过滤掉波形数据的方案 服务器端每十秒向蓝牙网关下发一次禁用波形数据的控制指令。 emqx 限速 http ...