forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Управление устройствами по Bluetooth (http://forum.boolean.name/showthread.php?t=17506)

S_007 11.11.2012 14:47

Управление устройствами по Bluetooth
 
Вложений: 2
Доброе время суток! Не раз на этом форуме поднимался вопрос по теме Bluetooth и пк или мк, в библиотеках есть только Lib_bt которая позволяет соединить два телефона. Здесь http://www.pvsm.ru/arduino/3464/print/ умный и добрый человек выложил исходники, http://om2804.webaltera.ru/downloads...no/BtTermometr, но они написаны на яве. У меня вопрос и огромная просьба ко всем форумчанам, знающим как пишутся библиотеки, возможно ли по этим исходникам написать библиотеку для MP, чтобы телефон мог принимать и отправлять данные общаясь с Bluetooth модулем, или пк например через терминальную программу?
С уважением.

S_007 12.11.2012 21:13

Ответ: Управление устройствами по Bluetooth
 
Почему все молчат? Что случилось с форумом? Неужели великие знатоки уже сюда не заходят? Где Piligrim? odd, Vint? Отзовитьесь

ViNT 12.11.2012 22:42

Ответ: Управление устройствами по Bluetooth
 
Наводка интересная, надо будет посмотреть. Но скорых результатов не обещаю.

S_007 12.11.2012 22:48

Ответ: Управление устройствами по Bluetooth
 
ViNT, Спасибо, жду...

S_007 17.11.2012 15:08

Ответ: Управление устройствами по Bluetooth
 
Вложений: 1
ViNT, вот еще, связь с компом через Bluetooth, в терминальной проге можно видеть мидлет передает байты при нажатии джойстика вверх, вниз, влево вправо

S_007 21.11.2012 18:21

Ответ: Управление устройствами по Bluetooth
 
Вложений: 1
Vint, ничего у тебя не получается с этой либой, да? Вот этот пример простой, пробовал, хорошо работает, может он поможет, пожалуйста Vint, очень надо!!!

ViNT 22.11.2012 00:06

Ответ: Управление устройствами по Bluetooth
 
Честно говоря, толком не смотрел еще, некогда.
Попробую на этой неделе разобраться со структурой и сделать библиотеку с основными функциями.

S_007 22.11.2012 02:54

Ответ: Управление устройствами по Bluetooth
 
Vint, очень благодарен тебе, прошу прощения, завел тему о библиотеке не в той ветке, если возможно перенеси. Vint, и все кто уже писал библиотеки, пожалуйста гляньте на этот код, делал в программе jGRASP как описывалось вот здесь http://forum.boolean.name/showthread.php?t=440, все скомпилилось,

import javax.microedition.lcdui.*;
import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;

public class Lib_bt_os
{
private String URL = "btspp://001F81000830:1;authenticate=false;encrypt=false;ma ster=false";
private StreamConnection con;
InputStream ins;
OutputStream out;

public void Alarm(Exception e)
{
Alert alert = new Alert("Exception", e.getClass().getName(), null, AlertType.ERROR);
alert.setTimeout(Alert.FOREVER);
}

public void BtConnect()
{
try
{
con = (StreamConnection) Connector.open(URL, Connector.READ_WRITE);
out = con.openOutputStream();
ins = con.openInputStream();
}
catch (Exception e)
{
Alarm(e);
}
}

public void BtDisconnect()
{
try
{
if(con != null) con.close();
if(out != null) out.close();
if(ins != null) ins.close();
}
catch (Exception e)
{
Alarm(e);
}
}

public int BtReceiver(short temp)
{
try
{
temp = (short)(ins.read());
}
catch(Exception e)
{
Alarm(e);
}
return temp;
}

public void BtTransmit(short temp2)
{
try
{
out.write(temp2);
}
catch(Exception e)
{
Alarm(e);
}
}
}

в МП вызываю bt_os.btconnect;, btconnect; ругается does not contain function

program test;
uses bt_os;
begin
bt_os.btconnect;
repaint;
delay(10000);
end.

поправьте пожалуйста где что не так, в паскале не силен, а ява для меня вообще темный лес... За ранее благодарен!

ViNT 22.11.2012 10:39

Ответ: Управление устройствами по Bluetooth
 
По крайней мере, все импортируемые в MP функции должны иметь модификатор static.

S_007 22.11.2012 11:27

Ответ: Управление устройствами по Bluetooth
 
хорошо Vint, исправлю, а всё остальное правильно?

ViNT 22.11.2012 14:32

Ответ: Управление устройствами по Bluetooth
 
В целом похоже на правду, не уверен, правда, что MP нормально воспримет тип short, лучше на int заменить.

S_007 22.11.2012 21:10

Ответ: Управление устройствами по Bluetooth
 
Vint, исправил short на int, МП не ругался и с short, компилил в NetBens, все без ошибок, МП все функции скушал, заливаю в телефон, висит на bt.bt_init, пробую сразу bt.bt_connect, висит и сдесь, хотя этот же код компилируя в WTK и без bt.bt_init конектится с компом. Может проблемма в компиляторе NetBens? Если не секрет, ты в какой программе библиотеки делаешь? Пробовал и в JGRASPE, поначалу все было ок, пока исправлял все ошибки, что-то натворил, он стал кричать:
jGRASP exec: jgrasp_environment_invalid
jGRASP wedge2 error: command "jgrasp_environment_invalid" not found.
This command must be in the current working directory
or on the current PATH to use this function.

что за фигня, непойму вобще... Посоветуй Vint, в какой проге можно обойти все эти косяки, пожалуйста!


import javax.microedition.lcdui.*;
import javax.bluetooth.*;
import java.io.*;
import javax.microedition.io.*;

public class Lib_bt
{
public static void bt_init()
{
try
{
LocalDevice local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);
}
catch (Exception e)
{
//Alarm(e);
}
}

public static void bt_connect()
{
try
{
con = (StreamConnection) Connector.open(URL, Connector.READ_WRITE);
out = con.openOutputStream();
ins = con.openInputStream();
}
catch (Exception e)
{
//Alarm(e);
}
}

public static void bt_disconnect()
{
try
{
if(con != null) con.close();
if(out != null) out.close();
if(ins != null) ins.close();
}
catch (Exception e)
{
//Alarm(e);
}
}

public static void bt_transmit(int temp)
{
try
{
out.write(temp);
out.flush();
}
catch(Exception e)
{
//Alarm(e);
}
}

public static int bt_receiver()
{
try
{
temp = (int)(ins.read());
}
catch(Exception e)
{
//Alarm(e);
}
return temp;
}

private static String URL = "btspp://001F81000830:1;authenticate=false;encrypt=false;ma ster=false";
private static StreamConnection con;
private static InputStream ins;
private static OutputStream out;
private static int temp;
}



program test;
uses bt;
var a,s:integer; t:string;

begin
a:= 22;
bt.bt_init;
bt.bt_connect;
Repeat
bt.bt_transmit(a);
s:= bt.bt_receiver;
t:= ''+s;
drawText(t, 34, 47);
repaint;
delay(15);
Until false;
end.

ViNT 22.11.2012 21:20

Ответ: Управление устройствами по Bluetooth
 
NetBeans должна нормально компилировать (класс брать из preverified), J2ME WTK тоже нормально компилит, но там IDE нет.
Ошибка скорее всего где-то в коде, по меньшей мере bt_init() странно выглядит - что-то создает, но ничего не возвращает и не работает с глобальными переменными.
Попробую сегодня немного поковырять.

S_007 22.11.2012 21:36

Ответ: Управление устройствами по Bluetooth
 
Спасибо Vint! Хоть и мало соображаю, но и мне тоже показалась странная функция bt_init(), я имел в виду что в WTK в проекте явы убирал эту функцию и в телефоне без неё все работало хорошо. А библиотеки делать в WTK, через командную строку, я врядли смогу... Я непонял еще (класс брать из preverified), это где Vint? Извени за тупые вопросы, NetBens впервые сегодня только увидел.

ViNT 22.11.2012 21:54

Ответ: Управление устройствами по Bluetooth
 
Цитата:

Сообщение от S_007 (Сообщение 244525)
Я непонял еще (класс брать из preverified), это где Vint?

В папке проекта папка build>preverified, хотя можно и из compiled, в принципе.
Сейчас попробовал собрать библиотеку - библиотека собирается, MP все компилит, программа подключается к другому устройству (естественно, нужно указать существующий MAC). Передачу данных пока не проверял, буду соображать, как это сделать.

S_007 22.11.2012 22:25

Ответ: Управление устройствами по Bluetooth
 
Вложений: 1
Да, я брал из compiled, у меня пока всё тоже самое... Vint, Спасибо что уделил время!!! МАК адрес своего устройства я определял программой из пятого поста btctrl, она находит устройства, и показывает имя и адрес. Для меня она показалась вобще сложной, да, она еще отправляет коды нажатия джойстика, я прикрепил терминалку может тебе пригодится.

S_007 22.11.2012 22:52

Ответ: Управление устройствами по Bluetooth
 
Vint!!!!! взял клас из preverified и всё заработало без функции bt_init, точно она ненужна, всё работает, отправляет и принимает VINT СПАСИБО тебе!!! Вот из за такой мелочи, незнаю сколько бы еще терзал NetBens. Теперь можно усовершенствовать, взять с того кода btctrl функции поиска устройств и прицепить к этому или вобще сделать чтоб автоматически конектился телефон с найденным устройством. ViNT Спасибо!!!!

ViNT 22.11.2012 23:10

Ответ: Управление устройствами по Bluetooth
 
У меня отправка/прием пока не пошли, то ли порт не тот, то ли что-то не так на компе настроено.

S_007 22.11.2012 23:38

Ответ: Управление устройствами по Bluetooth
 
Vint, установи эту прогу IVT.BlueSoleil.v6.4.249.0-EMBRACE на комп, иначе ничего не выйдет, (хотел прикрепить, чо-то не хочет, думает пол часа но не загружает, весит в архиве 38 мб, может из за этого...)сама прога нафик не нужна, просто с ней установятся драйвера для виртуального сом порта блютуза. У меня так: запускаю мидлет, в телефоне появляется окно с вопросом, типа разрешить соединяться с устройством, нажимаю да, после этого на компе выскакивает окно там будет написанно какой ком порт подсоединяется, нажимаю да, всё, теперь можно запускать терминалку и вней выставить тот ком порт который был виден в окне и все. В левом нижнем окошке написать цифру (к примеру 33) и нажать кнопку возле HEX, справа в большом окне должно появиться TX: 33 RX: 16 - это ответ из телефона a:= 22; - в коде МП, на экране телефона должно появиться число которое отправлялось.

S_007 23.11.2012 10:18

Ответ: Управление устройствами по Bluetooth
 
Вложений: 1
Вот немного доделал. В архиве пример и сама библиотека. Vint, немогу высмыкнуть из btctrl функцию поиска, ах эта jaба, как же там всё запутано... ViNT, прошу прощения не ту терминальную программу выложил, которую хотел, заменил.

ViNT 25.11.2012 21:29

Ответ: Управление устройствами по Bluetooth
 
Вложений: 1
Добавил поиск устройств и служб (правда, на всех доступных устройствах выдает 0 служб, но ошибки быть не должно, надо проверить, по моему он ищет только службу COM-порта). Пока некогда писать документацию, чуть позже доделаю и опишу функции, пока только пример. Пример ищет все доступные устройства, потом выдает список служб. Поиск устройств идет сравнительно долго, может казаться, что мидлет висит. Нужно обязательно добавить файл BTUtils.class в ресурсы проекта.

S_007 26.11.2012 20:01

Ответ: Управление устройствами по Bluetooth
 
ViNT, большое человеческое тебе СПАСИБО!!!

ViNT 28.11.2012 00:45

Ответ: Управление устройствами по Bluetooth
 
Теперь, вот, у меня появился вопрос: как восстановить работоспособность встроенного BT стека семерки после установки этого Bluesoleil? Мало того, что этот хлам отказался работать с моим BT модулем, так он еще и стандартный стек вынес напрочь.

UPD:
Нашел, оказывается, эта дрянь отключает службу "Служба поддержки Bluetooth", но обратно ее не включает. Остается непонятным, почему оно не опознало мой адаптер.

S_007 30.11.2012 20:27

Ответ: Управление устройствами по Bluetooth
 
Vint, извени, насоветовал... У меня XP, все работает хорошо, мой адаптер продавался без драйверов, ни на сайте производителя ни в сети найти не получилось, стандартные драйвера Windows подошли только для отправки/получения файлов, на каком-то форуме вычитал, что эта прога устанавливает драйвера виртуального порта для любых адаптеров, других вариантов не нашел, после установки никаких проблем не было ни разу


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

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