Re: Lib_bt
Не понял, честно говоря :)
|
Re: Lib_bt
Итак:
1. Эмуляторы моторолы работают с блютус через сервер impronto, лежит в папочке SDK, поэто и NullPointer вылетает, ведь он не запущен. :) 2. Пример при поиске серверов вылетает т.к. я забыл добавить procedure no_servers_found; которая вызывается при неудачном поиске серверов, из нее можно вызвать bt.stop; для остановки поиска иначе будет предпринята попытка повторного поиска |
Re: Lib_bt
Цитата:
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: дома потестю работу с комповым донглом, завтра отпишусь. |
Re: Lib_bt
Да это callback функции. Я и стараюсь их все в примере показать. :)
Флаг активности добавлю. |
Re: Lib_bt
Вобщем потестил. Прием-отправка на виртуальный компорт всетаки не работает. Телефон находит сервер, подключается к нему, судя по появлению значка подключения как в телефоне так и на компе, но терминалка на компорте предательски молчит ) Выложи плз исходники, буду разбираться в чем дело.
|
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. |
Re: Lib_bt
вот так лучше:
while not start do delay(100); while getkeypressed<>ke_key0 do begin у тебя соединение ещ не успевает установиться, а ты уже посылать что-то пытаешься |
Re: Lib_bt
Спасибо!
Вопрос: поддерживается ли одновременное соединение с несколькими серверами? Или это можно реализовать самому с помощью либы? |
Re: Lib_bt
в данный момент многосессионность не реализована, но легко добавляется.
ЗЫ: обычно у одного сервера много клиентов, а тут наоборот надо ;) |
Re: Lib_bt
Хех... Увидев эту либу стряхнул пыль с дистрибутива МП :) Все то что заявслено работает. наскольо удалось потестить :) Спарка SE w810i и Samsung i320
|
Re: Lib_bt
Появилось несколько вопросов:
1.Как сделать так чтобы два разных bluetooth чата не видели друг друга? 2.Каким образом можно узнать, поддерживает ли телефон JSR82? 3.Не работает этот код: Код:
//вызывается при получении сообщения от оппонента |
Re: Lib_bt
Вот давненько написал
http://slil.ru/24965102 проверяет имеется ли класс, возвращает циферку, просьба не стебаться над реализацией) !!! SE w810i и Samsung i320 !!! Сэр IVenomI, не могли бы вы сказать, что за ява машина стоит на самсунге, и заодно потестить выше приведенный мидлет? Насколько мне известно ява-машины для мобильной винды не поддерживают большинство жср-ов(включая синийзуб). Да и на jbenchmark показанно, что нет синего зуба. |
Re: Lib_bt
Нее. Это не то. Мне нужно чтобы моя прога определяла, поддерживает ли телефон jsr82 и можно было играть по блутуз если есть такая поддержка. Потому что у меня нету jsr82 и она просто зависает. Делается это функцией getproperty но параметра я не знаю
|
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. просьба не стебаться над реализацией |
Re: Lib_bt
для обеспечения взаимоневидимости надо добавить кое-что в либу.
чего еще там не хватает? добавлю до кучи :) |
Часовой пояс GMT +4, время: 11:49. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot