Forum: Mikrocontroller und Digitale Elektronik BTM-222 empfängt nur ein Zeichen


von Tobi L. (derarzt)


Lesenswert?

Hallo Ich spiele gerade mit dem  mittlerweile bekannten Bluetoothmodul 
BTM-2222 rum  und hab es an einen UART-USB Konverter der einen seriellen 
Port angeschlossen.   ansteuern tu ich das  Modul mit java über mein 
Netbook wenn  ich also in das terminmal programm daten über den USB-UART 
und dann über das bluetooth modul schicke empfange ich über mein netbook 
bei java nur ein Zeichen. und senden kann ich garnicht..... hat jmd ne 
idee?

von Stefan Frings (Gast)


Lesenswert?

Versuche es mal bei einem Hellseher, der gib uns irgend etwas, was wir 
uns dazu anschauen können.

von Christian J. (stormracer)


Lesenswert?

Moin,

kannst du vllt. etwas (alles) von deinem Java Programm veröffentlichen 
(jedenfalls die Bluetooth relevanten Klassen), damit wir sehen können, 
wie dein Code funktioniert.

Hast du mal ausprobiert, ob es funktioniert, wenn du den BTM222 per UART 
Brücke mit dem PC verbindest und gleichzeitig mit einem Bluetooth 
Adapter und dem dazugehörigen Programm auf den BTM verbindest. Dann 
kannst du mit zwei Terminalprogrammen auf den beiden COM Ports die 
Verbindung ausprobieren.

PC - USB - UART - BTM - Bluetooth - PC

Auf welchem Betriebssystem läuft das Java Programm?

Viele Grüße
Christian

von Tobi L. (derarzt)


Angehängte Dateien:

Lesenswert?

ich habe hier mal den COde und eine skizze gepostet^^
1
package bluetooth;
2
import java.io.DataInputStream;
3
import java.io.DataOutputStream;
4
import java.io.IOException;
5
import java.io.InputStream;
6
import java.io.OutputStream;
7
import java.util.Vector;
8
import javax.bluetooth.*;
9
import javax.microedition.io.Connector;
10
import javax.microedition.io.StreamConnection;
11
import javax.obex.ServerRequestHandler;
12
import com.intel.bluetooth.BlueCoveImpl;
13
import com.intel.bluetooth.BluetoothConnectionAccess;
14
import com.intel.bluetooth.BluetoothConnectionAccessAdapter;
15
import com.intel.bluetooth.BluetoothStack;
16
import com.intel.bluetooth.MicroeditionConnector;
17
import com.intel.bluetooth.RemoteDeviceHelper;
18
import com.intel.bluetooth.btspp.Connection;
19
20
public class FuerModulbasis_1_ {
21
  static BluetoothStack sta ;
22
    public static final Vector/*<RemoteDevice>*/ devicesDiscovered = new Vector();
23
    static  UUID uuidModul;
24
    static   boolean Modul = false;
25
    static   boolean trust;
26
    static   boolean Authen;
27
    static BlueCoveImpl cove; 
28
    static String Moduladd;
29
    static String Key;
30
    static String ModulName="Modul"; 
31
    static String UUID ="0003";
32
    public static void main(String[] args) throws IOException, InterruptedException {
33
        final Object inquiryCompletedEvent = new Object();
34
        uuidModul= new UUID("1101",true);
35
 
36
        
37
        devicesDiscovered.clear();
38
        DiscoveryListener listener = new DiscoveryListener() {
39
          public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {  
40
              devicesDiscovered.addElement(btDevice);
41
               try {
42
               System.out.println("Device " + btDevice.getBluetoothAddress() + btDevice.getFriendlyName(false)+ " found");
43
                 if(btDevice.getFriendlyName(false).equals(ModulName)){
44
                   System.out.println("Found my Modul");
45
                   Moduladd=btDevice.getBluetoothAddress();
46
                   Modul=true;
47
                   trust = btDevice.isTrustedDevice();
48
                   Authen =  btDevice.isAuthenticated();
49
                   System.out.println(btDevice.getFriendlyName(false)+"Device ist trustet " + trust );
50
                     if (!btDevice.isTrustedDevice()){
51
                     System.out.println(btDevice.getFriendlyName(false) +"ist nicht gekoppelt");
52
                   }
53
                 
54
                 RemoteDeviceHelper.authenticate(btDevice, "1234");
55
                 Authen =  btDevice.isAuthenticated();
56
                 trust =btDevice.isTrustedDevice();
57
                 System.out.println(btDevice.getFriendlyName(false)+"Device ist trustet " + trust );
58
                 System.out.println(btDevice.getFriendlyName(false)+"Device ist authentifizierz"  +  Authen);  
59
                 System.out.println("vor Dildo");
60
                 
61
          String  tempString = "btspp://"+Moduladd+":1;authenticate=false;encrypt=false;master=false";
62
                 System.out.println(tempString);
63
                 
64
                 StreamConnection conn =   (StreamConnection) Connector.open(tempString);           
65
               
66
                 byte[] g = new byte[7];
67
                 for(byte i=0;i<7;i++){
68
                   g[i]=0;
69
                 }
70
                 InputStream input=    conn.openInputStream();
71
               
72
                 int bnack= input.read(g,1,4);
73
                 System.out.println(bnack+"bytes geelsen");   
74
              
75
                 input.close();
76
                 /*
77
            OutputStream output=    conn.openOutputStream();
78
                   output.write(g);
79
                 System.out.println("bytes gelesen");   
80
              output.close();
81
               */     
82
              conn.close();
83
                 for(int i=0;i<g.length-1;i++){
84
                 System.out.println(g[i]);
85
                 }
86
                 System.out.println("nach open");
87
                   System.out.println("nach connector");}       
88
        } catch (IOException e) {
89
          e.printStackTrace();
90
        }
91
            System.out.println("Device " + btDevice.getBluetoothAddress() + " found");
92
            }
93
            public void inquiryCompleted(int discType) {
94
                System.out.println("Device Inquiry completed!");
95
                synchronized(inquiryCompletedEvent){
96
                    inquiryCompletedEvent.notifyAll();
97
                }
98
            }
99
100
            public void serviceSearchCompleted(int transID, int respCode) {
101
            }
102
103
            public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
104
            }
105
        };
106
107
        synchronized(inquiryCompletedEvent) {
108
            boolean started = LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(DiscoveryAgent.GIAC, listener);
109
            if (started) {
110
                System.out.println("wait for device inquiry to complete...");
111
                inquiryCompletedEvent.wait();
112
                System.out.println(devicesDiscovered.size() +  " device(s) found");
113
            }
114
        }
115
    }
116
}

von Bernhard S. (b_spitzer)


Lesenswert?

HTerm installieren, virtuellen Com-Port (USB-Adapter) mit BT-Modul 
öffnen und in einem 2. HTerm-Fenster den Com-Port des On-Board 
Bluetooth-Moduls öffnen. Wenn dann die Kommunikation klappt, hat dein 
Programm ein Problem.

tschuessle
Bernhard

von K. J. (Gast)


Lesenswert?

genügend stützelkos verbaut ? die btm-222 zicken ganz gerne 
unkontrolliert wen diese fehlen.

von Tobi L. (derarzt)


Lesenswert?

Bernhard Spitzer schrieb:
> HTerm installieren, virtuellen Com-Port (USB-Adapter) mit BT-Modul
> öffnen und in einem 2. HTerm-Fenster den Com-Port des On-Board
> Bluetooth-Moduls öffnen. Wenn dann die Kommunikation klappt, hat dein
> Programm ein Problem.
>
> tschuessle
> Bernhard

habe realterm dran die kommunikation zwishen uart und btm-222 geht ohne 
proble

von Tobi L. (derarzt)


Lesenswert?

K. J. schrieb:
> genügend stützelkos verbaut ? die btm-222 zicken ganz gerne
> unkontrolliert wen diese fehlen.

kommt drauf an was genügend sind^^ da ich aber dachte dass das btm-222 
selber schon die elkos onboard hat habe ich keine zusätzlichen verbaut 
und daher nehm ich mal an zu wenig....die kommnimkation zum uart modul 
klappt aber ich kann das btm-222 problemlos konfigurieren

von K. J. (Gast)


Lesenswert?

Naja das Modul zieht 80mA b.z.w. beim senden 140-180mA bei mir hat es 
sich ganz gerne verschluckt hab je VDD 22µF +100nF verbaut danach lief 
es sauber.

von Martin S. (drunkenmunky)


Lesenswert?

Tobi L. schrieb:
> Bernhard Spitzer schrieb:
>> HTerm installieren, virtuellen Com-Port (USB-Adapter) mit BT-Modul
>> öffnen und in einem 2. HTerm-Fenster den Com-Port des On-Board
>> Bluetooth-Moduls öffnen. Wenn dann die Kommunikation klappt, hat dein
>> Programm ein Problem.
>>
>> tschuessle
>> Bernhard
>
> habe realterm dran die kommunikation zwishen uart und btm-222 geht ohne
> proble

Aber nur auf der PC Seite, oder? Benutze doch auf beiden Seiten ein 
Terminalprogramm, dann siehst du gleich ob es an deinem Java Programm 
liegt...

von Tobi L. (derarzt)


Lesenswert?

Martin S. schrieb:
> Tobi L. schrieb:
>> Bernhard Spitzer schrieb:
>>> HTerm installieren, virtuellen Com-Port (USB-Adapter) mit BT-Modul
>>> öffnen und in einem 2. HTerm-Fenster den Com-Port des On-Board
>>> Bluetooth-Moduls öffnen. Wenn dann die Kommunikation klappt, hat dein
>>> Programm ein Problem.
>>>
>>> tschuessle
>>> Bernhard
>>
>> habe realterm dran die kommunikation zwishen uart und btm-222 geht ohne
>> proble

wie kann ich denn mit dem terminalprogramm auf mein bluetootjstack im 
netbook zugreifen? die ideee hatte ich auch schon^^

von Martin S. (drunkenmunky)


Lesenswert?

eigentlich sollte es den BTM222 (ich denke automatisch) als viruellen 
Com Port installieren. Schau mal im Gerätemanager nach. Dem VCP ist dann 
ne Nummer zugewiesen, die du dann im Terminalprogramm einstellen kannst.

Ansonsten mit einem Bluetoothprogramm die SPP Verbindung aktivieren.

von Tobi L. (Gast)


Lesenswert?

Martin S. schrieb:
> eigentlich sollte es den BTM222 (ich denke automatisch) als viruellen
> Com Port installieren. Schau mal im Gerätemanager nach. Dem VCP ist dann
> ne Nummer zugewiesen, die du dann im Terminalprogramm einstellen kannst.
>
> Ansonsten mit einem Bluetoothprogramm die SPP Verbindung aktivieren.

also auf das modul komme ich ja mit dem terminal.programm aber nicht auf 
der ntbook seite


übrigens weiss ich. jetzt wie ich dem modul mehrere bytes 
schicken/empfangen kann. das lustige ist aber dass ich dem modul erst 
was schicken klann wenn ich vorher was gelesen habe....hat das Modul nur 
einen pfuffer der wenn ich was lese auch gleichzeitig was reinschreiben 
muss bzw umgekehrt? oder hat das modul 2 pfuffer?

von Christian J. (stormracer)


Lesenswert?

Das BTM hat keine Buffer, jedenfalls habe ich noch keine bemerkt.
Ich schreibe teilweise nur Daten, ohne ein einziges Mal zu lesen. Der 
Fehler muss woanders liegen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.