蓝牙协议栈的初始化命令


前面我们讲解了一些蓝牙协议栈的相关内容,相信大家已经有所了解了。我们知道蓝牙协议栈在嵌入式方面有着非常广泛的应用。那么今天我们则主要说明一下这当中,蓝牙协议栈的初始化状态的一些命令。

在启动时,蓝牙协议栈的完全装载和初始化需要一定的时间。可以使用BTH_NAMEDEVENT_STACK_INITED来检查协议栈的初始化情况,它定义在%_WINCEROOT%\Public\Common\Sdk\Inc\Bt_api.h中。要打开这个命名事件需要使用OpenEvent函数。

  1. // 确定协议栈是否已初始化  
  2. BOOL fStackUp = FALSE;  
  3. for (int i = 0 ; i < 100 ; ++i)  
  4. {  
  5. HANDLE hBthStackInited = OpenEvent (EVENT_ALL_ACCESS, FALSE, BTH_NAMEDEVENT_STACK_INITED);  
  6. if (hBthStackInited)  
  7. {  
  8.     DWORD dwRes = WaitForSingleObject (hBthStackInited, INFINITE);  
  9.     CloseHandle (hBthStackInited);  
  10.     if (WAIT_OBJECT_0 == dwRes)  
  11.     {  
  12.       fStackUp = TRUE;  
  13.       break;  
  14.     }  
  15. }  
  16. Sleep (1000);  
  17. }  
  18. if (! fStackUp)  
  19. {  
  20. // 错误处理  

相关内容