peripheralStateNotificationCB

  1 /*********************************************************************
  2  * @fn      peripheralStateNotificationCB 外圍設備 狀態 通知 回調函數
  3  *
  4  * @brief   Notification from the profile of a state change. 通知來自于profile的狀態改變!
  5  *
  6  * @param@param   newState - new state 形參:新狀態,類型是一個枚舉變量
  7  *
  8  * @return@return  none
  9  */
 10 static void peripheralStateNotificationCB( gaprole_States_t newState )
 11 {
 12 #ifdef PLUS_BROADCASTER //暫時不知 不作任何處理,2016年12月16日15:14:51
 13   static uint8 first_conn_flag = 0;
 14 #endif // PLUS_BROADCASTER
 15   
 16   
 17   switch ( newState )
 18   {
 19     case GAPROLE_STARTED: //GAP 任務 開始,但 并不廣播 的狀態
 20       {
 21         uint8 ownAddress[B_ADDR_LEN]; //定義一個 存放 設備 地址的 buffer
 22         uint8 systemId[DEVINFO_SYSTEM_ID_LEN];//定義一個存放 設備ID buffer
 23 
 24         //GAP 任務獲取 設備 地址放到 ownAddress 臨時 buffer中
 25         
 26         GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);
 27 
 28         // use 6 bytes of device address for 8 bytes of system ID value
 29         systemId[0] = ownAddress[0];
 30         systemId[1] = ownAddress[1];
 31         systemId[2] = ownAddress[2];
 32 
 33         // set middle bytes to zero
 34         systemId[4] = 0x00;
 35         systemId[3] = 0x00;
 36 
 37         // shift three bytes up
 38         systemId[7] = ownAddress[5];
 39         systemId[6] = ownAddress[4];
 40         systemId[5] = ownAddress[3];
 41         
 42         //設備信息設置參數 系統ID  為 設備 地址的 前三個字節+00+后三個字節
 43 
 44         DevInfo_SetParameter(DEVINFO_SYSTEM_ID, DEVINFO_SYSTEM_ID_LEN, systemId);
 45 
 46         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
 47           // Display device address
 48           HalLcdWriteString( bdAddr2Str( ownAddress ),  HAL_LCD_LINE_2 );
 49           HalLcdWriteString( "Initialized",  HAL_LCD_LINE_3 );
 50         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
 51       }
 52       break;
 53 
 54     case GAPROLE_ADVERTISING://GAP 任務 開始廣播 的狀態
 55       {
 56         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
 57           HalLcdWriteString( "Advertising",  HAL_LCD_LINE_3 );
 58         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
 59       }
 60       break;
 61 
 62 #ifdef PLUS_BROADCASTER   //暫時不知 不作任何處理,2016年12月16日15:14:51
 63     /* After a connection is dropped a device in PLUS_BROADCASTER will continue
 64      * sending non-connectable advertisements and shall sending this change of 
 65      * state to the application.  These are then disabled here so that sending 
 66      * connectable advertisements can resume.
 67      */
 68     case GAPROLE_ADVERTISING_NONCONN:
 69       {
 70         uint8 advertEnabled = FALSE;
 71       
 72         // Disable non-connectable advertising.
 73         GAPRole_SetParameter(GAPROLE_ADV_NONCONN_ENABLED, sizeof(uint8),
 74                            &advertEnabled);
 75         
 76         // Reset flag for next connection.
 77         first_conn_flag = 0;
 78       }
 79       break;
 80 #endif //PLUS_BROADCASTER         
 81       
 82     case GAPROLE_CONNECTED://GAP 任務 已經連接的狀態
 83       {        
 84         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
 85           HalLcdWriteString( "Connected",  HAL_LCD_LINE_3 );
 86         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
 87           
 88 #ifdef PLUS_BROADCASTER
 89         // Only turn advertising on for this state when we first connect
 90         // otherwise, when we go from connected_advertising back to this state
 91         // we will be turning advertising back on.
 92         if ( first_conn_flag == 0 ) 
 93         {
 94             uint8 advertEnabled = FALSE; // Turn on Advertising
 95 
 96             // Disable connectable advertising.
 97             GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8),
 98                                  &advertEnabled);
 99             
100             // Set to true for non-connectabel advertising.
101             advertEnabled = TRUE;
102             
103             // Enable non-connectable advertising.
104             GAPRole_SetParameter(GAPROLE_ADV_NONCONN_ENABLED, sizeof(uint8),
105                                  &advertEnabled);
106             
107             first_conn_flag = 1;
108         }
109 #endif // PLUS_BROADCASTER
110       }
111       break;
112 
113     case GAPROLE_CONNECTED_ADV://GAP 任務連接狀態下 進行廣播 的狀態
114       {
115         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
116           HalLcdWriteString( "Connected Advertising",  HAL_LCD_LINE_3 );
117         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
118       }
119       break;      
120     case GAPROLE_WAITING://GAP 任務 等待進行 周期性廣播的  狀態
121       {
122         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
123           HalLcdWriteString( "Disconnected",  HAL_LCD_LINE_3 );
124         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
125           
126 #ifdef PLUS_BROADCASTER                
127         uint8 advertEnabled = TRUE;
128       
129         // Enabled connectable advertising.
130         GAPRole_SetParameter(GAPROLE_ADVERT_ENABLED, sizeof(uint8),
131                              &advertEnabled);
132 #endif //PLUS_BROADCASTER
133       }
134       break;
135 
136     case GAPROLE_WAITING_AFTER_TIMEOUT://GAP 任務  處于連接超時狀態, 等待 執行 進行 周期性廣播的  狀態
137       {
138         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
139           HalLcdWriteString( "Timed Out",  HAL_LCD_LINE_3 );
140         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
141           
142 #ifdef PLUS_BROADCASTER
143         // Reset flag for next connection.
144         first_conn_flag = 0;
145 #endif //#ifdef (PLUS_BROADCASTER)
146       }
147       break;
148 
149     case GAPROLE_ERROR://GAP 任務處于 無效的狀態,暫時不太理解,2016年12月16日15:18:39
150       {
151         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
152           HalLcdWriteString( "Error",  HAL_LCD_LINE_3 );
153         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
154       }
155       break;
156 
157     default://傳入的GAP 狀態參數有錯
158       {
159         #if (defined HAL_LCD) && (HAL_LCD == TRUE)
160           HalLcdWriteString( "",  HAL_LCD_LINE_3 );
161         #endif // (defined HAL_LCD) && (HAL_LCD == TRUE)
162       }
163       break;
164 
165   }
166 
167   gapProfileState = newState;
168 
169 #if !defined( CC2540_MINIDK )
170   VOID gapProfileState;     // added to prevent compiler warning with 添加編譯器 警告 事件
171                             // "CC2540 Slave" configurations
172 #endif
173 
174 
175 }

?

?

截圖 比較好看一點:

?

?

?

?

轉載于:https://www.cnblogs.com/suozhang/p/6198122.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397102.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397102.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397102.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql dump 1017_MySQL數據庫導出 - Can't Wait Any Longer - OSCHINA - 中文開源技術交流社區...

本文內容主要來自MySQL官方文檔:“MySQL5.1 Reference,2.10.3. 將MySQL數據庫拷貝到另一臺機器”注意:參數名與值間可以不用空格,如-uroot或-u root均可;某些參數會有不同含義1.數據庫導出(-A導出所有數據庫&#xff0…

Jsp2.0自定義標簽(第二天)——自定義循環標簽

今天是學習自定義標簽的第二天&#xff0c;主要是寫一個自定義的循環標簽。 先看效果圖&#xff1a; 前臺頁面Jsp代碼 <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <%taglib prefix"myout…

正則表達式以什么開頭以什么結尾_股票hk是什么意思,股票st開頭是什么意思,新通聯股票...

股票hk是什么意思,股票st開頭是什么意思,新通聯股票股票hk是什么意思,股票st開頭是什么意思,新通聯股票我們首先解決時間跨度問題&#xff1a;如果您為諸如退休之類的遙遠目標投資&#xff0c;則應主要投資股票(同樣&#xff0c;我們建議您通過共同基金投資)。心理控制第一&…

讀書筆記--SQL必知必會03--排序檢索數據

3.1 排序數據 子句&#xff08;clause&#xff09; SQL語句由子句構成。一個子句通常由一個關鍵字加上所提供的數據組成。 ORDER BY子句可以取一個或多個列的名字&#xff0c;將SELECT語句檢索出的數據進行排序。 ORDER BY子句可以使用非檢索的列排序數據。 ORDER BY子句必須作…

mysql中編寫匿名塊_Oracle數據庫之Oracle_PL/SQL(1) 匿名塊

本文主要向大家介紹了Oracle數據庫之Oracle_PL/SQL(1) 匿名塊&#xff0c;通過具體的內容向大家展現&#xff0c;希望對大家學習Oracle數據庫有所幫助。1. PL/SQL 簡介PL/SQL是一種比較復雜的程序設計語言, 用于從各種環境中訪問Oracle數據庫。為什么使用PL/SQL&#xff1f;Ora…

安裝了多個Oracle11g的客戶端,哪個客戶端的tnsnames.ora會起作用?

如果我們由于需要安裝了多個Oracle的client&#xff0c;哪個客戶端的tnsnames.ora會起作用呢&#xff1f; 答案是&#xff1a; 在安裝好clinent端后&#xff0c;安裝程序會把client的bin目錄放到path里面&#xff0c;path中在前面的client會被首先搜索&#xff0c;其中的tnsnam…

電腦顯示連接了網絡但是不能上網_為什么電腦插上網線顯示已連接卻上不了網...

嘗試斷一下網&#xff0c;或者重啟一下系統看一下是否解決&#xff1b;也可能是開啟了網絡代理&#xff0c;可以重置一下瀏覽器或者網絡設置&#xff1b;還可以使用安全管家軟件&#xff0c;掃描一下網絡設置。以下是詳細介紹&#xff1a;1、有時候系統顯示已經連接其實并沒有真…

Atcoder ARC101 E 樹dp

https://arc101.contest.atcoder.jp/tasks/arc101_c 題解是也是dp&#xff0c;好像是容斥做的&#xff0c;但是看不懂&#xff0c;而且也好像沒講怎么變n^2&#xff0c;看了寫大佬的代碼&#xff0c;自己理解了一下 #include <bits/stdc.h> #include <ext/pb_ds/assoc…

compress命令--Linux命令應用大詞典729個命令解讀

內容來源于人民郵電出版社《Linux命令應用大詞典》講述729個命令&#xff0c;1935個例子學習Linux系統的參考書、案頭書&#xff0c;遇到不懂的命令或命令選項一查即可爭取每天都發布內容本文出自 “airfish2000” 博客&#xff0c;更多命令查看博客&#xff1a;http://airfish…

javaweb學習總結(三十九)——數據庫連接池

javaweb學習總結(三十九)——數據庫連接池 數據庫連接池的實現及原理 JNDI 在 J2EE 中的角色轉載于:https://www.cnblogs.com/daishuguang/p/5041845.html

python getopterror_python3 getopt用法

python channel_builder.py -s /Users/graypn/ -d /Users/graypn/Documents -m 7 --outreport/xx.html參數也分長格式和短格式短格式&#xff1a;-s長格式&#xff1a;--sourceopts, args getopt.getopt(sys.argv[1:], "hs:d:m:v:p:c:",["help", "sr…

excel刪除空行_Excel里99.9%的人都踩過的坑,早看早避開!

本文作者丨可可&#xff08;小 E 背后的小仙女&#xff09;本文由「秋葉 Excel」原創發布如需轉載&#xff0c;請在公眾號發送關鍵詞「轉載」查看說明2019 年上班第一天感覺怎么樣呢&#xff1f;望著滿屏幕鋪天蓋地的表格&#xff0c;我只能摸摸自己還沒下去的小肚子&#xff0…

CentOS 6.5 Zabbix-agent3.2 安裝 1.0版

1.關閉防火墻service iptables stop2.更換源、安裝zabbix-agentrpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpmyum install -y zabbix-agent3.修改配置文件vim /etc/zabbix/zabbix_agentd.confServer192.168.8.228 ser…

centos下利用httpd搭建http服務器方法

centos下利用httpd搭建http服務器方法 1. 解決的問題 在開發測試過程中&#xff0c;分析圖片任務需要將圖片保存在服務器端&#xff0c;通過url來訪問和下載該圖片&#xff0c;這就需要使用一臺圖片服務器&#xff0c;但常常遇到圖片服務器匱乏的情況&#xff0c;為了解決該問題…

[轉]Java7中的ForkJoin并發框架初探(上)——需求背景和設計原理

詳見&#xff1a; http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp83 這篇我們來簡要了解一下JavaSE7中提供的一個新特性 —— Fork Join 框架。 0. 處理器發展和需求背景 回想一下并發開發的初衷&#xff0c;其實可以說是有兩點&#xff0c;或者說可以從兩個方面…

安裝oculus運行時出現問題_U盤安裝windows10出現的問題解決方法

安裝windows10 出現的問題之前安裝windows10都沒什么問題&#xff0c;今天安裝windows10出現了好多問題&#xff0c;記錄一下。我這個教程我覺得是最好的安裝教程安裝windows10教程問題1. 我們無法創建新的分區&#xff0c;找不到現有分區&#xff08;或者因為MBR分區表問題&am…

JavaFx導出文件

導出文件格式可選 protected void handExportDateAction(ActionEvent event) {// ShowDialog.showConfirmDialog(FXRobotHelper.getStages().get(0),// "是否導出數據到txt&#xff1f;", "信息");FileChooser fileChooser new FileChooser();FileChooser…

python選擇排序從大到小_Python實現選擇排序

一、選擇排序簡介選擇排序(Selection sort)是一種簡單直觀的排序算法。選擇排序首先從待排序列表中找到最小(大)的元素&#xff0c;存放到元素列表的起始位置(與起始位置進行交換)&#xff0c;作為已排序序列&#xff0c;第一輪排序完成。然后&#xff0c;繼續從未排序序列中找…

【Ubuntu14】Nginx+PHP5+Mysql記錄

這次因為工作原因&#xff0c;需要在Linux下進行開發。推薦的環境是Ubuntu14NginxPHPMysql。環境搭建好之后&#xff0c;裝上GIT&#xff0c;裝上IDE&#xff0c;覺得Mysql命令界面麻煩又裝了個Navicat。總體用下來感覺很帶感。 【虛擬機與鏡像文件】 這里我采用的虛擬機是VMwa…

java句柄數過高怎么解決_主播個人及企業利潤高,個稅或企業所得稅怎么解決...

網絡直播在2020年尤為火熱&#xff0c;男女老少都紛紛投入其中&#xff0c;究其原因還是其行業表現出來的“利潤高”等。也確實有部分人取得了一定的成效&#xff0c;也催生了不少的直播平臺、經紀公司的出現。 那么這些主播個人或者企業利潤高&#xff0c;個稅或企業所得…