文档章节

nRF51822实现iBeacon基站

h
 houj
发布于 2014/09/30 16:33
字数 162
阅读 294
收藏 2

nRF51822实现iBeacon基站



typedef __packed struct{
    uint16_t unknown1;
    uint8_t uuid[16];
    uint16_t major;
    uint16_t minor;
    uint8_t unknown2;
} clbeacon_info_t;
static void advertising_init(void) {
    uint32_t err_code;
    uint8_t flags = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;
    ble_advdata_t advdata;
    uint8_t uuid[16] = { 0x01, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78, 0x89, 0x9a, 0xab, 0xbc, 0xcd, 0xde, 0xef, 0xf0 };
    clbeacon_info_t beacon_info;
    beacon_info.unknown1 = 0x1502;
    memcpy(&beacon_info.uuid, &uuid, sizeof(uuid));
    beacon_info.major = 0x3412;
    beacon_info.minor = 0x7798;
    beacon_info.unknown2 = 0xC5;
    ble_advdata_manuf_data_t manuf_specific_data;
    manuf_specific_data.company_identifier = 0x004C;
    manuf_specific_data.data.p_data = (uint8_t *) &beacon_info;
    manuf_specific_data.data.size = sizeof(beacon_info);
    // Build and set advertising data
    memset(&advdata, 0, sizeof(advdata));
    advdata.name_type = BLE_ADVDATA_NO_NAME;
    advdata.flags.size = sizeof(flags);
    advdata.flags.p_data = &flags;
    advdata.p_manuf_specific_data = &manuf_specific_data;
    err_code = ble_advdata_set(&advdata, NULL );
    APP_ERROR_CHECK(err_code);
}
/**@brief Start advertising.
 */
static void advertising_start(void) {
    uint32_t err_code;
    ble_gap_adv_params_t adv_params;
// Start advertising
    memset(&adv_params, 0, sizeof(adv_params));
    adv_params.type = BLE_GAP_ADV_TYPE_ADV_NONCONN_IND;
    adv_params.p_peer_addr = NULL;
    adv_params.fp = BLE_GAP_ADV_FP_ANY;
    adv_params.interval = APP_ADV_INTERVAL;
    adv_params.timeout = APP_ADV_TIMEOUT_IN_SECONDS;
    err_code = sd_ble_gap_adv_start(&adv_params);
    APP_ERROR_CHECK(err_code);
    nrf_gpio_pin_set(ADVERTISING_LED_PIN_NO);
}

© 著作权归作者所有

下一篇: MongoDB安装
h
粉丝 9
博文 81
码字总数 57985
作品 0
长沙
技术主管
私信 提问
【转发】自己动手 IBeacon 室内定位 完整体验(超详细过程)

原文出处:http://blog.csdn.net/u011341435/article/details/18948137 iBeacon 是苹果公司推出的一项室内定位技术,通过软件和硬件的结合,从而大大提高室内精度,从原来的几百米,几十米,...

极客科尔
2014/02/12
5.5K
0
信驰达通过苹果iBeacon商标认证 推出小尺寸演示Demo板

5月20日,经历了近三个月的资料提交和资质审核后,深圳信驰达正式获得了苹果公司授权的“iBeacon-Technoloy”商标,成为国内首批通过认证的硬件厂商,并拥有了iBeacon商标合法使用权限,公司...

jordum
2014/05/28
229
0
iOS中蓝牙的实现方案

iOS中提供了4个框架用于实现蓝牙连接 GameKit.framework(用法简单) 只能用于iOS设备之间的连接,多用于游戏(比如五子棋对战),从iOS7开始过期 MultipeerConnectivity.framework 只能用于...

5vinsEnt
2016/06/16
100
0
[nRF51822] 9、基础实验代码解析大全 · 实验12 - ADC

一、本实验ADC 配置 分辨率:10 位。 输入通道:5,即使用输入通道AIN5 检测电位器的电压。 ADC 基准电压:1.2V。 二、NRF51822 ADC 管脚分布   NRF51822 的ADC 共有8 个输入通道,对应的管...

史迪奇2号
2018/01/06
0
0
对iBeacon室内定位你了解么?没关系,一文分析其技术原理

苹果推出ibeacon室内定位技术是为了弥补GPS无法覆盖室内定位这种场景。而腾讯则是利用蓝牙ibeacon在场景体验方面进行了创新,实现了微信摇一摇周边的功能。 分析ibeacon室内定位和微信摇一摇...

昇润科技
2018/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-铺铜操作(下)

铺铜是PCB很常见的操作,PCB的敷铜一般都是覆地铜,增大地线面积,有利于地线阻抗降低,使电源和信号传输稳定,在高频的信号线附近敷铜,可大大减少电磁辐射干扰,起屏蔽作用。 本讲讲解啊一...

demyar
7分钟前
1
0
如何通过WASI SDK 在Linux上编译ZXing C++

Mozilla在今年三月份的时候公布了WASI。WASI的目标就是让WebAssembly在任何地方都可以运行,而不仅仅像现在这样只能运行在Node.js和Web浏览器中。WASI目前依然处于初级阶段,这篇文章分享下如...

yushulx
9分钟前
1
0
.Net界面开发神器—DevExpress官方汉化包免费下载!还在等什么?

点击获取DevExpress v19.1.7新版试用下载 DevExpress Localization Service允许您创建一组自定义的附属程序集,要将语言包添加到程序集中,请查看本文中为大家列出的对应版本的汉化包,下载并...

FILA6666
9分钟前
2
0
php生成二维码

        header('Content-Type: image/png');        //清除缓冲区,防止之前面不知道的情况下被加头部信息导致不显示图片内容        ob_clean();        $...

横着走的螃蟹
14分钟前
2
0
伪类和伪元素

伪类和伪元素 伪类和伪元素,对于绝大多数同学来说,都是耳熟能详的名字,但确实又有很多人搞不清楚它们之间的区别,以致于混淆概念。而当概念都混淆的时候,也往往意味着你不会经常使用它,...

不负好时光
16分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部