Есть задача передачи файлов с ПК на моб. устройства.
Приобрел БлуТуф адаптер, установил, пытаюсь связаться через BluetoothAPIs, но
hbf = BluetoothFindFirstDevice(&bdsp, &bdi);
возвращает 0, а DWORD dw = GetLastError(); ошибку 1722 THE RPC сервер не доступен.
Что это может быть ?
Есть ли иные способы?
Здравствуйте, Bekass, Вы писали:
B>Что это может быть ? B>Есть ли иные способы?
С такой ошибкой не сталкивался. Однако могу сказать, что указанные функции работают только если используется Bluetooth-стек драйверов от MS. Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут. Кстати, код ошибки RPC server is unavaible может означать, что какой-то сервис не запущен.
Посмотрите, может дело в этом.
Здравствуйте, Lonely Dog, Вы писали:
LD>Здравствуйте, Bekass, Вы писали:
B>>Что это может быть ? B>>Есть ли иные способы? LD>С такой ошибкой не сталкивался. Однако могу сказать, что указанные функции работают только если используется Bluetooth-стек драйверов от MS. Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут. Кстати, код ошибки RPC server is unavaible может означать, что какой-то сервис не запущен. LD>Посмотрите, может дело в этом.
Да нет, сервер запущен. B>> Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут.
А как же тогда быть ?
Здравствуйте, Bekass, Вы писали:
B>>> Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут. B>А как же тогда быть ?
1. Выяснить, что за стек.
2. Взять соответствующий SDK. Например, вот Видком.
Re[4]: BluetoothAPIs
От:
Аноним
Дата:
17.06.08 11:28
Оценка:
Здравствуйте, quodum, Вы писали:
Q>Здравствуйте, Bekass, Вы писали:
B>>>> Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут. B>>А как же тогда быть ?
Q>1. Выяснить, что за стек. Q>2. Взять соответствующий SDK. Например, вот Видком.
Все выяснил, нахожу устройства, все ОК.
Вопрос теперь в том, в каком направлении двигаться, чтоб передать файл на телефон ?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, quodum, Вы писали:
Q>>Здравствуйте, Bekass, Вы писали:
B>>>>> Если используются драйвера от другого производителя (Broadcom, ...), то эти API работать не будут. B>>>А как же тогда быть ?
Q>>1. Выяснить, что за стек. Q>>2. Взять соответствующий SDK. Например, вот Видком.
А>Все выяснил, нахожу устройства, все ОК. А>Вопрос теперь в том, в каком направлении двигаться, чтоб передать файл на телефон ?
А>P.S. А>Оч. срочно надо, проект горит
Подключился, соединился по OBEX
но на посылку
dataBuff[0] = OBEX_CONNECT;
*((unsigned short *)&dataBuff[1]) = htons((unsigned short)7);
dataBuff[3] = OBEX_VERSION;
dataBuff[4] = OBEX_CONNECT_FLAGS;
*((unsigned short *)&dataBuff[5]) = htons((unsigned short)MAX_PKT_SIZE);
Выдает ошибку C3 что соединение принято но недоступно !!!
Может кто подскажет ?
B>Так в том то и дело все до момента посылки B> BYTE dataBuff[MAX_SEND_BUFF_LEN]; B> BYTE recvBuff[MAX_RECV_BUFF_LEN];
B> dataBuff[0] = OBEX_CONNECT; B> *((unsigned short *)&dataBuff[1]) = htons((unsigned short)7); B> dataBuff[3] = OBEX_VERSION; B> dataBuff[4] = OBEX_CONNECT_FLAGS; B> *((unsigned short *)&dataBuff[5]) = htons((unsigned short)MAX_PKT_SIZE);
B>if (send(MySock, (const char*)dataBuff, 7, 0) == SOCKET_ERROR) B> { B> *iMyCode = -2; B> *iSdkCode = WSAGetLastError(); B> return FALSE; B> }
B>Работает, а вот при приеме первый байт должен быть А0 а у меня С3 — ошибка !!!
B> if ((recv(MySock, (char *)recvBuff, MAX_RECV_BUFF_LEN, 0) == SOCKET_ERROR) B> || (recvBuff[0] != OBEX_SUCCESS)) B> {
Поиграйте с размером пакета (MAX_PKT_SIZE) — мне в свое время помогало.
Здравствуйте, alsemm, Вы писали:
B>>Так в том то и дело все до момента посылки B>> BYTE dataBuff[MAX_SEND_BUFF_LEN]; B>> BYTE recvBuff[MAX_RECV_BUFF_LEN];
B>> dataBuff[0] = OBEX_CONNECT; B>> *((unsigned short *)&dataBuff[1]) = htons((unsigned short)7); B>> dataBuff[3] = OBEX_VERSION; B>> dataBuff[4] = OBEX_CONNECT_FLAGS; B>> *((unsigned short *)&dataBuff[5]) = htons((unsigned short)MAX_PKT_SIZE);
B>>if (send(MySock, (const char*)dataBuff, 7, 0) == SOCKET_ERROR) B>> { B>> *iMyCode = -2; B>> *iSdkCode = WSAGetLastError(); B>> return FALSE; B>> }
B>>Работает, а вот при приеме первый байт должен быть А0 а у меня С3 — ошибка !!!
B>> if ((recv(MySock, (char *)recvBuff, MAX_RECV_BUFF_LEN, 0) == SOCKET_ERROR) B>> || (recvBuff[0] != OBEX_SUCCESS)) B>> { A>Поиграйте с размером пакета (MAX_PKT_SIZE) — мне в свое время помогало.
A>Алексей
А в каких диапазонах его ставить MAX_PKT_SIZE ?
И еще вопрос , при передаче устанавливаю:
dataBuff[0] = OBEX_PUT;
*((unsigned short *)&dataBuff[1]) = htons((unsigned short)(fileLen*2 + 6+5));
dataBuff[3] = OBEX_NAME;
*((unsigned short *)&dataBuff[4]) = htons((unsigned short)(fileLen*2 + 3+5));
............................
dataBuff[6 + (i*2)-2] = OBEX_LENGTH;
*((DWORD *)&dataBuff[7 + (i*2)-2]) = dwFileSize;
Но почему-то тел, команду C3- длина не понимает, пишет типа длина неизвестна?
B> А в каких диапазонах его ставить MAX_PKT_SIZE ?
64-1024
B>Но почему-то тел, команду C3- длина не понимает, пишет типа длина неизвестна?
Не знаю, по вашему огрызку кода ничего понять невозможно толком.