学习成本高,入手慢,这里给大家推荐一款国产的软件,体积小,运行和编译速度快。最重要的是编程语言是中文
这个软件就是E4A.
本次我将向大家介绍如何使用E4A开发BLE蓝牙手机上位机APP。
当然,该软件自带了丰富的例子,也提供了一个BLE例子,大家可以借鉴。
由于没有提供各种库的说明文档和帮助文件,学这个软件可能有经过一段摸索,这里我将向大家介绍我在开发这个软件中
获得的经验。
中文编程语言:易语言,采用中文作为关键字,但是编程的语法和思想和C语言是类似的
为了方便理解,这里我结合单片机开发的思路简单介绍一下
变量要声明类型
对象操作的函数称为:方法
对象可触发的中断函数称为:事件
对象可设置的参数称为:属性
-----------------------------------------------------------------------------------------
好接下来介绍 BLE蓝牙库
BLE(Bluetooth Low Energe)低功耗蓝牙设备主要用于智能穿戴和物联网。
BLE蓝牙类库,包含两种操作:方法和事件
方法:
初始化
置可被发现
开始搜索
停止搜索
连接设备
断开连接
释放资源
是否可读
是否可写
是否可通知
读取数据
写入数据
事件:
创建完毕
发现设备
信号强度改变
发现服务
连接状态改变
读取数据完毕
通道数据改变
由于不存在可见的对象,因此蓝牙没有属性设置。
了解方法和事件的用法可通过左侧类库目录选中对应的条目,在下面的提示信息中查看
例如选中BLE蓝牙库的方法 初始化 条目后:
方法:初始化()为 逻辑型
分类:BLE蓝牙类库---BLE蓝牙
注释:初始化BLE蓝牙设备,成功返回真,失败返回假,BLE蓝牙需要安卓4.3以上系统的支持。
另外 事件类似中断函数,因此在代码中没有先后顺序,可以根据易读的排列顺序进行排版。
所有的动作均属于触发的事件,因此,方法通常在事件里面进行调用。
自己创建的函数,需要自己实现该函数的具体过程,因此函数在这里称为:过程
不过我们这里做BLE蓝牙APP可以不用到过程。
好了,基本的概念已经介绍了,我们可以开始整了。
-----------------------------------------------------------------------------------------
第一步,先根据我们的需要完成可视化的组件布局,并给添加的组件起上一个跟操作相关的名字,在组件的属性对话框设置,同时可以设置组件的其他相关属性。
第二步,使用中需要完成单击响应的,我们可以在设计区直接双击组件,即可自动在代码区生成一个空的事件(类似单片机开发中的中断处理函数,用于响应单击事件),例如四个方向键的单击事件。以下代码我已经填充了单击后执行的蓝牙方法:写入数据,即发数据给连接到手机的蓝牙模块。
事件 按钮上.被单击()
BLE蓝牙1.写入数据(服务UUID,通道UUID,文本到字节("上\n","GBK"))
结束 事件
事件 按钮下.被单击()
BLE蓝牙1.写入数据(服务UUID,通道UUID,文本到字节("下\n","GBK"))
结束 事件
事件 按钮左.被单击()
BLE蓝牙1.写入数据(服务UUID,通道UUID,文本到字节("左\n","GBK"))
结束 事件
事件 按钮右.被单击()
BLE蓝牙1.写入数据(服务UUID,通道UUID,文本到字节("右\n","GBK"))
结束 事件
第三步,完成主窗口的创建工作,因为我们要使用蓝牙库,所以我们可以在APP启动后就申请使用蓝牙的权利,并初始化一个蓝牙对象。
另外就是要实现软件退出的操作,所以我们可以设置一个退出的按钮,实现结束程序。内容如下。
事件 主窗口.创建完毕()
'安卓6.0以上的系统需要动态申请权限,否则app可能无法正常运行
如果 权限操作1.取系统版本号()>=23 则
权限操作1.申请全部权限()
结束 如果
变量 结果 为 逻辑型
结果 = BLE蓝牙1.初始化()
弹出提示("初始化结果:" &结果)
结束 事件
事件 权限操作1.申请完毕(权限数组 为 文本型(),申请结果 为 整数型())
'可以把需要特殊权限的代码写在此处,当申请权限成功后再执行相关代码
结束 事件
事件 图片框_返回.被单击()
结束程序()
结束 事件
第四步,实现蓝牙设备的搜索,从搜索到的蓝牙信号中选出我们要的那个,另外在搜索的过程中显示信号的强度
通过按钮单击实现搜索与停止搜索,并设定搜索时间为10秒,10秒后自动停止搜索。
通过发现设备事件,读取搜到的设备,并匹配名称是否为自己要找的信号。这里我内置了信号名称,也可以通过一个输入框,实现敏感信号名称的修改
如果发现的设备名称是指定名字的信号,就将名称和地址写入到列表框的项目,同时给项目做个编号和标记,方便后面取出
使用信号强度改变事件读取搜索中的信号强度,我们只读取感兴趣的那个名字的信号。
当列表中出现我们感兴趣的那个信号名称和地址时候,我们可以单击列表中的该项,触发连接设备,实现手机与蓝牙模块的连接。
同时通过颜色和文字提示是否连接上或者断开了。这可以使用BLE蓝牙对象的连接状态改变事件实现。
事件 搜索按钮.被单击()
如果 搜索按钮.标题 = "开始搜索" 则
位置传感器1.开始监测()
BLE蓝牙1.开始搜索()
时钟1.时钟周期 = 10*1000
搜索按钮.标题 = "停止搜索"
否则
BLE蓝牙1.停止搜索()
时钟1.时钟周期 = 0
搜索按钮.标题 = "开始搜索"
结束 如果
结束 事件
事件 时钟1.周期事件()
BLE蓝牙1.停止搜索()
搜索按钮.标题 = "开始搜索"
时钟1.时钟周期 = 0
结束 事件
事件 BLE蓝牙1.发现设备(名称 为 文本型,地址 为 文本型,MajorID 为 整数型,MinorID 为 整数型,配对状态 为 整数型)
如果 名称 = "BT24" 则
'屏蔽掉没有名称的蓝牙设备
弹出提示("发现设备")
列表框1.添加项目("名称:" &名称 &"\n地址:" &地址)
列表框1.置项目标记(列表框1.取项目数()-1,地址)
结束 如果
结束 事件
事件 BLE蓝牙1.信号强度改变(名称 为 文本型,地址 为 文本型,信号强度 为 整数型)
如果 名称 = "BT24" 则
列表框1.置项目内容(0,"名称:" &名称 &"\n地址:" &地址 &"\n信号:" &信号强度)
结束 如果
结束 事件
事件 列表框1.表项被单击(项目索引 为 整数型)
设备地址 = 列表框1.取项目标记(项目索引)
BLE蓝牙1.连接设备(设备地址)
'BLE蓝牙1.连接设备(列表框1.取项目标记(项目索引))
弹出提示("正在连接")
连接状态.标题 = "正在连接"
结束 事件
事件 BLE蓝牙1.连接状态改变(状态 为 整数型)
如果 状态 = 1 则
连接状态.标题 = "已连接"
连接状态.背景颜色 = 绿色
否则
连接状态.标题 = "已断开"
连接状态.背景颜色 = 红色
结束 如果
结束 事件
第五步,通过服务提供的通道进行数据传输
连接上蓝牙模块后,就要建立通信的通道了,这需要通过服务来完成,因此我们要对连接的蓝牙模块索取服务的操作
这称为发现服务 事件,由于蓝牙模块中有多个服务可选,我们要找到我们可以进行通信的那个,这个通常在模块的手册也给了相关的短ID
称为服务UUID,每个服务又含有若干个通道UUID。因为模块的出厂设定,只有能用的那个服务才能通信,其他的服务是不可完全可读写的
在产生BLE蓝牙的发现服务事件后,会自动获取到服务的所有信心,装载到一个名字叫:服务信息的集合里,这个集合类型你就当类似C语言结构体数组的东西。
接下来为了验证每个服务是否可读写,就要一个一个测试,这类似,从一个结构体数组先一个一个读出来数组的元素,在数组元素的结构体里取结构体成员,
这就需要用到两层的for循环了,E4A 的for循环用一对 判断循环首---判断循环尾,进行包围。为了方便记,你可以给循环的变量起名字:i,j
然后就是测试对应的服务与通道是否可读,可写,可通知。如果三者都满足,那就是我们要找的通道,实际上,在多组的服务中,只有厂家指定的那组是
满足这三个条件的。其他的一般只能满足可读这一条。
找到合适的服务与通道后,想实现数据的接收,要执行 读取数据的方法,如果直接读,那么系统没有准备好呢,会导致读失败,后面就容易卡死。
这里就像初始化完单片机,要给系统以反应时间,等待个几百毫秒,然后再进行后面的操作一样。
这里就要用到定时器了,找到服务与通道后执行一个1000ms定时器的启动操作,在定时器计数满了之后的事件中执行读取数据的方法,
同时接收框显示服务和通道的ID,并关闭定时器。
事件 BLE蓝牙1.发现服务(服务信息 为 集合)
如果 服务信息.取项目总数() <0 则
退出
结束 如果
变量 i 为 整数型
变量 j 为 整数型
变量 信息数组 为 文本型()
i = 0
判断循环首 i <服务信息.取项目总数()
信息数组 = 服务信息.取项目(i)
j = 0
判断循环首 j <取数组成员数(信息数组)
如果 j >0 则
如果 BLE蓝牙1.是否可读(信息数组(0),信息数组(j)) = 真 且 BLE蓝牙1.是否可写(信息数组(0),信息数组(j)) =真 且 BLE蓝牙1.是否可通知(信息数组(0),信息数组(j)) =真 则
服务UUID = 信息数组(0)
通道UUID = 信息数组(j)
'BLE蓝牙1.读取数据(服务UUID,通道UUID)
'接收框.内容 = 服务UUID &"\n"&通道UUID
时钟2.时钟周期 = 1000
结束 如果
结束 如果
j = j + 1
判断循环尾
i = i + 1
判断循环尾
结束 事件
事件 时钟2.周期事件()
BLE蓝牙1.读取数据(服务UUID,通道UUID)
接收框.内容 = 服务UUID &"\n"&通道UUID
时钟2.时钟周期 = 0
结束 事件
执行完读取操作后,系统会在通道内有数据发送来的时候触发通道数据改变的事件,在该事件中我们读取数据,另外也会触发读取完毕的事件
发送数据是通过单击发送按钮触发写入数据方法实现的,当完成写入后可通过写入数据完毕事件知道是否发送成功。
事件 BLE蓝牙1.读取数据完毕(结果 为 整数型,服务UUID 为 文本型,通道UUID 为 文本型,数据 为 字节型())
如果 结果 = 1 则
弹出提示("读取数据成功:" &通道UUID &"\n数据:" &字节集到十六进制(数据))
否则
弹出提示("读取数据失败:" &通道UUID &"\n数据:" &字节集到十六进制(数据))
结束 如果
结束 事件
事件 BLE蓝牙1.通道数据改变(服务UUID 为 文本型,通道UUID 为 文本型,数据 为 字节型())
弹出提示("通道数据改变" &通道UUID &"\n数据:" &字节集到十六进制(数据))
接收框.加入文本(字节到文本(数据,"GBK"))
结束 事件
事件 发送按钮.被单击()
BLE蓝牙1.写入数据(服务UUID,通道UUID,文本到字节(发送框.内容,"GBK"))
结束 事件
事件 BLE蓝牙1.写入数据完毕(结果 为 整数型)
如果 结果 = 1 则
弹出提示("写入数据成功")
否则
弹出提示("写入数据失败")
结束 如果
结束 事件
其他的操作可在以下完整代码中查看
变量 服务UUID 为 文本型
变量 通道UUID 为 文本型
变量 设备地址 为 文本型
事件 主窗口.创建完毕()
'安卓6.0以上的系统需要动态申请权限,否则app可能无法正常运行
如果 权限操作1.取系统版本号()>=23 则
权限操作1.申请全部权限()
结束 如果
变量 结果 为 逻辑型
结果 = BLE蓝牙1.初始化()
弹出提示("初始化结果:" &结果)
结束 事件
事件 权限操作1.申请完毕(权限数组 为 文本型(),申请结果 为 整数型())
'可以把需要特殊权限的代码写在此处,当申请权限成功后再执行相关代码
结束 事件
事件 图片框_返回.被单击()
结束程序()
结束 事件
事件 搜索按钮.被单击()
如果 搜索按钮.标题 = "开始搜索" 则
位置传感器1.开始监测()
BLE蓝牙1.开始搜索()
时钟1.时钟周期 = 10*1000
搜索按钮.标题 = "停止搜索"
否则
BLE蓝牙1.停止搜索()
时钟1.时钟周期 = 0
搜索按钮.标题 = "开始搜索"
结束 如果
结束 事件
事件 时钟1.周期事件()
BLE蓝牙1.停止搜索()
搜索按钮.标题 = "开始搜索"
时钟1.时钟周期 = 0
下面,我们就来看看台式机蓝牙启动步骤。台式机由于没有内置的蓝牙模块,所以要手动搭配一块蓝牙适配器并安装好驱动软件(蓝牙适配器附带驱动光盘)。
选择一款蓝牙耳机,搜索设备成功配对后就可以使用了,由于蓝牙是一种无线数据传输技术,受距离限制较明显,理论上距离越远信号会衰减越快,所以 用蓝牙耳机听音乐的话就别指望有多么好的音质了,当然质量上乘的蓝牙耳机音质还是可以的,不过价格昂贵,如果不是发烧友就买个不同点的就好,至于价格,目 前市场上蓝牙设备品牌参差不齐,价格高低不同,还是多了解下再下手为好!蓝牙设备都可以互相配对使用,如果电脑跟手机蓝牙连接的话,要看手机型号是否支持 蓝牙和功能而定了。
下面一起来看看台式电脑怎么装蓝牙和台式电脑蓝牙怎么用的方法:
第一:数据线连接手机插入电脑的usb口后,电脑会出现新硬件的提示(建议使用windows xp 系统,这将简化你的安装过程),把数据线附带的光盘插入光驱,让系统自动查找驱动(如数据线驱动光盘里面的驱动文件需要安装,请先安装驱动程序文件),一 般系统经过一段时间的就能发现驱动程序 ,并提示你安装它,直到安装完成。如果提示 “新硬件已经安装成功,现在可以使用它”并在“硬件管理器”-“端口”里面可以看到一个虚拟的usb端口号,表示硬件已经安装成功了,并可以进行下一般操 作了。
第二: 硬件安装成功后,接下来就是安装一个GPRS Modem了(这可能在安装驱动程序的时候已经安装好GPRS Modem了,不同手机的手机GPRS Modem安装可能有区别),在“硬件管理器”-“调制解调器”如果没有看到手机对应的GPRS Modem,则需要手工安装(在安装GPRS Modem前,可能需要安装GPRS Modem的驱动程序),安装方法请详细阅读数据线或者手机的说明书。
第三:GPRS Modem安装成功后,已经大功告成了,接下来你需要在电脑里面创建一个拨号链接(这个过程可以在系统向导下,一步一步完成),需要填写“拨号:*99#,用户名和密码为空就可以了” 。
第四:设置一下拨号连接的方式,如果没有这一步,那么产生的费用你吃不消的(0.1/kb,100元没有多少流量可以消耗),在“硬件管理 器”-“调制解调器”找到手机的GPRS Modem,在GPRS Modem的“属性”-“高级,额外的初始化命令”里面填入 [ AT+CGDCONT=1,"IP","cmwap ](注:是括号里面的命令)确定就可以了。
第五:上面几步都ok的话,现在你就可以拨号了,试试看,应该就可以了。
第六:拨号成功,提示连接速率是 115kbps,这表面拨号连接已经成功了,不过实际速率没有115kbps的大概在64kbps左右。现在打开ie还不能上www网站的,需要设置一下代理,设置过程如下:
在ie “internet选项”-“连接”里找到你创建的拨号连接,点击“设置”,在“代理服务器”里设置 “地址:10.0.0.172 端口:80” 点击确定。
以上就是关于 台式电脑蓝牙怎么开,台式机蓝牙启动步骤 的介绍,希望对您有所帮助!
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。不同的服务器应用对应就有一些常用的服务器软件:
比如:web服务器常用软件有:
提供web服务的IIS,Apache,Tomcat等,
数据库服务的MySQL,oracle,sqlserver等,
服务器程序语言:php、ASP、.net等软件等,
ftp服务的有:Serv-U、FileZilla 等。
总之,服务器和本地PC差不多,根据需要可以安装需要的软件,不过服务器主要功能是各种提供网络服务的,所有会有各种提供不同服务,应用的软件。入门常用就以上那些。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)