国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

  • <dfn id="rril6"></dfn>
  • <menuitem id="rril6"></menuitem>
    0
    • 聊天消息
    • 系統消息
    • 評論與回復
    登錄后你可以
    • 下載海量資料
    • 學習在線課程
    • 觀看技術視頻
    • 寫文章/發帖/加入社區
    會員中心
    創作中心

    完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

    3天內不再提示

    藍牙mesh互傳及藍牙單向穿透的功能測試

    全志在線 ? 來源:全志在線開發者論壇 ? 2023-12-11 11:34 ? 次閱讀
    加入交流群
    微信小助手二維碼

    掃碼添加小助手

    加入工程師交流群

    相較于WiFi技術,低功耗藍牙BLE技術具有搜索連接速度快、超低功耗等特點,BLE搭配mesh技術所延伸的藍牙mesh技術因其支持多點對多點連接、物理覆蓋區域廣闊,也被廣泛用于智能家居中控、智能安防、智慧樓宇等物聯網設備上。

    XR806是一款支持BLE 5.0、支持完整低功耗藍牙服務GATT、支持SIG mesh完整協議棧的無線芯片,同樣適配物聯網設備的使用場景需求,在通過官方文檔的指引下配置好XR806的RTOS環境后,可按文章介紹步驟進行后續的藍牙mesh互傳及藍牙單向穿透的功能測試。

    藍牙mesh互傳

    最新的藍牙mesh1.1引入了定向轉發路由功能,擴大射頻覆蓋范圍,使信號一級級中繼下去,手頭有nRF52840開發板,不妨和全志XR806進行組網,測試兼容性和互操作性,也驗證XR806 mesh協議棧的完成度。先看效果:

    c86c4296-95ad-11ee-8b88-92fbcf53809c.gif

    nRF52840用Segger Embedded Studio打開工程:

    nrf5SDKforMeshv320srcexampleslight_switchserver

    同時燒錄協議棧和APP;XR806為觀察到現象,將mesh例程的收到mesh opcode的回調接口加個指示信號,具體為:

    static void gpio_output_init(void)
    {
     GPIO_InitParam param;
     param.driving = GPIO_DRIVING_LEVEL_1;
     param.mode = GPIOx_Pn_F1_OUTPUT;
     param.pull = GPIO_PULL_NONE;
     HAL_GPIO_Init(GPIO_OUTPUT_PORT, GPIO_OUTPUT_PIN, ¶m);//PA21
    }
    
    
    /***************Onoff Configuration Declaration*******************/
    static void app_onoff_srv_set_cb(const struct bt_mesh_model *model, uint8_t onoff, uint8_t target_onoff, const struct bt_mesh_transition_status *opt)
    {
     g_onoff_value = onoff;
     HAL_GPIO_WritePin(GPIO_OUTPUT_PORT, GPIO_OUTPUT_PIN, onoff ? GPIO_PIN_HIGH : GPIO_PIN_LOW);
     printf("[app] onoff set(%d)", onoff);
     if (opt) {
      printf("target onoff(%d), total_steps(%d), steps(%d)",
          target_onoff, opt->total_steps, opt->present_steps);
     }
     printf("
    ");
    }

    編譯完后將mesh_demo燒錄進XR806中,將XR806的GenericOnOff Server訂閱到publisher的發布地址,就能實現同一網絡(具備同一網絡密鑰可以正確解析出mesh消息)內的消息傳遞。


    此時用nRF Mesh去給nRF52840和XR806分別入網和設置訂閱地址,本次將他們訂閱到0xC000。

    c8a38c24-95ad-11ee-8b88-92fbcf53809c.jpg

    由于入網過程沒有錄制下來,且XR806無法退網,且入網信息暫時沒找到擦除方法,這樣重新燒錄還是保持入網狀態而無法回到unprovisioned狀態。

    nRF52840接到JlinkRTT Viewer,XR806接到putty,可以看到XR806的Controller/host協議棧的版本信息,手機發布一條開關(由GernericOnOff元素統屬)消息,泛洪給兩臺射頻設備,可以在各自控制臺看到都有收到set opcode網絡消息。

    c8b6b538-95ad-11ee-8b88-92fbcf53809c.png

    藍牙穿透(單向)

    有時無線透傳在無法布線時有很方便的效用,不妨試試藍牙透傳,效果如下:

    c9209958-95ad-11ee-8b88-92fbcf53809c.gif

    具體是無線數據->串口數據,串口數據->無線數據,目前前者實現了,后者還有些問題未解決,

    c8b6b538-95ad-11ee-8b88-92fbcf53809c.png

    實現過程如下,基于工程:

    demo/Bluetooth/peripheral_demo改成peripheral_uart_demo

    同時目錄下文件里工程名也進行修改:

    peripheral_uart_demo/gcc/defconfig改成peripheral_uart_demo

    然后引入串口讀寫獨立接口即把demo/at_demo下的serial.c、serial.h、serial_debug.h復制到剛才peripheral_uart_demo工程下,由于要無線寫以及串口寫轉無線,所以profile涉及到write_without_rsp和notify,具體配置為:

    static struct bt_gatt_attr vnd_attrs[] = {
     /* Vendor Primary Service Declaration */
     BT_GATT_PRIMARY_SERVICE(&vnd_uuid),
     BT_GATT_CHARACTERISTIC(&vnd_enc_uuid.uuid,
             BT_GATT_CHRC_WRITE_WITHOUT_RESP | BT_GATT_CHRC_NOTIFY,
             BT_GATT_PERM_WRITE,
             NULL, write_without_rsp_vnd, &vnd_value),
     BT_GATT_CCC(vnd_ccc_notify_changed, BT_GATT_PERM_READ|BT_GATT_PERM_WRITE),
    };

    寫回調接口為:

    /**********************vnd_write_cmd_uuid*****************************/
    static ssize_t write_without_rsp_vnd(struct bt_conn *conn,
            const struct bt_gatt_attr *attr,
            const void *buf, uint16_t len, uint16_t offset,
            uint8_t flags)
    {
     uint8_t *value = attr->user_data;
    
    
     /* Write request received. Reject it since this char only accepts
      * Write Commands.
      */
     if (!(flags & BT_GATT_WRITE_FLAG_CMD)) {
      return BT_GATT_ERR(BT_ATT_ERR_WRITE_REQ_REJECTED);
     }
    
    
     if (offset + len > sizeof(vnd_value)) {
      return BT_GATT_ERR(BT_ATT_ERR_INVALID_OFFSET);
     }
    
    
     memset(value, 0, sizeof(vnd_value));
     memcpy(value + offset, buf, len);
     serial_write(value + offset, len);
     *(value + offset + len) = '?';
     printf("
    write_without_rsp_vnd");
     return len;
    }

    串口轉無線回調(有問題):

    static void vnd_notify(void)
    {
     static uint8_t vnd[MAX_LONG_DATA];
     uint16_t len=0;
     if (!vnd_notif_enabled)
      return;
     printf("
    notify
    ");
     serial_read(vnd_notify_value,len);
     if(len>MAX_LONG_DATA || len==0)
      return;
     memcpy(vnd, vnd_notify_value, len);
      printf("
    vnd_notify
    ");
     bt_gatt_notify(NULL, &vnd_svc.attrs[1], vnd, sizeof(vnd));
    }

    然后在bt_app_init函數里加入透傳口UART1的初始化代碼即可:

     serial_init(SERIAL_UART_ID, 115200, UART_DATA_BITS_8, UART_PARITY_NONE,
      UART_STOP_BITS_1, 0);
     serial_start();

    審核編輯:湯梓紅

    聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
    • 藍牙
      +關注

      關注

      119

      文章

      6312

      瀏覽量

      178685
    • 物聯網
      +關注

      關注

      2945

      文章

      47818

      瀏覽量

      414797
    • WIFI
      +關注

      關注

      82

      文章

      5509

      瀏覽量

      213508
    • Mesh
      +關注

      關注

      5

      文章

      230

      瀏覽量

      31337
    • 無線芯片
      +關注

      關注

      2

      文章

      87

      瀏覽量

      24778

    原文標題:物聯網設備人柱力,XR806藍牙mesh互傳及單向穿透功能測試

    文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。

    收藏 人收藏
    加入交流群
    微信小助手二維碼

    掃碼添加小助手

    加入工程師交流群

      評論

      相關推薦
      熱點推薦

      什么是藍牙mesh藍牙mesh有哪些功能

      請問下什么是藍牙mesh藍牙mesh有哪些功能
      發表于 06-30 07:08

      【平頭哥藍牙Mesh網關開發套件試用體驗】mesh開關控制mesh燈 + 測試視頻

      本帖最后由 jf_11671167 于 2021-10-9 16:20 編輯 本文對 PHY6220 藍牙mesh 開關、藍牙mesh燈配置,并用
      發表于 09-26 23:16

      【平頭哥藍牙Mesh網關開發套件試用體驗】手機控制藍牙mesh燈 + 測試視頻

      ; mesh_light_node_demo ,官方 demo 工程創建完成后編譯下載到 PHY6220 開發板,詳細步驟參考筆者往期文章:【平頭哥藍牙Mesh網關開發套件試用體驗】PHY6220
      發表于 09-26 23:23

      全志XR806藍牙mesh互傳功能測試

      評測二 藍牙mesh互傳 最新的藍牙mesh1.1引入了定向轉發路由功能,擴大射頻覆蓋范圍,使信
      發表于 12-07 15:49

      藍牙模塊低功耗藍牙4.2藍牙Mesh組網方案

      藍牙模塊低功耗藍牙4.2藍牙Mesh組網方案,本文介紹了能進行Mesh組網的藍牙模塊的一些基本參
      發表于 09-28 16:41 ?39次下載

      解密:Ble低功耗藍牙藍牙mesh網絡之間的關系

      能夠接收和利用其廣播的其他設備數量沒有明確的限制。藍牙Beacon就是藍牙廣播功能的一個絕佳案例。?二、藍牙mesh基于ble低功耗
      的頭像 發表于 06-12 11:12 ?1w次閱讀

      如何選擇合適的藍牙mesh開發套件?

      2017年7月,藍牙技術聯盟(Bluetooth SIG)正式宣布推出藍牙mesh規格,在藍牙技術點對點和廣播功能的基礎上添加了
      的頭像 發表于 08-10 10:54 ?5062次閱讀

      藍牙網關與藍牙Mesh之間的區別

      1、藍牙網關的定義 藍牙網關是一個集成藍牙 BLE、WiFi 和以太網的網關設備,藍牙 BLE 與 WiFi之間通過串口實現通信,可靈活應用于各種物聯網場景。 2、
      的頭像 發表于 07-10 14:32 ?4.1w次閱讀

      如何用藍牙mesh開關控制藍牙mesh

      本文對 PHY6220?藍牙mesh 開關、藍牙mesh燈配置,并用藍牙mesh開關控制
      的頭像 發表于 10-09 09:22 ?9263次閱讀

      低功耗藍牙藍牙Mesh模塊的區別與關系

      低功耗藍牙模塊和藍牙Mesh模塊的區別與關系 藍牙Mesh并非無線通信技術,而是一種網絡技術。藍牙
      的頭像 發表于 05-30 11:13 ?1998次閱讀

      藍牙MESH是什么?

      藍牙Mesh是一種基于藍牙技術的無線通信網絡協議,專門設計用于創建大規模設備網絡,特別適用于物聯網(IoT)應用。以下是藍牙Mesh的一些關
      的頭像 發表于 09-14 08:03 ?6322次閱讀
      <b class='flag-5'>藍牙</b><b class='flag-5'>MESH</b>是什么?

      藍牙網關和藍牙mesh網關區別

      藍牙網關和藍牙Mesh網關是兩種不同的技術,它們在物聯網(IoT)領域中扮演著重要的角色。 藍牙網關和藍牙
      的頭像 發表于 10-18 10:33 ?1.1w次閱讀

      藍牙Mesh技術的特點和應用場景

      的網絡體系。藍牙Mesh網絡中的每個設備都被視為一個節點,這些節點可以相互傳遞信息,形成一個自組織、自愈合的網絡系統。
      的頭像 發表于 02-06 16:07 ?3400次閱讀

      100個節點測試藍牙Mesh?來看看效果

      100個節點測試藍牙Mesh? 看看效果如何? 本次測試使用了安信可的泰凌TB系列模組 主要的測試的點在于配網的大致速度 丟包率以及最長響應
      的頭像 發表于 04-09 13:58 ?1302次閱讀
      100個節點<b class='flag-5'>測試</b><b class='flag-5'>藍牙</b><b class='flag-5'>Mesh</b>?來看看效果

      芯科科技助力藍牙Mesh設備開發

      藍牙Mesh 1.1是藍牙技術聯盟(Bluetooth SIG)發布的最新標準版本,Silicon Labs(芯科科技)作為開發和實施藍牙Mesh
      的頭像 發表于 05-16 13:51 ?1252次閱讀
      芯科科技助力<b class='flag-5'>藍牙</b><b class='flag-5'>Mesh</b>設備開發