BTM-222 empfängt nur ein Zeichen

OP #2728008
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?
#2729271
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
OP #2730446
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
}
Angehängte Dateien:
OP #2730491
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
#2730538
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...
OP #2730567
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^^
Gast #2733292
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren