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). Передачу данных пока не проверял, буду соображать, как это сделать.


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

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