BthSetMode на HP 2210

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
Inok
Студент (1 lvl)
Сообщения: 34
Зарегистрирован: Пт мар 05, 2004 16:06

BthSetMode на HP 2210

Сообщение Inok » Ср янв 12, 2005 20:36

Не работает. Посмотрел по сетке, народ говорит, что проблема в том, что BT стэк на 2210 от Widcomm. И что делать? Как программно BT включить? Кто-нибудь знает? А то SDK от Widcomm ~ 1300 $ стоит.
iPaq 2210 + Siemens S55

Det
Студент (1 lvl)
Сообщения: 46
Зарегистрирован: Пт дек 24, 2004 14:00

Re: BthSetMode на HP 2210

Сообщение Det » Пт янв 14, 2005 17:18

Inok писал(а):Не работает. Посмотрел по сетке, народ говорит, что проблема в том, что BT стэк на 2210 от Widcomm. И что делать? Как программно BT включить? Кто-нибудь знает? А то SDK от Widcomm ~ 1300 $ стоит.
Это на самом деле так... Как вариант, можно рассмотреть соединение по виртуальному COM-порту, это конечно не так удобно для пользователя, но может стать единственной альтернативой. А что за задача, конкретно?

Аватара пользователя
KAjFASH
Кандидат (3 lvl)
Сообщения: 117
Зарегистрирован: Чт авг 19, 2004 16:40

Сообщение KAjFASH » Сб янв 15, 2005 21:06

Смотрите код в WidcommConnect функции.

Код: Выделить всё

// 0 -- off, 1 -- on, -1 -- does not exist
int CWirelessManager::GetWidcommStatus() {
   HKEY hMainKey = NULL;
   // Check connection existance
   if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Widcomm\\BtConfig\\General", 0, KEY_ALL_ACCESS, &hMainKey) == ERROR_SUCCESS) {
      DWORD dwTmp = 0;
      DWORD dwSize = 4;
      DWORD dwRes = 0;
      if ((RegQueryValueEx(hMainKey, L"StackMode", NULL, &dwRes, (BYTE*)&dwTmp, &dwSize) != ERROR_SUCCESS) || (dwRes != REG_DWORD)) {
         dwTmp = 0;
      }
      RegCloseKey(hMainKey);
      if (dwTmp == 0) return 0;
   }else return -1;
   return 1;
}

// _bConnect -- connect or disconnect
int CWirelessManager::WidcommConnect(bool _bConnect){
   if (m_iIsBlueToothPresent != 1) { // not present
      return -1;
   }
   if (_bConnect) { //connect
      // Check connection existance
      int iStatus = GetWidcommStatus();
      if (iStatus == -1){
         return -1;
      }
      HWND hWnd = ::FindWindow(L"WCE_BTTRAY", L"Bluetooth Console");
      if (hWnd == NULL) return -2;
      if (iStatus == 0) {
         ::SendMessage(hWnd, WM_COMMAND, 0x01002, 0);

         int i=0;
         for (; i<50; i++) {   // Wait 5 seconds
            if (GetWidcommStatus() == 1) break;

            MSG tmp;
            while(PeekMessage(&tmp, m_MainWindow, 0, 0x3FF, PM_REMOVE)) {
               DispatchMessage(&tmp);
            }
            Sleep(100);
         }
         if (i > 35) return -3;
         m_bWasBlueToothTurnedOn = true;
      }

      return 0;
   }   else   { //disconnect
      if (m_bWasBlueToothTurnedOn && (GetWidcommStatus() == 1)) {
         HWND hWnd = ::FindWindow(L"WCE_BTTRAY", L"Bluetooth Console");
         if (hWnd != NULL) ::SendMessage(hWnd, WM_COMMAND, 0x01001, 0);
      }
      m_bWasBlueToothTurnedOn = false;
      m_hBTWnd = NULL;
      return 0;
   }
   return 0;
}
РегардЗ...
iPAQ, FS LOOX, Versija, Palm, Symbol... SD: 64,128,512
www.salesworks.com.ua

Inok
Студент (1 lvl)
Сообщения: 34
Зарегистрирован: Пт мар 05, 2004 16:06

Сообщение Inok » Ср янв 26, 2005 13:44

Спаибо, а что такое WidcommConnect? Где именно это узреть можно?
iPaq 2210 + Siemens S55

Inok
Студент (1 lvl)
Сообщения: 34
Зарегистрирован: Пт мар 05, 2004 16:06

Сообщение Inok » Ср янв 26, 2005 13:52

2 Det

Решил написать для развлечения и пущего удобства программулю, которая устанавливает dialup соединение по GPRS. Сделать на Ras - функциях: RasDial и т.д. Саму программулю вынести на Today, чтобы в сетку ходить можно было по одному тычку в экран. Очевидно, такая программуля ДОЛЖНА включать BT сама, или опционально, по настройке. Вот, собственно, и вся задачка. Программулю я мог бы кинуть в каталог этого сайта. Бесплатно, естественно :D.

Метод, который предложил KAjFASH, - просто убойный, мне даже в голову как-то не приходило :D :D . Спасибо, ему еще раз.
iPaq 2210 + Siemens S55

Закрыто

Вернуться в «Программирование для КПК»