forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_bt (http://forum.boolean.name/showthread.php?t=4624)

Piligrim 02.10.2007 01:12

Lib_bt
 
Вложений: 1
Библиотека и пример обмена сообщениями по Bluetooth. библиотека готова почти на 100%. читайте комментарии в примере. проверена в эмуляторе WTK 2.5.1 и на связке SE M600i и Motorola E700v

Piligrim 02.10.2007 09:39

Re: Lib_bt
 
Версия 1.0.1 :)
+на ошибки соединения можно реагировать самому
*список серверов передается через массив bt_servers

Eddy 02.10.2007 11:55

Re: Lib_bt
 
Бик зур рахмят ака mega respect!

ViNT 02.10.2007 15:27

Re: Lib_bt
 
А на сонерик k510i пойдет?
Piligrim: если у него есть поддержка bluetooth из явы, то вероятнее всего пойдет. пробуйте.

aleshka 02.10.2007 17:36

Re: Lib_bt
 
Дождались все таки :) . Спасибо большое, а исходники увидеть можно? А то нужен SPP, а как у тебя реализован обмен - пока не понятно.
Piligrim: используется именно btspp протокол

aleshka 04.10.2007 10:14

Re: Lib_bt
 
Цитата:

Сообщение от aleshka
Дождались все таки :) . Спасибо большое, а исходники увидеть можно? А то нужен SPP, а как у тебя реализован обмен - пока не понятно.
Piligrim: используется именно btspp протокол

Ага, уже сам разобрался.
Потестил, в эмуляторе с запущенным и сервером и клиентом все работает, но когда запускаю клиента без сервера - мидлет вместе с эмулятором падают, без каких либо сообщений об ошибках.

На телефоне - при попытке подключения в компу - опять же, поиск проходит, потом пытается установить соединение, и оно видимо устанавливается, судя по активации значка в трее, но потом мидлет также вылетает с Ошибкой приложения.

Два телефона - не пробовал.
Подопытный - моторола v3x.

PS: попробовал в моторольском эмуляторе, вылетает с Ошибкой блютуз соединения, и вот этим:

Error in XmlRpcClient::handleEvent: could not connect to server (error 0).
Uncaught exception java/lang/NullPointerException.

Tadeus 04.10.2007 11:28

Re: Lib_bt
 
Есть один вопрос - как будет работать библиотека, если, допустим, нужно ввести код доступа, чтобы блютус мог подключится к телефону?

Piligrim 04.10.2007 11:35

Re: Lib_bt
 
запрос кода доступа делается самим телефоном, это уровень выше библиотеки, думаю просто произойдет вызов connection_error при отказе подключения.по работе библиотеки в различных эмуляторах, я же сказал, что тестировал только в WTK 2.5.1, сегодня погоняю еще и в обоих SDK Моторолы.ЗЫ: надеюсь вы понимаете, что я просто физически не могу проверить все существующие варианты.

aleshka 04.10.2007 11:45

Re: Lib_bt
 
Цитата:

Сообщение от pilgrim
по работе библиотеки в различных эмуляторах, я же сказал, что тестировал только в WTK 2.5.1, сегодня погоняю еще и в обоих SDK Моторолы.ЗЫ: надеюсь вы понимаете, что я просто физически не могу проверить все существующие варианты.

Да я чо, я ж ничо ))) просто начал тестить - начались ошибки, вот и пытался выяснить в чем дело. WTKшный эмулятор просто молча валился, моторольский хоть чтото сказал. Исходники ты не покажешь народу? Проще было бы баги искать.

Piligrim 04.10.2007 12:27

Re: Lib_bt
 
а какой WTK? до версии 2.5 они с блютусом толком работать не умели.исходники конечно могу выложить.

Tadeus 04.10.2007 12:31

Re: Lib_bt
 
Цитата:

запрос кода доступа делается самим телефоном, это уровень выше библиотеки, думаю просто произойдет вызов connection_error при отказе подключения
:(

aleshka 04.10.2007 13:05

Re: Lib_bt
 
Цитата:

Сообщение от pilgrim
а какой WTK? до версии 2.5 они с блютусом толком работать не умели.исходники конечно могу выложить.

WTK 2.5 но в нем дело. самое неприятное - что не работает связка - мобильный + комп. Я уже говорил, коннект устанавливается, но потом мидлет вылетает с ошибкой. Вот с этим и надо бы разобраться.
Исходники выложи, если не трудно конечно )

Piligrim 04.10.2007 13:20

Re: Lib_bt
 
Цитата:

Сообщение от Tadeus
:(

Я имел ввиду, что если код введут неверно будет ошибка, а так подключиться должен без проблем. Вечером все это проверю

Tadeus 04.10.2007 13:25

Re: Lib_bt
 
А хотелось бы спросить, можно ли передавать код программно?

Piligrim 04.10.2007 13:41

Re: Lib_bt
 
в строке инициализации сервера есть параметр authenticate=false, думаю если его сделать true, то будет производиться именно запрос кода

To make a Bluetooth connection secure when you establish it you must ensure that the javax.microedition.io.Connector connection URL string has the appropriate security parameters:

btspp://hostname:[CN | UUID];authenticate=true;authorize=true;encrypt=true

...Where:

authenticate verifies the identity of a connecting device.


authorize verifies its access to a given service. Authorize is not allowed on client URL connection strings.


encrypt specifies that the connection must be encrypted.

программный ввод кода вроде как не предусмотрен в принципе.

ЗЫ: нашел на WebLancer предложение сделать такую либу, уже выполненное, мог заработать 30 баксов :)

Tadeus 04.10.2007 13:57

Re: Lib_bt
 
Не понял, честно говоря :)

Piligrim 04.10.2007 15:45

Re: Lib_bt
 
Итак:
1. Эмуляторы моторолы работают с блютус через сервер impronto, лежит в папочке SDK, поэто и NullPointer вылетает, ведь он не запущен. :)
2. Пример при поиске серверов вылетает т.к. я забыл добавить
procedure no_servers_found; которая вызывается при неудачном поиске серверов, из нее можно вызвать bt.stop; для остановки поиска иначе будет предпринята попытка повторного поиска

aleshka 04.10.2007 16:50

Re: Lib_bt
 
Цитата:

Сообщение от pilgrim
Итак:
1. Эмуляторы моторолы работают с блютус через сервер impronto, лежит в папочке SDK, поэто и NullPointer вылетает, ведь он не запущен. :)
2. Пример при поиске серверов вылетает т.к. я забыл добавить
procedure no_servers_found; которая вызывается при неудачном поиске серверов, из нее можно вызвать bt.stop; для остановки поиска иначе будет предпринята попытка повторного поиска

2. Ага, пасибо, помогло. добавил

procedure no_servers_found;
begin
wait := MenuAppendString('no server found');
delay(1000);
end;

полегчало, вылеты прошли.
Я так понял, что no_servers_found, message_received и т.д. - это callback функции?

1. Эмулятор моторолы был использован как вспомогательное средство ))). В WTK тоже были проблемы без вышепреведенной процедуры ) Ты огласил бы весь их список. И может добавиш флаг активности который устанавливался бы в bt.start и сбрасывался бы в bt.stop

PS: дома потестю работу с комповым донглом, завтра отпишусь.

Piligrim 04.10.2007 18:46

Re: Lib_bt
 
Да это callback функции. Я и стараюсь их все в примере показать. :)
Флаг активности добавлю.

aleshka 05.10.2007 11:44

Re: Lib_bt
 
Вобщем потестил. Прием-отправка на виртуальный компорт всетаки не работает. Телефон находит сервер, подключается к нему, судя по появлению значка подключения как в телефоне так и на компе, но терминалка на компорте предательски молчит ) Выложи плз исходники, буду разбираться в чем дело.

Eddy 05.10.2007 22:24

Re: Lib_bt
 
решил слегка изменить код, теперь не работает. что не так?
program BtProject;
uses bt;
var
cmdOK, clicked : command;
wait, search,exit,service : integer;
bt_servers:array[1..2] of String; {массив под сервера, размер будет переопределен автоматически}
start:boolean;
{вызывается после завершения поиска серверов. содержит список серверов разделенный ||.
временно возвращает только первый найденный}
procedure no_servers_found;
begin
delay(1000);
end;
procedure servers_list(list: integer);
begin
//wait := MenuAppendString(bt_servers[1]); {количество обнаруженных серверов}
drawtext('servers:'+list,50,50);
repaint;
Debug('servers:'+list);
bt.start(bt_servers[1]);{старт соединения с сервером}
end;
{вызывается после успешного установления соединения}
procedure accept_connection;
begin
start:=true;
end;
{вызывается при возникновении ошибок в соединении, пропадании соединения.
автоматически вызывается bt.stop;}
procedure connection_error;
var
cm: command;
begin
showAlert('Bluetooth',
'Ошибка Bluetooth соединения.',
loadImage('/icon.png'),
ALERT_ERROR);
playAlertSound;
cm := createCommand('OK', CM_OK, 1);
addCommand(cm);
repeat
delay(100);
until getClickedCommand <> emptyCommand;
end;
{вызывается при получении сообщения от оппонента}
procedure message_received(msg:String);
begin
if bt.is_client=1 then
drawtext('Na cliente najata'+' ' + (msg),0,0);
else drawtext('Na servere najata'+' ' + (msg),0,0);
Debug(msg);
end;
begin
bt.init;
service:=1;
while getkeypressed= ke_none do begin
drawtext('nazmite 1 chtob stat serverom',0,0);
repaint;
if getkeypressed=ke_key1 then
service:=1;
if getkeypressed=ke_key2 then
service:=2
end;
if service=1 then
bt.wait_connection('ME');
if service=2 then
bt.search_connection;
if start then begin
if bt.is_client=1 then drawtext('true client',0,0);
if bt.is_client<>1 then drawtext('true server',0,0);
end;
while getkeypressed<>ke_key0 do begin
setcolor(255,255,255);
fillrect(0,0,240,320);
setcolor(0,0,0);
bt.send_message('1');
repaint;
end;
bt.stop; {отключаем соединение}
end.

Piligrim 05.10.2007 23:21

Re: Lib_bt
 
вот так лучше:
while not start do delay(100);
while getkeypressed<>ke_key0 do begin
у тебя соединение ещ не успевает установиться, а ты уже посылать что-то пытаешься

Eddy 06.10.2007 00:14

Re: Lib_bt
 
Спасибо!
Вопрос: поддерживается ли одновременное соединение с несколькими серверами? Или это можно реализовать самому с помощью либы?

Piligrim 06.10.2007 00:52

Re: Lib_bt
 
в данный момент многосессионность не реализована, но легко добавляется.
ЗЫ: обычно у одного сервера много клиентов, а тут наоборот надо ;)

IVenoMI 09.10.2007 00:41

Re: Lib_bt
 
Хех... Увидев эту либу стряхнул пыль с дистрибутива МП :) Все то что заявслено работает. наскольо удалось потестить :) Спарка SE w810i и Samsung i320

MotoMustanger 29.10.2007 22:38

Re: Lib_bt
 
Появилось несколько вопросов:
1.Как сделать так чтобы два разных bluetooth чата не видели друг друга?
2.Каким образом можно узнать, поддерживает ли телефон JSR82?
3.Не работает этот код:
Код:

//вызывается при получении сообщения от оппонента
procedure message_received(msg:String);
begin
.............
if getchar(msg,0)='%' then
begin
if getchar(msg,2)='%' then
begin                       
kx:=stringtointeger(copy(msg,1,2));       
ky:=stringtointeger(copy(msg,3,length(msg)-1));
end
else if getchar(msg,3)='%' then
begin
kx:=stringtointeger(copy(msg,1,3));                ky:=stringtointeger(copy(msg,4,length(msg)-1));
end;
btcord:=true;
end;
end;

Procedure game;
begin
repeat
...........
bthod:=false;
btcord:=false;
repeat
clicked:=getclickedcommand;
kclicked:=getkeypressed;
if ((kclicked=KE_KEY5) or (btcord=true)) and (a[kx,ky]='0')then
begin
...............
a[kx,ky]:=hod;
if (gametype='bt') and (btcord=false) then
begin                               
mesag:='%'+kx+'%'+ky+' ';                               
bt.send_message(mesag);
end;
bthod:=true;
if hod='1' then hod:='2'
else if hod='2' then hod:='1';
end
until (kclicked<>KE_NONE) or (clicked=back) or (firstN=true) or (clicked=svgm) or (bthod=true);
until (clicked=back) or (clicked=svgm);
end;

После посылки координаты(нажатии на 5) прогу выбивает в меню на том теле, с которого её послали (хотя координата все же посылается но не распознается на другом телефоне). Без блутуза все хорошо работает, не выбивает

Eddy 30.10.2007 13:40

Re: Lib_bt
 
Вот давненько написал
http://slil.ru/24965102
проверяет имеется ли класс, возвращает циферку, просьба не стебаться над реализацией)
!!! SE w810i и Samsung i320 !!!
Сэр IVenomI, не могли бы вы сказать, что за ява машина стоит на самсунге, и заодно потестить выше приведенный мидлет? Насколько мне известно ява-машины для мобильной винды не поддерживают большинство жср-ов(включая синийзуб). Да и на jbenchmark показанно, что нет синего зуба.

MotoMustanger 30.10.2007 18:40

Re: Lib_bt
 
Нее. Это не то. Мне нужно чтобы моя прога определяла, поддерживает ли телефон jsr82 и можно было играть по блутуз если есть такая поддержка. Потому что у меня нету jsr82 и она просто зависает. Делается это функцией getproperty но параметра я не знаю

Eddy 30.10.2007 20:50

Re: Lib_bt
 
ой извиняюсь, там уже скомпиленная версия. забыл)
выдери оттуда либу trybluetooth
код:
program bluetooth;
uses trybluetooth;
var i:integer;
begin
i:=getbluetooth;
drawText('Bluetooth Support:', 0, 0);
if i=10 then drawtext('True',getstringwidth('Bluetooth Support:'),0)
else drawtext('False',getstringwidth('Bluetooth Support:'),0);
while getkeypressed<>ke_key0 do begin
drawtext('Press key "0" to exit',0,getstringheight('B'));
repaint;
end;
end.
просьба не стебаться над реализацией

Piligrim 30.10.2007 23:39

Re: Lib_bt
 
для обеспечения взаимоневидимости надо добавить кое-что в либу.
чего еще там не хватает? добавлю до кучи :)

Eddy 31.10.2007 00:36

Re: Lib_bt
 
А зачем вообще нужна взаимоневидимость?
Хотелось бы чтоб было больше клиентов)
Ну, и чтобы можно было знат от какого клиента пришло и какому клиенту надо отправить.
Ещё бы хотелось знать описание классов, которые входят в либу)
Что, зачем и почему)

Piligrim 31.10.2007 11:12

Re: Lib_bt
 
взаимоневидимость чтобы можно было два чата или игры в одной зоне запускать и не мешать друг другу.

Итак принимаю к разработке:
1.Два разных bluetooth чата не видели друг друга.
2.Можно узнать, поддерживает ли телефон JSR82.
3.Возможность подключения множества клиентов к одному серверу.

aleshka 31.10.2007 13:33

Re: Lib_bt
 
Цитата:

Сообщение от pilgrim
для обеспечения взаимоневидимости надо добавить кое-что в либу.
чего еще там не хватает? добавлю до кучи :)

Привет, сейчас я напишу )) хотелось бы на клиенте видеть имя и адрес сервера, вернее доступных серверов, список поддерживаемых сервисов ну и возможность коннектится к любому из них, особо интересует SPP ))) а также флаг активности, что бы не делать несколько раз bt.stop, как оказалось оно этого не любит )

Fire_Phoenix 15.12.2007 13:58

Re: Lib_bt
 
Здравствуйте!
У меня недольшая проблемка, я не разбираюсь в Яве и С+, когда то работал с Делфи и Паскалем, и то не профессионально. Вот решил попрбовать написать что нибудь для своего телефона, сделал пару простеньких програмок для работы. Теперь хочется сделать игрушку по блютузу.
Скачал библиотеку с примером и вот незадача...Паскаль ругается на отсутствие функций wait_connection и searh_connection. Подскажите как это исправить. У меня стоит WTK2.2, Nokia SDK R3 S40, j2sdk1.4.2_03, netbeans-5.5, со всем этим делом я еще не совсем правда разобрался:-D
И еще, если я правильно понял, то библиотека для работы с блютузом еще не совсем готова? можно ли ее уже использовать для написания простенькой игрушки (хоть теже крестики нолики по блютузу)

Piligrim 15.12.2007 17:27

Re: Lib_bt
 
Библиотекой можно пользоваться.
Вы видимо забыли положить Lib_bt.class в папку Libs

Fire_Phoenix 16.12.2007 08:42

Re: Lib_bt
 
Библиотека лежит где нужно, к тому же компилятор не ругается на bt.init, bt.is_client, bt.start, bt.send_message, ну и так далее...
может у меня какая то старая версия библиотеки? Весит 2,78кб.

Piligrim 16.12.2007 17:31

Re: Lib_bt
 
А версия МР случайно не 2.0.1? Если да, то обновиться надо
ЗЫ: Библиотеки всего одна версия

Fire_Phoenix 16.12.2007 18:57

Re: Lib_bt
 
Да, именно эта версия, так как другой не нашел, а с сайтом какие то проблемы. А библиотека у меня еще одна есть с таким же названием, только раза в 2 больше весит и там пример другой, функции по другому называются

Piligrim 17.12.2007 00:19

Re: Lib_bt
 
http://boolean.name/showthread.php?t=418 в этой теме есть русская версия 2.0.2
А что за версия библиотеки у тебя? Выложи.

EVIL_USER 17.12.2007 02:46

Re: Lib_bt
 
pilgrim, Ну я думаю эти у него:
Цитата:

Bluetooth support (03.05.2006). Only find devices
Bluetooth messaging support (02.10.2007).
С Вашего же сайта (нижняя ссылка в подписи)

Fire_Phoenix 17.12.2007 08:35

Re: Lib_bt
 
Где скачал точно не помню, в поисковике все перерыл относящееся к этому паскалю, на скоряк поскачивал кучу библиотек и рзные статьи. Архивчик называется bt.rar, в нем есть примерчик BTSample, вот там то и используется одноименный модуль библиотеки, только в нем совсем другое содержание

Piligrim 17.12.2007 11:05

Re: Lib_bt
 
Я знаю, что существует как минимум еще одна версия поддержки BT в МР, которая была написана на заказ за деньги.

Fire_Phoenix 17.12.2007 15:42

Re: Lib_bt
 
В той библиотеке нет функций передачи данных, только поиск устройств. А в вашей версии библиотеки в ближайшее время планируются изменения или пополнения?
Попробую разобраться что и какработает, жаль что второго телефона нет...а с эмуляторами все запутанно выглядит для проверки работоспособности приложения при использовании блютуза
Версию программы заменил, теперь все без ошибок компилируется) спасибо

Piligrim 17.12.2007 23:41

Re: Lib_bt
 
значит это все-таки моя первая библиотека :)
изменения планируются, как только будет время. благо в доме все телефоны с Bluetooth :)

IVenoMI 11.01.2008 16:40

Re: Lib_bt
 
Цитата:

Сообщение от Eddy (Сообщение 62242)
!!! SE w810i и Samsung i320 !!!
Сэр IVenomI, не могли бы вы сказать, что за ява машина стоит на самсунге, и заодно потестить выше приведенный мидлет? Насколько мне известно ява-машины для мобильной винды не поддерживают большинство жср-ов(включая синийзуб). Да и на jbenchmark показанно, что нет синего зуба.

Стояла Jeodec вырванная с мясом из WM6... На ней работало стремно, как и на стандартной, тоесть одни функции работали только в первой, другие только во второй. Проверить уже не могу, в очередной раз сменил девайс, теперь QTEK 9100.

Tadeus 25.04.2008 18:52

Ответ: Lib_bt
 
А как можно получить либу? А то сайт piligrim'a не работает :dontknow:

Tadeus 25.04.2008 19:28

Ответ: Lib_bt
 
Хм, оказалось, что одд добавил в свою русификацию всевозможные либы. Респект :super:

Только вот бы примерчик =)

odd 29.04.2008 08:03

Ответ: Lib_bt
 
Цитата:

Сообщение от Tadeus (Сообщение 80074)
Хм, оказалось, что одд добавил в свою русификацию всевозможные либы. Респект :super:

Только вот бы примерчик =)

Щас работаю над хелпами к этим библиотекам. Над некоторыми можно и голову поломать, но в целом для большинства уже хелпы готовы.

Cliffe Snake 22.09.2008 14:03

Ответ: Lib_bt
 
Народ у кого есть Benq-Siemens EF81? Проверьте работает ли в яве передеча по блютузу, ато я ни к одному телу подключиться из мидлета не смог.

odd 23.09.2008 06:42

Ответ: Lib_bt
 
Цитата:

Сообщение от Cliffe Snake (Сообщение 86619)
Народ у кого есть Benq-Siemens EF81? Проверьте работает ли в яве передеча по блютузу, ато я ни к одному телу подключиться из мидлета не смог.

Из собственного опыта знаю, что на Семенах любят отключать доступ к BT и IRDA из Java. Соболезную.

Phantom 23.09.2008 06:59

Ответ: Lib_bt
 
У меня на cx75 работал БТ из Java.

Kurdt 23.09.2008 11:07

Re: Lib_bt
 
у мну Benq-Siemens E71 работает

EVIL_USER 24.09.2008 00:51

Ответ: Lib_bt
 
С ИК действительно были у симёнов проблемы (а может просто никто не догадался как его мучить правильно).
А вот синий зуб вроде всегда нормально работал

floks 18.10.2008 10:24

Ответ: Lib_bt
 
А ссылка не рабочая

ViNT 18.10.2008 19:10

Ответ: Lib_bt
 
Цитата:

Сообщение от floks (Сообщение 89091)
А ссылка не рабочая

Библиотека должна быть в сборнике от odd.

Piligrim 18.10.2008 21:17

Ответ: Lib_bt
 
Прикрепил к первому сообщению. Простите, не обратил внимания, что её здесь нет.

Frozen Spider 04.11.2008 03:17

Ответ: Lib_bt
 
Прошу прощения, а есть ли полный перечень функций библиотеки, желательно с описанием?

Mark Castle 09.11.2008 15:17

Ответ: Re: Lib_bt
 
Народ!шота я не вообще не понял,как по бт конектицо!Обьясните чайнику!заранее спасибо!

temned 29.12.2008 21:35

Ответ: Lib_bt
 
парни виложите описание всех команд

Dr.SanX 27.01.2009 20:08

Ответ: Lib_bt
 
всем привет.
не запускается приложение(BtProject) на fla2080, возможно из-за того что запускаю без jad файла?
Просто у брата fla а он недоступен.
на Nokia 6300 норм

temned 27.01.2009 22:56

Ответ: Lib_bt
 
Оно вообще устанавливается? Если да, и приложение не запускается-возможно не поддерживается телефоном, а если не получается устанавить приложение, то это вопрос не сюда-а в форум-телефоны от fla

cHeRsAnYa 09.03.2009 10:56

Ответ: Lib_bt
 
А эта либа obex поддерживает? Что-то я не нашёл, хотя и написано "Lib_bt: Полная поддержка соединения по bluetooth" :)

Piligrim 09.03.2009 16:49

Ответ: Lib_bt
 
полная, это в смысле, что и прием и передача. потому как была еще только с обнаружением.

Romanzes 10.03.2009 17:06

Ответ: Lib_bt
 
Здесь уже выкладывали либу, чтобы определить наличие jsr82, но ссылка устарела. Пожалуйста, объясните, как это сделать на яве?


Часовой пояс GMT +4, время: 15:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot