Hallo Leute, Ich würde gerne mal etwas ausprobieren, aber kann nicht ausreichend Informationen dazu finden... Und zwar würde ich gern einen uC mit einem Bluetooth Modul verbinden welches das HID Protokoll unterstützt. Könnt euch schon denken, uC soll PC über Bluetooth steuern... Jetzt zu meinem Problem! Habe schon die Offizielle Doku von Bluetooth.org überflogen (>100Seiten) und auch schon mehrere Stunden gegoogelt, aber ich verstehe immer noch nicht mit welchen Daten ich das BT-Modul füttern muss, damit die Maus sich z.B. nach oben bewegt! Habe nirgendwo irgendeinen Befehl oder Register gefunden wo ich die Mausbewegung rein schreiben kann! Oder verstehe ich da etwas grundsätzlich falsch? Grüße und danke für eure Hilfe!!! DerPaul
Mit Registern und so ist da nicht viel. Die Bluetooth-Module können meist nur den untersten Teil des Protokolls, nämlich HCI selber. Die darüber liegenden Schichten musst Du selber implementieren. Das ganze stellt sich dann als ein Austausch von Nachrichten (=strukturierte Datenblöcke) zwischen den verschiedenen Schichten dar. Du musst eben die passenden Nachrichten erzeugen und verarbeiten. Und ja: das ganze ist komplex. fchk
Hallo, es gibt z.B. von Bluegiga einige Module, welche einen Bluetoothstack enthalten. Damit ist es relativ einfach möglich ein HID Device zu erzeugen. CU, Jay
Frank K. schrieb: > Mit Registern und so ist da nicht viel. Die Bluetooth-Module > können > meist nur den untersten Teil des Protokolls, nämlich HCI selber. Die > darüber liegenden Schichten musst Du selber implementieren. > > Das ganze stellt sich dann als ein Austausch von Nachrichten > (=strukturierte Datenblöcke) zwischen den verschiedenen Schichten dar. > Du musst eben die passenden Nachrichten erzeugen und verarbeiten. > > Und ja: das ganze ist komplex. > > fchk also wenn ich das jetzt richtig verstanden habe heißt das, dass man bei "einfachen" BT-Modulen Die Funktionen bei der Host Seite und auf der Device Seite selber schreiben muss? Da muss man dann wahrscheinlich mit der API des jeweiligen OSs rum kämpfen... oder? Jay schrieb: > Hallo, > > es gibt z.B. von Bluegiga einige Module, welche einen Bluetoothstack > enthalten. Damit ist es relativ einfach möglich ein HID Device zu > erzeugen. > > CU, > Jay Okay das heißt dir müssten die nötigen Register oder Befehle kennen? werde mit dann mal die Doku von Bluegiga rein ziehen müssen...
Ich werfe mal das RN-42 HID in den Raum. Kann zwischen SPP und HID wechseln. Sowohl custom Reports als auch die üblichen Profile (Keyboard, Mouse) werden unterstützt.
Okay, noch zum Überprüfen ob ich das vestanden habe,... Beide, der RN-42 und die von Bluegiga verfügen über die Bluetoothstacks. Befehle senden tue ich vom µC über UART auf das Bluetooth Modul... Kann man den vom PC aus auf ein als HID erkanntes Device Daten senden? Oder kann ein HID keine Daten empfangen? Ich meine z.B. kann ich den RN-42 durch einen Befehl vom PC von HID in den SPP Mode bringen?
A. F. schrieb: > Wie sieht's hier mit aus? > http://www.adafruit.com/products/1535 Sieht sehr interessant aus, allerdings steht da nur was von Seriell input! Kann der dann kein SPP? Habe nichts dazu gefunden!
DerPaul schrieb: > Ich meine z.B. kann ich den > RN-42 durch einen Befehl vom PC von HID in den SPP Mode bringen? Das funktioniert auf der UART Seite. D.h. wenn du auf dem uC ein eigenen Report auswertest und das Modul danach umstellst (\0 + "S~,1\r") sollte das durchaus gehen, sobald du den Report vom PC aus an das HID Device sendest.
Maxx schrieb: > DerPaul schrieb: >> Ich meine z.B. kann ich den >> RN-42 durch einen Befehl vom PC von HID in den SPP Mode bringen? > > Das funktioniert auf der UART Seite. D.h. wenn du auf dem uC ein eigenen > Report auswertest und das Modul danach umstellst (\0 + "S~,1\r") sollte > das durchaus gehen, sobald du den Report vom PC aus an das HID Device > sendest. Das heißt also, dass ich diese Stringfolge nicht per Bluetooth vom PC senden kann um auf SPP umzuschalten? Kann also ein als HID konfiguriertes BT-Modul keine Befehle empfangen?
DerPaul schrieb: > Das heißt also, dass ich diese Stringfolge nicht per Bluetooth vom PC > senden kann um auf SPP umzuschalten? Wenn es sich schon im HID Modus befindet, kann er ja kein Text-Kommando zum HID Device senden. Allerdings gibts da eine Ausnahme: Beim Startup ist das Modul immer erst für einen Konfigurierten Zeitraum (änderbar!) als SPP zu sehen und nimmt in der Zeit Befehle an. > Kann also ein als HID konfiguriertes BT-Modul keine Befehle empfangen? Doch klar. Nur nicht die, die du hier bräuchtest. Du kannst jedes HID Kommando (sprich Report) senden, was du möchtest. Oder du schaltest eben in den SPP Modus und dann gehts wieder.
Maxx schrieb: > DerPaul schrieb: >> Das heißt also, dass ich diese Stringfolge nicht per Bluetooth vom PC >> senden kann um auf SPP umzuschalten? > > Wenn es sich schon im HID Modus befindet, kann er ja kein Text-Kommando > zum HID Device senden. > > Allerdings gibts da eine Ausnahme: Beim Startup ist das Modul immer erst > für einen Konfigurierten Zeitraum (änderbar!) als SPP zu sehen und nimmt > in der Zeit Befehle an. > >> Kann also ein als HID konfiguriertes BT-Modul keine Befehle empfangen? > > Doch klar. Nur nicht die, die du hier bräuchtest. > Du kannst jedes HID Kommando (sprich Report) senden, was du möchtest. > > Oder du schaltest eben in den SPP Modus und dann gehts wieder. Vielen dank schon mal allen für eure Hilfe!!! Noch ein paar Sachen die ich nicht so ganz verstehe... z.B. was für Reports soll ich vom Host ans HID device senden, wenn der in eh nicht darauf reagieren kann... Wie lang ist denn der Zeitraum wo das device im SPP-Modus ist? Wenn der nur kurz ist wird das ja ganz schön schwierig mit dem PC rechtzeitig die nötigen Daten zu schicken... Zum umschalten von HID auf SPP müsste ich dann vom uC über UART die o.g. stringfolge schicken, damit ich vom PC aus Daten aufs Devise schicken kann...
DerPaul schrieb: > Noch ein paar Sachen die ich nicht so ganz verstehe... z.B. was für > Reports soll ich vom Host ans HID device senden, wenn der in eh nicht > darauf reagieren kann... Du hast "auf der anderen Seite" ja einen uC, den du selbst programmierst. Der wird die Reports auf dem UART Empfangen und kann dann darauf reagieren. Ausserdem reagiert der Stick je nachdem bereits auf bekannte Reports (z.B. das Status-Byte für HID Tastaturen. Beinhaltet z.B. CAPS-Lock, Num-Lock und Rollen und wird vom Host auf der Tastatur gesetzt. Teste das mal: Schliesse mal 2 USB Tastaturen an den PC und drücke NUM-Lock und du siehst die NUM-Lock LED auf allen Tastaturen aufleuchten. > Wie lang ist denn der Zeitraum wo das device im SPP-Modus ist? Wenn der > nur kurz ist wird das ja ganz schön schwierig mit dem PC rechtzeitig die > nötigen Daten zu schicken... Da musst du ins Datenblatt schauen was die Standardeinstellung dazu ist und gegebenenfalls eine andere Einstellung treffen. > Zum umschalten von HID auf SPP müsste ich dann vom uC über UART die o.g. > stringfolge schicken, damit ich vom PC aus Daten aufs Devise schicken > kann... Nein. Die ist dafür da in den SPP Modus zu wechseln. Daten kannst du immer hin und herschicken. Nur die Art und Weise ädert sich in SPP (=> serieller Port) und HID (=> Eingabegerät) Du kannst auch auf HID Basis einen Datenaustausch realisieren. Im SPP Modus ist das lediglich viel intuitiver, weil bekannt aus anderen seriellen Ports. Ich selbst nutze das z.B. (kombiniert mit USB-HID) HID-Set-Feature Report um das Format einer Tastaturausgabe zu setzen oder auszulesen.
Maxx vielen dank für deine Hilfe... nur stehe ich grad irgendwie auf dem Schlauch!!! Wenn das Modul im HID mode ist, kann ich vom Host über BT den Befehl zum Wechseln in SPP senden? Tut mir leid wenn ich immer wieder die selbe Frage stelle... wenn das Modul nach reboot 60s im SPP modus ist... kann ich es den während dieser Zeit als Maus oder Tastatur benutzen? wäre ja doof, wenn ich jedes mal 1 min warten muss... Okay vielleicht etwas genauer was ich so ähnlich vorhabe (etwas vereinfacht) Nehmen wir an BT-Modul ist als Keyboard konfiguriert... UC erzeugt strings und schickt die per UART an das Modul. Ich will dann irgendwie Vom Host dem UC andere Befehle geben, z.B. ändern des strings... dann soll er wieder die strings an den host senden!
DerPaul schrieb: > Nehmen wir an BT-Modul ist als Keyboard konfiguriert... > UC erzeugt strings und schickt die per UART an das Modul. Ich will dann > irgendwie Vom Host dem UC andere Befehle geben, z.B. ändern des > strings... dann soll er wieder die strings an den host senden! Dafür musst du nicht in den SPP Modus. Auch HID bietet Kommunikation in 2 Wegen. Du kannst also Daten vom Host zu HID Device senden. Überlegen wie du diese Daten dann formatierst und auswertest musst dann du. Schau dir einfach mal die Windows API für HID Geräte an, dann bekommst du evtl einen besseren Eindruck wie HID Geräte arbeiten und wie Daten in beide Richtungen gesendet werden können: http://msdn.microsoft.com/en-us/library/windows/hardware/ff538865%28v=vs.85%29.aspx
ich glaube so langsam verstehe ich ein bisschen... Du sagst du machst es mit Set feature, also wahrscheinlich dieses hier: HidD_SetFeature! In der Doku des BT Moduls finde ich aber nur etwas darüber, das man den Output report auf den UART ausgeben kann, wenn man möchte! Wie kann ich denn mit dem BT Modul den Feature report verarbeiten (in der Doku finde ich übrigens den feature report gar nicht, nur RAW, Output und Custom. welches startbyte hat denn das feature report?)? zum senden brauche ich ja noch das HidDeviceObject, welches ist das? Wieder fragen über fragen...
Vielleicht jemand noch eine Anmerkung zum letzten Post? Dann müsste ich eigentlich alles wissen ich brauche...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.