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

做分销网站南京淘宝网站设计公司

做分销网站,南京淘宝网站设计公司,合肥电信网站备案,php html5企业网站源码0 前言 AIO-1126-JD4采用了正基科技推出的一款集成WiFi、蓝牙功能的模组AP6236,支持高速(HS)功能的蓝牙 4.0,集成了 1.5 类功率放大器(PA),并支持低功耗蓝牙(BLE)。提到…

0 前言

AIO-1126-JD4采用了正基科技推出的一款集成WiFi、蓝牙功能的模组AP6236,支持高速(HS)功能的蓝牙 4.0,集成了 1.5 类功率放大器(PA),并支持低功耗蓝牙(BLE)。提到正基就不得不提下博通。博通和正基是芯片技术与模块制造方面的合作关系,正基科技是中国台湾的公司,在无线通信模块领域有一定的市场份额,博通则是全球领先的有线和无线通信半导体公司。正基把包含博通关键IP的核心芯片和自家的射频部分等封装在一起,即SIP(System In Package)。AP6236正是这种采用了博通BCM43430B0方案的SIP模组。

一般SDK里面都会带上博通或正基提供的后台应用。前端的话,可以是自己封装的应用或服务,直接调用博通的接口和后台交互,跑自己的协议栈,当然也可以跑开源的bluez协议栈,bluez的IPC机制是D-BUS,一样是后台前端的模式。

1 Deviceio库

在AIO-1126-JD4上, 瑞芯微专门开发了一个中间层Deviceio库,可以支持正基博通,海华博通,还有bluez。Deviceio库屏蔽了底层复杂的WiFiBT操作比如wpa_supplicant/bluez/bsa等,向上提供友好的应用开发接口,比直接拿着bluez开发起来方便得多,见仁见智。

1.1 Deviceio库编译

SDK里面Deviceio库源码路径在external/deviceio_release,严格按照下面顺序编译。

make rkwifibt-dirclean && make rkwifibt-rebuild
make broadcom_bsa-dirclean && make broadcom_bsa-rebuild
make deviceio_release-dirclean && make deviceio_release

如果直接编译deviceio_release编不过,需要对Deviceio库源码的CMakeLists.txt进行修改,修改如下:

external/deviceio/CMakeLists.txt

cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)#PROJECT (deviceio_test)message(${PROJECT_SOURCE_DIR})
message(${PROJECT_BINARY_DIR})set(deviceio_SOURCE_DIR ${PROJECT_SOURCE_DIR})add_definitions("-Wall -g")add_subdirectory("DeviceIO")
add_subdirectory("test")

external/deviceio/test/CMakeLists.txt

cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)set(SRC_FILESDeviceIOTest.cppbt_test.cppbt_test_1s2.cpprk_ble_app.crk_wifi_test.c
)if(BLUEZ)
add_definitions(-DBLUEZ_USE)
elseif(BSA)
add_definitions(-DBSA_USE)
endif()add_definitions("-fpermissive")link_directories(${deviceio_SOURCE_DIR}/DeviceIO/rv1126_rv1109/lib32/broadcom)add_executable(deviceio_test ${SRC_FILES})
target_include_directories(deviceio_test PUBLIC"${deviceio_SOURCE_DIR}/DeviceIO/include" )
target_link_libraries(deviceio_test pthread DeviceIo asound)install(TARGETS deviceio_test DESTINATION bin)

external/deviceio/DeviceIO/CMakeLists.txt

cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(DeviceIo)# file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/include/DeviceIo DESTINATION ${CMAKE_INSTALL_STAGING}/usr/include/)
# file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/rv1126_rv1109/lib32/broadcom/libDeviceIo.so DESTINATION ${CMAKE_INSTALL_STAGING}/usr/lib/)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/DeviceIo DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/rv1126_rv1109/lib32/broadcom/libDeviceIo.so DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)

在SDK根目录下再次执行

make deviceio_release-dirclean && make deviceio_release

编译成功后会自动安装到host编译链路径和打包target路径

执行./build.sh生成新固件,就可将带有Deviceio库的新固件烧写到设备中。

2 蓝牙服务程序开发

 2.1 Deviceio库链接到应用

cmake工程配置

set(TARGET_SYSROOT "you_sdk_path/rv1126_rv1109_linux_release_20211022/buildroot/output/firefly_rv1126_rv1109/host/arm-buildroot-linux-gnueabihf/sysroot")
set(CMAKE_SYSROOT "${TARGET_SYSROOT}")
target_link_libraries(${PROJECT_NAME}DeviceIo
)

2.2 创建蓝牙服务程序

蓝牙名:ROCKCHIP_BLUE_DOG

创建一个包含三个特征的蓝牙服务,可用如下方法。

#define BLE_UUID_SERVICE	"9FA480E0-4967-4542-9390-D343DC5D04AE"
#define BLE_UUID_REMOTE_CHAR	"AF0BADB1-5B99-43CD-917A-A77BC549E3CC"
#define BLE_UUID_SEND		"dfd4416e-1810-47f7-8248-eb8be3dc47f9"
#define BLE_UUID_RECV		"9884d812-1810-4a24-94d3-b2c11a851fac"
/** The Bluetooth basic service is turned on and the function* must be called before using the Bluetooth function.*/
#if 1
void *bt_test_bluetooth_init_thread(void *)
{printf("%s: BT BLUETOOTH INIT\n", __func__);memset(&bt_content, 0, sizeof(RkBtContent));bt_content.bt_name = "ROCKCHIP_BLUE_DOG";//bt_content.bt_addr = "11:22:33:44:55:66";bt_content.ble_content.ble_name = "ROCKCHIP_ROBOT BLE";#if 0//user-defined ble address test, if not set, the default random addressbt_content.ble_content.ble_addr[0] = 0x11;bt_content.ble_content.ble_addr[1] = 0x22;bt_content.ble_content.ble_addr[2] = 0x33;bt_content.ble_content.ble_addr[3] = 0x44;bt_content.ble_content.ble_addr[4] = 0x55;bt_content.ble_content.ble_addr[5] = 0x66;//Clear two most significant bitsbt_content.ble_content.ble_addr[5] &= 0x3f;//Set second most significant bit, Private resolvablebt_content.ble_content.ble_addr[5] |= 0x40;printf("ble_addr: %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n",bt_content.ble_content.ble_addr[5], bt_content.ble_content.ble_addr[4],bt_content.ble_content.ble_addr[3], bt_content.ble_content.ble_addr[2],bt_content.ble_content.ble_addr[1], bt_content.ble_content.ble_addr[0]);
#endifbt_content.ble_content.server_uuid.uuid = BLE_UUID_SERVICE;bt_content.ble_content.server_uuid.len = UUID_128;bt_content.ble_content.chr_uuid[0].uuid = BLE_UUID_REMOTE_CHAR;bt_content.ble_content.chr_uuid[0].len = UUID_128;bt_content.ble_content.chr_uuid[1].uuid = BLE_UUID_SEND;bt_content.ble_content.chr_uuid[1].len = UUID_128;bt_content.ble_content.chr_uuid[2].uuid = BLE_UUID_RECV;bt_content.ble_content.chr_uuid[2].len = UUID_128;bt_content.ble_content.chr_cnt = 3;bt_content.ble_content.advDataType = BLE_ADVDATA_TYPE_SYSTEM;bt_content.ble_content.cb_ble_recv_fun = bt_test_ble_recv_data_callback;bt_content.ble_content.cb_ble_request_data = bt_test_ble_request_data_callback;rk_bt_register_state_callback(bt_test_state_cb);rk_bt_register_bond_callback(bt_test_bond_state_cb);rk_bt_register_name_change_callback(bt_test_name_change_cb);rk_bt_init(&bt_content);return NULL;
}
#else

cb_ble_recv_fun:BLE数据接收回调。

cb_ble_request_data:BLE请求数据回调。

rk_bt_register_state_callback:注册蓝牙状态回调,蓝牙的打开、关闭等状态。

rk_bt_register_bond_callback:注册蓝牙绑定回调,蓝牙绑定状态通过这个回调上送。

rk_bt_register_name_change_callback:注册蓝牙名称改变回调。

3 数据收发测试

2.1 启动服务程序

启动程序后蓝牙服务被创建。

在手机上可以搜索到蓝牙名ROCKCHIP_BLUE_DOG

2.2 连接蓝牙服务测试

这里借助一个APP“蓝牙调试助手”,搜索到蓝牙ROCKCHIP_BLUE_DOG点进去后就会自动连接上,连接上可以看到我们上面所创建的服务UUID、特征UUID。

2.3 蓝牙数据收发测试

随便选择一个可写的特征UUID,比如BLE_UUID_REMOTE_CHAR对应的UUID,将数据类型调为ASCII,在输入框中填入“Hello body!”,然后点击“Write”。

这时,我们的服务程序就可以在接收回调里收到来自手机的消息内容。


文章转载自:

http://9wT5wxBQ.kzsLk.cn
http://cGqjd8JQ.kzsLk.cn
http://Vs5jii9a.kzsLk.cn
http://Ld3oSiJA.kzsLk.cn
http://hKPkE9Y4.kzsLk.cn
http://tni3gqPx.kzsLk.cn
http://zpHYb2iM.kzsLk.cn
http://V612sAi0.kzsLk.cn
http://Xn4jYTq0.kzsLk.cn
http://IzKgiAHy.kzsLk.cn
http://h0obeMsB.kzsLk.cn
http://v1AMr4JX.kzsLk.cn
http://LlARjPo6.kzsLk.cn
http://jwNAY8em.kzsLk.cn
http://CGKl9ZHf.kzsLk.cn
http://dViDd7SM.kzsLk.cn
http://7teFlBIJ.kzsLk.cn
http://GJ5YDHEE.kzsLk.cn
http://1jk4HEKc.kzsLk.cn
http://YeLLTxb0.kzsLk.cn
http://hzcTVF8C.kzsLk.cn
http://nVMVn9nD.kzsLk.cn
http://FkOVfAyT.kzsLk.cn
http://faAKU7Lh.kzsLk.cn
http://gfjHEjVn.kzsLk.cn
http://l4NWgvVH.kzsLk.cn
http://3tUGNBQ6.kzsLk.cn
http://7095C35u.kzsLk.cn
http://ZjlEbVGk.kzsLk.cn
http://7tI7OiN9.kzsLk.cn
http://www.dtcms.com/wzjs/744621.html

相关文章:

  • 网站优化价格东莞企业网络推广
  • 莞城区小程序app网站开发成都成仁路网站建设
  • 做网站全是别人的链接合肥做企业网站
  • 贵州做网站kuhugz加强理想信念教育主题网站建设
  • 北京互联网公司招聘郑州官网网站推广优化公司
  • 网站备案信息更改自己怎么设计公园
  • 使用ftp修改网站图片垂直类门户网站
  • 沈阳黄页查询电话新网站排名优化
  • 家居网站模板乐陵森
  • 珠海建站模板搭建中天建设招标网站
  • 没有网站做优化东营市建设项目工伤保险是哪个网站
  • 广州市学校网站建设公司网络推广渠道排名
  • 家用电脑如何做网站wordpress force ssl
  • 在线一键免费生成网页网站网站赚钱方法
  • 深圳网站建设微信商城开发免费推广网站58
  • 个人或主题网站建设实验体会公司起名字大全免费四字
  • 毕业设计做网站简单吗wordpress怎么安装老版编辑器
  • 东莞做微网站建设价格网站转移后后台无法登陆
  • 怎么给网站开发后台设计公司网站价格
  • 招标网站开发深圳企业网站建设收费标准
  • 要建设一个网站需要什么手续费网页优化包括
  • 吉林长春seo网站建设网站优化大连网站建设学校
  • 头条搜索站长平台wordpress 会议
  • 怎样可以免费做网站功能型网页设计
  • 长春火车站有几个软件网站建设的目的
  • 什么可以放置网站内容互动对战平台
  • 巴中网站建设网站推广制作网站好的公司
  • 厦门十家较好的网站建设公司建设酒类产品网站的好处
  • 国外做饮料视频网站北京中交建设工程咨询有限公司网站
  • 个人做网站要注意什么罗湖商城网站设计公司