当前位置: 首页 > wzjs >正文

如何用用dw做网站后台浏览器网页版入口

如何用用dw做网站后台,浏览器网页版入口,建筑模板厂家大全,做调查赚钱的网站有哪些一、 蓝牙协议概念 1.先从现象说起 说现象前要讲一个概念,adapter可以对比日常wifi中的热点的概念。 从蓝牙模块的应用app说起 可以看到蓝牙搜索到的adapter分为BLE与SPP 2.蓝牙协议的分类 参考传送门: 经典蓝牙串口SPP https://docs.petoi.com/v/…

一、 蓝牙协议概念

1.先从现象说起

说现象前要讲一个概念,adapter可以对比日常wifi中的热点的概念。

从蓝牙模块的应用app说起

在这里插入图片描述

可以看到蓝牙搜索到的adapter分为BLE与SPP

2.蓝牙协议的分类

参考传送门:

经典蓝牙串口SPP
https://docs.petoi.com/v/chinese/li-cheng/10.-jing-dian-lan-ya-chuan-kou-spp

目前主要的蓝牙协议分为2类,基于RFCOMM的传统蓝牙(HS/BR/EDR)(对应的蓝牙串口就是上面的SPP)和基于GATT的蓝牙低功耗(BLE)。

1.rfcomm是什么,做什么
(1) RFCOMM,Radio Frequency Communication,串口线性仿真协议。
(2) 蓝牙技术为电缆的替代技术,为了替代串型电缆连接方式,为建立在串口之上的传统应用提供接口,RFCOMM应运而生。
(3) RFCOMM是一个简单传输协议,提供了基于L2CAP协议的串行(9针RS-232)仿真,支持在两个蓝牙设备间高达60路的通信连接。
(4) RFCOMM的目的:在两个不同设备上的应用之间保证一条完整的通信路径。2.GATT
要了解GATT先需要了解ATT
ATT基于GATT属性概要在客户端和服务端之间传输属性数据(attribute)。
GATT封装了ATT,主要用来规范attribute中的数据内容,并将不同的attribute进行分组分类。负责协调蓝牙LE链路中配置文件的交换,配置文件包括诸如handle分配、UUID和权限等信息和数据。3.BR/EDR与BLE
低功耗蓝牙(Bluetooth low energy,即LE)
基础/增强速率蓝牙(Bluetooth basic rate/enhanced data rate ,即BR/EDR)

传统蓝牙速度较快,具体应用协议多,如面向音频的A2DP,蓝牙串口SPP等。但功耗较高,且接入苹果设备需要MFi(Made For iOS)的芯片及认证。

蓝牙低功耗(BLE,Bluetooth Low Energy)可以自行定义各种GATT的Profile,自身也配置了常用的Profile(如设备信息、电池等),功耗低用途广,可以用在苹果设备上,缺点是比起传统蓝牙速度比较慢。蓝牙低功耗多用于手环/智能手表/信标等数据量低但是对功耗敏感的设备上。

3.蓝牙协议的框架解读

参考传送门:

Bluetooth技术学习笔记 ——RFCOMM(1)
https://blog.csdn.net/u012800825/article/details/88741103

BLE学习(1):蓝牙协议栈的介绍
https://blog.csdn.net/tilblackout/article/details/127921514

单双模的蓝牙协议栈的框图

在这里插入图片描述

补充SPP在BR/EDR蓝牙协议中的位置
在这里插入图片描述

Controller(s)为蓝牙控制器,就是蓝牙芯片。HCI为控制器接口,逻辑链路控制与适配协议(Logical Link Control and Adaptation Protocol,即L2CAP)。

二、Desktop SPP蓝牙调试

以汇承HC-04为例进行说明,HC-04 蓝牙串口通信模块是新一代的基于 SPP&BLE5.0 蓝牙协议的双模数传模块

HC-04说明书
http://www.hc01.com/downloads/HC-04_v2.4.pdf

1.从机(slave)配置

在x86 Ubuntu系统上,使用cutecom以及minicom都有问题,只能收还是只能发来着,这里将从机模块插到x86 Windows上,安装官方提供的驱动,以及上位机。

HC-04默认出厂参数: 波特率 9600N81,SPP 蓝牙名 HC-04,BLE 蓝牙名 HC-04LE;SPP 配对密码 1234, BLE 没有配对密码。上位机效果如下图

在这里插入图片描述

2.主机(host)操作步骤

a.安装好blueman的Desktop系统,可以使用界面进行配对,配对会弹出输入密码窗口。
在这里插入图片描述

配对会有弹窗报错connection failed,try to connect manually,不用理会。

b.手动连接
在这里插入图片描述

连接效果图,可以看出虚拟出了串口节点/dev/rfcomm0

在这里插入图片描述

b.cutecom连接串口,便可以进行串口通信

在这里插入图片描述

三、 SPP蓝牙命令调试

参考传送门:

树莓派连接蓝牙设备 | 编程读取数据
https://www.bilibili.com/read/cv8292866

archlinux 蓝牙串口
https://wiki.archlinuxcn.org/wiki/%E8%93%9D%E7%89%99#%E8%93%9D%E7%89%99%E4%B8%B2%E5%8F%A3

1.命令创建串口节点

配对好的蓝牙,可以使用rfcomm创建串口

# rfcomm bind rfcomm0 MAC_address_of_Bluetooth_device

创建成功后可以使用cutecom来打开

*ps:*遇到过一个发送会弹窗,no device的情况,原因为没插上天线,实质搜不到想要连接的蓝牙

*ps:*有的教程会要求往systemd蓝牙服务中添加/usr/bin/sdptool add SP 本文档只主板作为主机,故不详细解释,不进行更改,只做记录。

# cat /lib/systemd/system/bluetooth.service 
[Unit]
Description=Bluetooth service
Documentation=man:bluetoothd(8)
ConditionPathIsDirectory=/sys/class/bluetooth[Service]
Type=dbus
BusName=org.bluez
###########下面两行为添加内容,修改后可能需要内核支持,具体情况查看systemd日志
ExecStart=/usr/lib/bluetooth/bluetoothd --compat --noplugin=sap -E
ExecStartPost=/usr/bin/sdptool add SP
NotifyAccess=main
#WatchdogSec=10
#Restart=on-failure
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
LimitNPROC=1
ProtectHome=true
ProtectSystem=full[Install]
WantedBy=bluetooth.target
Alias=dbus-org.bluez.service
2.一些调试命令
● hciconfig大致相当于ifconfig
# hciconfig       
hci0:   Type: Primary  Bus: USBBD Address: 30:7B:C9:5B:2A:E1  ACL MTU: 820:8  SCO MTU: 255:12UP RUNNING PSCAN RX bytes:2104 acl:17 sco:0 events:113 errors:0TX bytes:3209 acl:17 sco:0 commands:90 errors:0● systemctl status bluetooth 可以查看bluetooth的运行情况,可以看到启动bluetoothd过程中会启用SDP server
# systemctl status bluetooth
��● bluetooth.service - Bluetooth serviceLoaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor presetActive: active (running) since Tue 2023-02-28 14:55:26 CST; 32min agoDocs: man:bluetoothd(8)Main PID: 357 (bluetoothd)Status: "Running"CGroup: /system.slice/bluetooth.service��└��─357 /usr/lib/bluetooth/bluetoothdFeb 28 14:55:26 norco systemd[1]: Starting Bluetooth service...
Feb 28 14:55:26 norco bluetoothd[357]: Bluetooth daemon 5.48
Feb 28 14:55:26 norco bluetoothd[357]: Starting SDP server
Feb 28 14:55:26 norco bluetoothd[357]: Bluetooth management interface 1.10 initi
Feb 28 14:55:26 norco systemd[1]: Started Bluetooth service.● sdptool用于加深一些东西的理解
# sdptool -h 
sdptool - SDP tool v5.48
Usage:sdptool [options] <command> [command parameters]
Options:-h              Display help-i              Specify source interface
Commands:search          Search for a servicebrowse          Browse all available servicesrecords         Request all recordsadd             Add local servicedel             Delete local serviceget             Get local servicesetattr         Set/Add attribute to a SDP recordsetseq          Set/Add attribute sequence to a SDP recordServices:DID SP DUN LAN FAX OPUSH FTP PRINT HS HSAG HF HFAG SAP PBAP MAP NAP GN PANU HCRP HID KEYB WIIMOTE CIP CTP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE SEMCHLA SR1 SYNCML SYNCMLSERV ACTIVESYNC HOTSYNC PALMOS NOKID PCSUITE NFTP NSYNCML NGAGE APPLE IAP ISYNC GATT ● sdptool browse MAC  用于查设备的提供的服务
# sdptool browse 04:22:08:03:10:CE
Browsing 04:22:08:03:10:CE ...
Service Name: SerialPort
Service RecHandle: 0x1000f
Service Class ID List:"Serial Port" (0x1101)
Protocol Descriptor List:"L2CAP" (0x0100)"RFCOMM" (0x0003)Channel: 1
Profile Descriptor List:"Serial Port" (0x1101)Version: 0x0102Service Name: WeChat
Service RecHandle: 0x1000e
Service Class ID List:UUID 128: e5b152ed-6b46-09e9-4678-665e9a972cbc
Protocol Descriptor List:"L2CAP" (0x0100)"RFCOMM" (0x0003)Channel: 23
Profile Descriptor List:"Serial Port" (0x1101)Version: 0x0102
3.回头看协议框图

参考传送门:

BLE学习(1):蓝牙协议栈的介绍
https://www.bilibili.com/read/cv8292866

蓝牙协议栈概览
https://www.jianshu.com/p/29af94dc518c

在这里插入图片描述

SDP(SERVICE DISCOVERY PROTOCOL):服务发现协议,服务发现协议(SDP)为应用程序提供了一种方法来发现哪些服务可用,并确定这些可用服务的特征

GAP负责定义设备在蓝牙LE通信中的角色。它还管理连接的建立和安全。GAP直接与应用程序配置文件和App层连接。目前主要用来进行广播、扫描和发起连接。

HCI层以下为kernel驱动抽象出hci0

RFCOMM用来将无线的蓝牙信号抽象成虚拟串口,注意此串口与wifi蓝牙模块是串口还是USB接口的串口不是一个概念,SPP用来形成一个profile

四、BLE蓝牙调试

1.内核的配合

不是所有模块都支持BLE,这里使用模块rtl8733bu,蓝牙驱动更新版本到 VERSION “3.1.6d45ddf.20220519-142432”

下面的日志表示ok

# dmesg | grep rtl
[    2.925781] usbcore: registered new interface driver rtl8150
[    6.878077] rtk_btusb: config filename rtl8723fu_config
[    6.902215] rtk_btusb: fw name is  rtl8723fu_fw
2.从机的设置

这里以有人WH-BLE106为例

模块 6 位通讯密码,出厂默认为 000000

模块的缺省 UART 口参数为: 波特率 57600、无校验、8 位数据位、1 位停止位

WH-BLE106 模块具有多种工作模式,启动时模块自动进入设置的模式,用户可以通过串口命令把模块切 换到命令行(AT 指令)模式。

从其他模式切换到命令模式需要在串口上输入“+++a”,模块在收到“+++a”后会返回一个确认码“a+ok”, 当在串口发现这个打印信息后即说明模块进入了命令行模式。

以cutecom为例说明,蓝牙模块AT指令的使用

a.以None发送+++a 受到a+OK表示进入了AT指令模式

在这里插入图片描述

b.以CR/LF发送AT指令

在这里插入图片描述

c.常用以及可能用到的AT指令

AT+MODE?
AT+PASS=000000
AT+UART=460800,8,0,0
AT+ENTM   退出
AT+PASSEN 设置/查询是否使能密码配对验证
AT+PAIR   设置/查询设备模块是否开启配对
3.配对ble

前面的步骤做好,此步骤毫无波澜,无论是用blueman还是用bluetoothctl

4.ble调试工具的使用

参考传送门:

gatttool命令详解
https://blog.csdn.net/u010764600/article/details/119685484

【蓝牙】蓝牙,调试 hcitool与gatttool实例
https://www.cnblogs.com/chenxiaomeng/p/9128565.html

gatttool,这个命令实际上是一个gatt client,不知道大家有没有用过手机上的BLE调试工具,比如苹果上最好用的就是lightblue,安卓上类似的工具比较多,我个人比较常用的就是rfconnect。而现在将要介绍的这个命令gatttool的功能就类似于手机上的BLE调试工具。它可以扫描gatt server上的服务,可以给他们发送指令等。

上面的介绍和传送门全是废话,使用ubantu上面的bluez测试硬件设备的BLE功能时遇到了不少坑,在这里记录下,也希望可以帮助其他小伙伴少踩坑。网上一搜,很多资源都是在讲gatttool。但是这个工具总是在连接之后十几秒的时间就提示:GLib-WARNING **: Invalid file descriptor,进而断开BLE的连接,加上它已经是属于已弃用的Bluez工具(弃用工具看这里)。所以推荐使用Bluetoothctl工具。

参考传送门:

Bluetooth LEBluez中Bluetoothctl指令详解(连接iPhone为例)
https://blog.csdn.net/u010764600/article/details/119685484

############运行bluetoothctl###########
root@norco:~# bluetoothctl 
[NEW] Controller C4:3C:B0:D4:68:FB norco [default]
[NEW] Device CA:89:CB:9A:0C:ED Mi Smart Band 4
[NEW] Device 4A:F9:B4:E0:44:D4 4A-F9-B4-E0-44-D4
[NEW] Device 65:2E:2B:A0:C2:64 65-2E-2B-A0-C2-64
[NEW] Device 6C:81:3B:96:3A:2E 6C-81-3B-96-3A-2E
[NEW] Device 56:C3:97:6C:AF:DB 56-C3-97-6C-AF-DB
[NEW] Device 7F:9E:C4:74:27:71 7F-9E-C4-74-27-71
[NEW] Device C1:05:1D:03:11:52 Mi Smart Band 6
[NEW] Device 5A:EE:E6:CE:66:D5 5A-EE-E6-CE-66-D5
[NEW] Device D4:AD:20:3D:1A:04 WH-BLE 106
[NEW] Device 64:98:94:EC:1C:97 64-98-94-EC-1C-97
[NEW] Device C4:22:08:03:10:CE HC-04BLE
[NEW] Device 5C:43:1A:38:56:A5 5C-43-1A-38-56-A5
[NEW] Device 04:22:08:03:10:CE HC-04
Agent registered
############配对WH-BLE 106###########
[bluetooth]# pair D4:AD:20:3D:1A:04
Attempting to pair with D4:AD:20:3D:1A:04
[CHG] Device D4:AD:20:3D:1A:04 Connected: yes
[NEW] Primary Service/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service000100001801-0000-1000-8000-00805f9b34fbGeneric Attribute Profile
[NEW] Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000200002a05-0000-1000-8000-00805f9b34fbService Changed
[NEW] Descriptor/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char0002/desc000400002902-0000-1000-8000-00805f9b34fbClient Characteristic Configuration
[NEW] Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000500002b29-0000-1000-8000-00805f9b34fbUnknown
[NEW] Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000700002b2a-0000-1000-8000-00805f9b34fbUnknown
[NEW] Primary Service/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service00100003cdd0-0000-1000-8000-00805f9b0131Vendor specific
[NEW] Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char00110003cdd1-0000-1000-8000-00805f9b0131Vendor specific
[NEW] Descriptor/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0011/desc001300002902-0000-1000-8000-00805f9b34fbClient Characteristic Configuration
[NEW] Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char00140003cdd2-0000-1000-8000-00805f9b0131Vendor specific
[CHG] Device D4:AD:20:3D:1A:04 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device D4:AD:20:3D:1A:04 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device D4:AD:20:3D:1A:04 UUIDs: 0003cdd0-0000-1000-8000-00805f9b0131
[CHG] Device D4:AD:20:3D:1A:04 ServicesResolved: yes
[CHG] Device D4:AD:20:3D:1A:04 Paired: yes
Pairing successful
[CHG] Device D4:AD:20:3D:1A:04 Trusted: yes
############连接WH-BLE 106###########
[WH-BLE 106]# connect D4:AD:20:3D:1A:04
Attempting to connect to D4:AD:20:3D:1A:04
Connection successful
############进入gatt菜单###########
[WH-BLE 106]# menu gatt
Menu gatt:
Available commands:
-------------------
list-attributes [dev]                             List attributes
select-attribute <attribute/UUID>                 Select attribute
attribute-info [attribute/UUID]                   Select attribute
read                                              Read attribute value
write <data=xx xx ...>                            Write attribute value
acquire-write                                     Acquire Write file descriptor
release-write                                     Release Write file descriptor
acquire-notify                                    Acquire Notify file descriptor
release-notify                                    Release Notify file descriptor
notify <on/off>                                   Notify attribute value
register-application [UUID ...]                   Register profile to connect
unregister-application                            Unregister profile
register-service <UUID>                           Register application service.
unregister-service <UUID/object>                  Unregister application service
register-characteristic <UUID> <Flags=read,write,notify...> Register application characteristic
unregister-characteristic <UUID/object>           Unregister application characteristic
register-descriptor <UUID> <Flags=read,write...>  Register application descriptor
unregister-descriptor <UUID/object>               Unregister application descriptor
back                                              Return to main menu
version                                           Display version
quit                                              Quit program
exit                                              Quit program
help                                              Display help about this program
############列出attributes###########
[WH-BLE 106]# list-attributes D4:AD:20:3D:1A:04
Primary Service/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service000100001801-0000-1000-8000-00805f9b34fbGeneric Attribute Profile
Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000200002a05-0000-1000-8000-00805f9b34fbService Changed
Descriptor/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char0002/desc000400002902-0000-1000-8000-00805f9b34fbClient Characteristic Configuration
Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000500002b29-0000-1000-8000-00805f9b34fbUnknown
Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0001/char000700002b2a-0000-1000-8000-00805f9b34fbUnknown
Primary Service/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service00100003cdd0-0000-1000-8000-00805f9b0131Vendor specific
Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char00110003cdd1-0000-1000-8000-00805f9b0131 #######记住末尾131的,别问为什么是这个服务#####Vendor specific
Descriptor/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0011/desc001300002902-0000-1000-8000-00805f9b34fbClient Characteristic Configuration
Characteristic/org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char00140003cdd2-0000-1000-8000-00805f9b0131   #######记住末尾131的,别问为什么是这个服务,BLE串口服务Vendor specific#####Vendor specific
############选择attributes###########
[WH-BLE 106]# select-attribute /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0011
############显示attributes###########
[WH-BLE 106:/service0010/char0011]# attribute-info
Characteristic - Vendor specificUUID: 0003cdd1-0000-1000-8000-00805f9b0131Service: /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010Notifying: noFlags: notify
############开启notify###########
[WH-BLE 106:/service0010/char0011]# notify on
[CHG] Attribute /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0011 Notifying: yes
Notify started
############从机使用串口助手发送字符串1111111,可以收到###########
[CHG] Attribute /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0011 Value:31 31 31 31 31 31 31                             1111111   
############选择attributes###########
[WH-BLE 106]# select-attribute /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0014  
############写数据,从机可以收到###########
[WH-BLE 106:/service0010/char0014]# write 0x14
Attempting to write /org/bluez/hci0/dev_D4_AD_20_3D_1A_04/service0010/char0014
http://www.dtcms.com/wzjs/126149.html

相关文章:

  • 免费公网网站建设盐城seo优化
  • 如何组做网站磁力猫最佳搜索引擎入口
  • 台州智能模板建站深圳网络营销网站设计
  • 怎么做网站底部版权信息滕州seo
  • 云县网站建设百度ai助手入口
  • 全响应式网站用什么做的seo的范畴是什么
  • wordpress菜单分级网站优化策略
  • html5和ria网站设计关键词排名怎么快速上去
  • 素材网站怎么做建立一个网站需要多少钱
  • 装饰工程包括哪些主要内容seo技术员
  • 海口cms建站系统永久免费进销存管理软件手机版
  • 工程建设信息网站外贸建站优化
  • 南京企业网站开发合肥百度seo代理
  • 做网站流量点击分析的软件百度官网网站登录
  • 做商城购物网站网络推广的优势
  • seo推广品牌排行榜厦门seo排名优化
  • 湘潭做网站最新的即时比分
  • 去掉wordpress.org百度seo免费推广教程
  • 网上营销是做什么的seo搜索工具栏
  • html网页设计大作业网络推广优化工具
  • 做微商自己建网站合适吗赣州seo公司
  • 网站开发 企业宣传册网推app怎么推广
  • 网站ip地址查询广州品牌营销服务
  • 帮做论文网站吗网站设计平台
  • 网站建设需要微信账号和密码做网络推广要学些什么
  • 网络营销策划总结网络优化器下载
  • 企业网站建设维护合同书建网站软件
  • 宿迁网站建设方案seo是什么专业
  • 微餐饮网站建设关注公众号推广2元一个
  • 做得大气的网站推广seo公司