Hallo zusammen, ich möchte Zeile 2,4,6,8 und 10 einer .txt Datei (die auf dem Desktop gespeichert ist) einlesen, die Werte dann in int umwandeln, um sie dann zur Auswahl einer Switch Funktion zu benutzen. Beispiel: .txt Zeile 2: "1" -> Umwandlung zu int -> Switch: wählt Case 2 aus Es passiert aber leider garnichts?!? Wo ist nun der Fehler? Code im Anhang: PS: Zu einem späteren Zeitpunkt könnte es sein, dass ausgewählte Case Nummern auch wieder zurück gesendet werden sollen. Beispiel: Es wurde Case 2 von der .txt zugewiesen. Im Verlauf wird Case 4 durch drücken eines Tasters ausgewählt und soll nun in der .txt ausgetaucht bzw geupdatet werden.
:
Bearbeitet durch User
D. Z. schrieb: > ReadLineFromFile("C:/Users/Zoundgalaxy/Desktop/functionList.txt" Du hast wirklich ein komplettes Windowsbetriebssystem auf einem STM32 implementiert?
D. Z. schrieb: > Nachfolgend der Code: Das ist ein längerer Sourcecode und der gehört in einen Anhang! Solltest du wissen nachdem du schon 9 Jahre hier angemeldet bist. Ist immer nachzulesen, bei jedem Post den man tun möchte:
1 | Wichtige Regeln - erst lesen, dann posten! |
2 | ........ |
3 | Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang |
D. Z. schrieb: > ich möchte Zeile 2,4,6,8 und 10 einer .txt Datei (die auf dem Desktop > gespeichert ist) einlesen, die Werte dann in int umwandeln, um sie dann > zur Auswahl einer Switch Funktion zu benutzen. Ähm. Wie genau denkst du, stellt sich der STM32 über USB am PC vor? Und wie genau denkst du, kann ein USB-Gerät auf andere Speichermedien am PC zugreifen? Ich denke, da bräuchtest du noch einmal die ein oder andere Grundlage zu USB Devices.
:
Bearbeitet durch User
Zweidimensionale Arrays, Pointer, das ließe sich drastisch reduzieren und variabler machen. Also wenn das Lesen einer Desktopdatei gelöst ist… Und den Codeanhang .c benennen.
:
Bearbeitet durch User
Der uC wird als HID am Rechner erkannt. Auch macht er alles andere, wie zum Beispiel: Wenn ich dem uC sage: functionNumber1 = 1 (Button welcher "a" am PC ausgeben soll) functionNumber2 = 3 (Rotary Encoder welcher Vol up/down ausgeben soll) functionNumber3 = 2 (Button wechselt direkt auf das erste geöffneten Programmen in der Taskleiste und zeigt es auf dem Display an) functionNumber4 = 3 (Button wechselt direkt auf das zweite geöffneten Programmen in der Taskleiste und zeigt es auf dem Display an) functionNumber5 = 3 (Button wechselt direkt auf das dritte geöffneten Programmen in der Taskleiste und zeigt es auf dem Display an) Nun möchte ich, wie zuvor gesagt, über eine .txt, welche sich auf dem Desktop des PC´s befindet, die Werte der functionNumber1 -5 einlesen und später verändern können.
D. Z. schrieb: > Nun möchte ich, wie zuvor gesagt, über eine .txt, welche sich auf dem > Desktop des PC´s befindet Wie viele kommerzielle Geräte kennst du, die in der Lage sind, per USB auf das Dateisystem eines Computers zuzugreifen? Und denkst du nicht, es wäre ziemlich dumm vom Betriebssystem, einem USB-Gerät Zugriff auf das Dateisystem zu geben?
Grundlagenkenntnisse? Ach, wozu. Wie wäre es, die Aufgabenstellung einer KI vorzutragen, vielleicht kann die ja was erhellendes beitragen. - Wo bleibt eigentlich der Hinz mit dem Popcorn?
Harald K. schrieb: > Grundlagenkenntnisse? Ach, wozu. Wie wäre es, die Aufgabenstellung einer > KI vorzutragen, vielleicht kann die ja was erhellendes beitragen. Harald, Harald <kopfschüttelnd> ;-) Das ist ein neuer Trend, nennt sich wunsch- oder auch traumbasierte Software-Entwickung. Der Knüller des 21. Jahrhunderts.
Harald K. schrieb: > Wie wäre es, die Aufgabenstellung einer KI vorzutragen Da bin ich gespannt, was dabei heraus kommt. Meine Versuche dieser Art ergaben: Shit in -> gequirlter Bullshit out Aber: Die KI sagt im Gegensatz zu diesem Forum nie "geht nicht" oder "ja aber". Stattdessen erzählt sie mit überzeugenden Worten, dass der Bullshit funktioniert. Sie erfindet sogar detaillierte Geschichten, wie und warum es angeblich funktioniert. Je mehr man nach fragt, umso tiefer gerät man in den Kaninchenbau.
Steve van de Grens schrieb: > Die KI sagt im Gegensatz zu diesem Forum nie "geht nicht" oder "ja > aber". Stattdessen erzählt sie mit überzeugenden Worten, dass der > Bullshit funktioniert. Sie erfindet sogar detaillierte Geschichten, wie > und warum es angeblich funktioniert. Weil KI nichts mit Intelligenz oder Verständnis oder Logik zu tun hat. Es ist im Prinzip nur "Welches Wort ist nach dem vorherigen am wahrscheinlichsten".
D. Z. schrieb: > Ich möchte Zeile 2,4,6,8 und 10 einer .txt Datei (die auf dem Desktop > gespeichert ist) einlesen ... > PS: Zu einem späteren Zeitpunkt könnte es sein, dass ausgewählte Case > Nummern auch wieder zurück gesendet werden sollen. Das unpraktische an Dateien und Arrays ist, dass man nicht einfach so in der Mitte Einträge entfernen / einfügen, kann. Dann muss man nämlich den ganzen Rest danach auch noch verschieben. Ist aber kein Problem, wenn man sowieso die ganze Datei einliest, und die ganze Datei am Ende wieder schreibt, wobei dann braucht es mehr Speicher. Oder man könnte ein Format wählen, wo die Grösse der Einträge fix ist.
So wie ich das vor hatte scheint es ja anscheinend nicht bzw. nur bedingt in Verbindung mit einem SD Slot zu gehen. Was wäre denn eurer Meinung nach sinnvoller: HID und CDC und somit über Virtuel Com, oder habt ihr noch ne bessere Lösung? Daten vom PC sind: Zahlen von 0 bis 50 für die Switch Cases, false/true für die Indicator Lights, 0 bis 255 für die RGB Indicator Lights, Daten vom uC sind: HID Usage Table 0x07, 0x08, 0x09, Und hier und da Werte 0 bis 255
D. Z. schrieb: > oder habt ihr noch ne bessere Lösung? Du hast ja bislang noch nicht einmal beschrieben, welches Problem du damit lösen möchtest. Wenn du Daten zwischen Controller und PC austauschen möchtest und auf dem PC auch eine entsprechende "Client Software" läuft, wäre ein Virtual COM Port tatsächlich eine Möglichkeit. Wenn du den PC nur zur Konfiguration verwenden möchtest, kannst du mit dem Controller einen USB-Stick emulieren, auf dem dein Textfile mit den Konfigurationseinstellungen liegt. Theoretisch könnte man so auch Daten "live" austauschen ohne spezielle USB-Treiber.
Sebastian R. schrieb: > Du hast ja bislang noch nicht einmal beschrieben, welches Problem du > damit lösen möchtest. wie im Beitrag direkt darüber zu sehen ist: Daten vom PC sind: Zahlen von 0 bis 50 für die Switch Cases, false/true für die Indicator Lights, 0 bis 255 für die RGB Indicator Lights, Daten vom uC sind: HID Usage Table 0x07, 0x08, 0x09, Und hier und da Werte 0 bis 255 Der uC dient zur Steuerung diverser Software, deswegen auch HID. Und um die "Client Software" werde ich mit großer Wahrscheinlichkeit sowieso nicht rumkommen. Mal abgesehen davon, dass ein kleinen GIF das Ganze auch Nutzerfreundlicher macht.
D. Z. schrieb: > Der uC dient zur Steuerung diverser Software, deswegen auch HID. Wir sind einen winzigen Schritt weiter. Wenn sich das alles übner Hotkeys/Shortcuts machen lässt, emulier eine Tastatur/Maus. Braucht keine Treiber und keine PC-Software.
Angeblich können Web browser neuerdings nicht nur auf Netzwerk sondern auch auf COM Ports zugreifen. Wenn das zutrifft, könnte der Mikrocontroller einen USB Speicherstik emulieren, auf dem eine statische HTML Seite mit Javascript liegt. Die Webseite könnte ein Formular zur Konfiguration deines Gerätes anzeigen und ein Werte mittels COM Port (USB CDC) an den Mikrocontroller senden. Auch deine Client-Software zur Anzeige der Daten könnte in HTML/Javascript implementiert werden. Dadurch würde die Notwendigkeit entfallen, etwas installieren zu müssen. Und es wäre unabhängig von Gerät und Betriebssystem. Ich habe das Verfahren noch nicht ausprobiert, steht noch auf meiner Wunschliste wenn sich dazu eine gute Gelegenheit ergibt.
Sebastian R. schrieb: > Wenn sich das alles übner Hotkeys/Shortcuts machen lässt, emulier eine > Tastatur/Maus. Braucht keine Treiber und keine PC-Software. Und wie sende ich dann Infos vom PC über HID an den uC? sie weiter oben: Daten vom PC sind: Zahlen von 0 bis 50 für die Switch Cases, false/true für die Indicator Lights, 0 bis 255 für die RGB Indicator Lights
Frueher™ haette man sich ein winziges TSR (terminate and stay resident) geschrieben, dass die Datei auf dem Filesystem geoeffnet, und deren Inhalt per RS-232/IPX/IP extern zugreifbar gemacht haette. Fertig waere gewesen. :) Das geht heute natuerlich auch noch. Nur eben halt viiiiiiiel komplizierter. Allein die Vorstellung, Kerberos auf einem so "winzigen" STM32 laufen zu lassen. Und der Zugriff per CIFS, wird auch nicht gerade einfach werden... Netzwerk braucht halt keine (zusaetzlichen) Treiber. Mit USB-HID ginge das Ganze wohl auch. Aber nicht so schoen. :) Die Speicherung der Daten in einer verzeigerten Liste auf dem Controller ist da ja fast Pille-Palle. P.S. Wo liegt jetzt der "Gewinn" durch "zeitgemaesse" und "moderne" Betriebssysteme?
:
Bearbeitet durch User
Motopick schrieb: > Frueher™ haette man sich ein winziges TSR (terminate and stay > resident) geschrieben, dass die Datei auf dem Filesystem geoeffnet, > und deren Inhalt per RS-232/IPX/IP extern zugreifbar gemacht haette. > Fertig waere gewesen. :) Das kann man heute genauso handhaben, dazu braucht man kein grindiges DOS.
Könnten wir bitte das früher vs heute und alles andere was hier nicht zielführend ist in anderen Threads klären und uns hier nur auf das Problem und dessen Lösung kümmern? Kurz zusammengefasst: Ich habe einen STM32, welcher von einem PC gesagt bekommt, welche Funktion jeder der 5 Switch Funktionen (mit je bis zu 50 Cases) ausgeführt werden soll. Zudem gibt es diverse Indicator LEDs, als auch RGB LEDs, welche sich bei verschiedensten Momenten mit dem „IST ZUSTAND“ des PCs abgleichen sollen. Beispiel PC sagt: LED1 ist true -> uC ist noch auf falls überprüft dies und ändert es auf true. Gleiches gilt für die RGB LEDs. Ein GIF könnte die Daten für die LEDs und andere Funktionen bereitstellen. Über HID sende ich aktuell alle Ergebnisse der Cases (wenn ausgewählt) an den PC. Frage: Was wäre die Sinnvollste Lösung und wenn vorhanden habt ihr einen Code, oder der gleichen der eure Lösung anschaulich zeigt/erklärt? Sollten noch weitere Infos fehlen bitte freundlich darauf hinweisen und ich ergänze sie (sofern vorhanden) umgehend. Danke für eure Hilfe.
D. Z. schrieb: > Ich habe einen STM32, welcher von einem PC gesagt bekommt, welche > Funktion ... ausgeführt werden soll. OK, aber was hat das mit der Textdatei auf dem Dateisystem zu tun? Befehle von einen (virtuellen) Seriellen Port annehmen und ausführen ist doch trivial. Was willst du denn dazu wissen? > Was wäre die Sinnvollste Lösung Wie gesagt: Einen (virtuellen) Seriellen Port zu nutzen
Hallo, Steve van de Grens schrieb: > D. Z. schrieb: >> Ich habe einen STM32, welcher von einem PC gesagt bekommt, welche >> Funktion ... ausgeführt werden soll. > > OK, aber was hat das mit der Textdatei auf dem Dateisystem zu tun? > > Befehle von einen (virtuellen) Seriellen Port annehmen und ausführen ist > doch trivial. Was willst du denn dazu wissen? Sein Problem ist Daten aus der Textdatei zu extrahieren und zu senden. Idee, vielleicht mit Python. https://www.python-lernen.de/dateien-auslesen.htm https://www.python-lernen.de/csv-datei-einlesen.htm Statt Ausgabe dann über Serial senden. Mit dafür angepassten Protokoll sollte das funktionieren.
:
Bearbeitet durch User
Harald K. schrieb: > Das kann man heute genauso handhaben, dazu braucht man kein grindiges > DOS. Ich wette mal, dass du wie die ganzen "Anderen" auch, so ein grindiges DOS auf deinem Rechner hattest, und immer verzweifelt nach dem Backslash auf deiner deutschen Hausfrauentastatur gesucht hast. Ich konnte da wenigsten zwischen einem SCO Unix®, einem QNX und einem DOS auswaehlen!
Motopick schrieb: > Ich wette mal Und hast verloren. Aber sowas von gründlich. > deutschen Hausfrauentastatur Mein Gott, Du schaffst es, die eigene Peinlichkeit noch zu steigern. Hast Du auch was zum Thema beizutragen oder musst Du Dich noch 'ne Weile darin suhlen, wie unendlich überlegen Du Dich Dir selbst fühlst?
D. Z. schrieb: > Ein GIF könnte die Daten für die LEDs und andere Funktionen > bereitstellen. Was meinst Du mit "GIF" in diesem Kontext? Das pixelbasierte Grafikformat meinst Du vermutlich nicht, aber auch keine andere gängige Bedeutung scheint zu passen. https://de.wikipedia.org/wiki/GIF_(Begriffskl%C3%A4rung) > Über HID sende ich aktuell alle Ergebnisse der Cases (wenn ausgewählt) > an den PC. > Frage: Was wäre die Sinnvollste Lösung Sinnvoll ist immer das, was Du dann auch umsetzen kannst. Bidirektionale Kommunikation über den seriellen Port (das wäre dann die USB CDC-DeviceClass) wurde ja schon mehrfach genannt. Was hältst Du davon? Bist Du in der Lage, ein dafür nötiges Programm auf der PC-Seite zu schreiben? Und passt das zu Deinen Anforderungen? Da Du auf Seite des Controllers ja die HID-DeviceClass schon hinbekommen hast: damit kann man auch (in begrenzten Rahmen) Informationen vom PC zum Device senden, siehe z.B. hier: https://usb.org/sites/default/files/hut1_5.pdf#chapter.26 https://usb.org/sites/default/files/hut1_5.pdf#chapter.22 Für ein paar LEDs als Statusanzeigen könnte das reichen. Dafür müsstest Du aber auch auf dem PC ein Programm schreiben, was diese Status-Informationen sendet. Das ist nicht unmöglich, aber vermutlich musst Du dafür mehr anschauen/recherchieren/dazulernen als bei der Variante mit der seriellen Schnittstelle. Einfach nur ein Beispiel von irgendwo kopieren und ohne allzuviel davon zu verstehen nur leicht abwandeln wird für Deine Anwendung vermutlich so nicht funktionieren.
Chris V. schrieb: > Einfach nur ein Beispiel von irgendwo kopieren und ohne allzuviel davon > zu verstehen nur leicht abwandeln wird für Deine Anwendung vermutlich so > nicht funktionieren. Dochdoch, so funktioniert das heute. Da fragt man die KI, die schlägt einem was vor, und dann legt man los. So einfach ist das. https://learn.microsoft.com/de-de/visualstudio/ide/ai-assisted-development-visual-studio?view=vs-2022 https://code.visualstudio.com/docs/copilot/overview https://www.heise.de/news/Microsoft-veroeffentlicht-KI-Erweiterung-AI-Toolkit-fuer-Visual-Studio-Code-9726476.html Wozu da noch mit völlig überflüssigen Grundlagen beschäftigen? Warum überhaupt noch was lernen, es gibt doch "Information at your fingertips™" ...
Harald K. schrieb: > Chris V. schrieb: >> Einfach nur ein Beispiel von irgendwo kopieren und ohne allzuviel davon >> zu verstehen nur leicht abwandeln wird für Deine Anwendung vermutlich so >> nicht funktionieren. > > Dochdoch, so funktioniert das heute. Da fragt man die KI, die schlägt > einem was vor, und dann legt man los. So einfach ist das. Das ist mir nicht unbekannt, und oft genug kommt man damit auch erstaunlich weit (sowohl mit als auch ohne KI und nur mit copy/paste oder (slightly) educated-guessing). Ich will das auch gar nicht schlecht machen. Die Welt wird komplexer und schnellebiger, und manchmal kann es wichtiger sein, schnell was halbwegs funktionierendes hinzubekommen als alles komplett verstanden zu haben. Wenn die Anforderungen komplexer werden, kommt aber irgendwann der Moment, wo man das nicht mehr einfach von jemanden kopieren kann, der fast genau das gewünschte schon mal gemacht und mit der Allgemeinheit geteilt hat. Und da ist der TO meiner Meinung nach jetzt angekommen. OnTopic: Manche benutzen für Bedien-Controller mit (etwas aufwändigerer) optischer Rückmeldung auch die Midi-DeviceClass.
Chris V. schrieb: > Die Welt wird komplexer und > schnellebiger, und manchmal kann es wichtiger sein, schnell was halbwegs > funktionierendes hinzubekommen als alles komplett verstanden zu haben. s/alles komplett/überhaupt irgend etwas/ Darauf läufts immer häufiger hinaus.
Harald K. schrieb: > Dochdoch, so funktioniert das heute. Da fragt man die KI, die schlägt > einem was vor, und dann legt man los. So einfach ist das. KI kann nur nachahmen, wie Affen. Neue Entwicklungen (wie das was hier gewünscht ist) kommen dabei nicht heraus.
Steve van de Grens schrieb: > Neue Entwicklungen (wie das was hier > gewünscht ist) kommen dabei nicht heraus. Die KI-Fanbois sehen das ganz anders. (Ist Dein Sarkasmusdetektor im Urlaub?)
Chris V. schrieb: > Was meinst Du mit "GIF" in diesem Kontext? GIF sollte eigentlich GUI heissen = Grafische Benutzeroberfläche.... Chris V. schrieb: > Einfach nur ein Beispiel Es wa auch eher auf jemanden gemünzt, der etwas ähnliches schon gemacht hat und eventuell ein TUT oder so hat/empfehlen kann, oder direkt helfen will/kann mit einem anschaulichen Beispiel. Also, da es wenige alternativen gibt und hier leider immer wieder Ego´s aufeinander treffen, deren Beiträge leider nicht viel mit dem Thema zu tun haben, wird es auf die CDC Lösung hinaus laufen. Wie oben schon einmal geschrieben: Könnten wir bitte das früher vs heute und alles andere was hier nicht zielführend ist in anderen Threads klären und uns hier nur auf das Problem und dessen Lösung kümmern? Und um es mal etwas deutlicher zu machen: Harald K, wenn du etwas zielführendes zu diesem Thema beitragen möchtest, würde ich mich sehr darüber freuen. Falls nicht, dann bitte meide diesen Thread und verschone mich/uns mit unnötigen ""sarkastischen"" Beiträgen. Und dies gilt auch für alle anderen. Ich freue mich über jede Hilfe und nützliche Beiträge und danke euch auch dafür. Auch kann man mal vom Thema etwas abweichen, wenn dies dann aber auch wieder zur Lösungsfindung führt. Nur diese Sandkasten Parolen usw. nerven echt so langsam. Und nein ich will nicht zum Programmierer werden, 1000 Kurse besuchen oder oder oder...... Ich möchte einfach dieses Projekt umsetzen und mehr nicht. Ihr geht ja auch nicht in CAD-Foren und wir erwarten, dass ihr alles könnt. Im Gegenteil, wir setzen uns mit euch hin und über Discord oder der gleichen erarbeiten wir gemeinsam eine Lösung. Und ja... ich zeichne dir was, du programmierst mir das... Funktioniert genauso wie, ich brauch hilfe bei eine Zeichnung.... dann und dann hab ich zeit, Gut?.... gut!.... und fertig. Aber diese unbegründete Arroganz mancher hier ist echt nicht normal. Entschuldigt diese klaren Worte, aber das musste jetzt mal raus! Sollte sich jemand auf die Füße getreten fühlen entschuldige ich mich, rege aber auch gleichzeitig mal zum nachdenken an. So lange rede kurzer Sinn................. Also HID und CDC ist jetzt der Weg. Hat jemand Erfahrungen zu genau diesem Bereich und möchte mich unterstützen, denn ich komme, wie gesagt, aus dem CAD Bereich und habe mit programmieren an sich nicht viel am Hut. Das was ich bis jetzt habe wurde über TUTs aufgebaut.
D. Z. schrieb: > Könnten wir bitte das früher vs heute und alles andere was hier nicht > zielführend ist in anderen Threads klären und uns hier nur auf das > Problem und dessen Lösung kümmern? Dann fang Du mal an. Ich verstehe nämlich noch nicht einmal die Problembeschreibung. Du bist nämlich mit deinen Switch/Cases schon mitten im Lösungsraum, und vermutlich da schon komplett falsch abgebogen. Berschreib' doch einfach mal, was deine uC-Hardware schalten und auswerten kann, und was davon Du auf dem PC steuern und anzeigen lassen willst.
:
Bearbeitet durch User
Ich habe eine Reihe von Tastern, (Aus)-( Wechsel)- und sagen wir mal (Jalousie)-Schaltern, Joysticks und diverse andere Funktionen. Fasst alle haben mindestens 1 WS2812 RGB, welche per Farbcode (zb. Rot = AUS, Grün = AN, Blau = Funktionsfarbe 1, Gelb = Funktionsfarbe 2) ein optisches Feedback geben sollen. Andere Funktionen haben bis zu 20 dieser LEDs. Jede dieser Funktionen ist in einem Case, welches je nach Funktionsnummer das gewünschte Case auswählt. Somit können an 5 Positionen Steckmodule mit den jeweiligen Funktionen aufgesockelt werden und in einer GUI per Eingabe aktualisiert werden. Beispielsweise habe ich auf dem ersten Steckplatz das Taster Modul, welches zb den Buchstaben „a“ wie eine Tastatur ausgeben soll. Nun muss es aber auf den Buchstaben „B“ geändert werden. Also tippe ich in der GUI, in das dafür vorgesehene Feld, den Buchstaben “B“ ein und dies soll dann in aktualisiert werden. Oder Beispielsweise habe ich einen Jalousie-Schalter. Er kann nur Kontakt „a“ oder „b“ schließen, aber niemals beide gleichzeitig. Diese Funktion muss nun aber zu einem Joystick umgebaut werden. Also entferne ich die Jalousie Funktion vom Sockel und ersetze sie durch das Joystick-Modul. Durch Eingabe der Modul Nummer in das passende Feld, ändere ich das Case von dem Jalousie- zum Joystick Case. Auch hier ist wieder das anpassen der Ausgabe und der LED erforderlich. Kurz um: GUI Feld für Case Nummer (1-50) Feld für Farbe (Farbcode für An, Aus, Funktion1, Funktion 2,…..) Feld für Ausgabe (a,b, c … Mute, Vol up/down, Taböffner………) Feld für…… uC: nimmt Wert von Feld für Case Nummer und wählt Case Funktion aus nimmt Wert von Feld für Farben und aktualisiert diese in der Funktion nimmt Wert von Feld für Ausgabe und aktualisiert diese in der Funktion ….. Sprich ich möchte es so universal und erweiterbar wie möglich halten. Problem ist: ich brauche den Code der HID und CDC vereint und mir die Daten vom PC einliest und gleichzeitig die Daten von Controller ausgibt. Zudem den Code für usbd_hid.c, die korrekten Werte für die usbd_hid.h, sowie alle anderen Files. Außerdem muss der Stm32f103 nun als HID oder CDC beim Erstellen des Projektes ausgewählt werden? Ich hoffe das meintest du mit Beschreib doch mal…… Zumindest habe ich das jetzt so verstanden?!?
Bis daraus etwas mit nachvollziehbarer Struktur wird, dauert es wohl noch einige Wochen. Vorher würde ich weder programmieren noch löten.
D. Z. schrieb: > Problem ist: ich brauche den Code der HID und CDC vereint und mir die > Daten vom PC einliest und gleichzeitig die Daten von Controller ausgibt. Vermutlich habe ich es immer noch nicht verstanden, aber ich würde da ein stinknormales Serielles Protokoll fahren (Der uC meldet sich als serielle Schnitttstelle und der PC sieht diese als COM-Port). Das kann man von beiden Seiten aus problemlos senden und empfangen. Dann überlegt man sich eine Codierung (Hin- und Rückrihtung getrennt), also sowas wie Byte1 Case Nummer Byte2-3 Farbcode Byte4-5 Ausgabe usw. und ist eigentlich fast schon fertig.
So stelle ich mir die GUI vor ( ist jetzt nur mal schnell dahin gezeichnet). Jedes der großen "+" Zeichen ist quassi ein Sockel, worauf ein Modul gesteckt werden kann (Taster-Modul, Schalter-Modul, Joystick-Modul......). Klickt man nun auf das "+", öffnet sich ein Fenster, oder Dropdown Menü, welches alle Module aufliestet. Das ausgewählte Modul, oder die Eingabe der Case Nummer senden nun die Casenummer zum uC, der wiederum das passende Case der Switchfunktionm zuortnet. Weiterhin können die Farben und Ausgabe in den Feldern darunter angegeben werden.
Klaus schrieb: > Vermutlich habe ich es immer noch nicht verstanden Du bist meiner Meinung nach genau auf dem richtigen Weg und hast es verstanden.
Steve van de Grens schrieb: > Bis daraus etwas Die PCB´s sind alle schon in KICAD fertig gezeichnet und sollten auch funktionieren. Im grunde genommen ein Bluepill mit ESD Protektion usw. sowie die Module. Lasse ich aber produzieren/löten. Aber auch erst dann, wenn ich einen funktionierenden Code auf meinem Breadboard Aufbau habe.
D. Z. schrieb: > Ich habe eine Reihe von Tastern, (Aus)-( Wechsel)- und sagen wir mal > (Jalousie)-Schaltern, Joysticks und diverse andere Funktionen. Fasst > alle haben mindestens 1 WS2812 RGB, > (...) > Somit können an 5 Positionen Steckmodule mit den jeweiligen Funktionen > aufgesockelt werden und in einer GUI per Eingabe aktualisiert werden. D.h. Du willst sowas wie dieses Zeug hier selber bauen: https://macprovideo.com/article/review-2/review-palette-a-modular-midi-controller/de https://www.bonedo.de/artikel/special-waves-stellt-modularen-usb-midi-controller-mine-vor/ https://www.gearnews.de/superbooth-midi-controller-selbst-zusammenstellen-mit-intech-grid/ > Problem ist: ich brauche den Code der HID und CDC vereint und mir die > Daten vom PC einliest und gleichzeitig die Daten von Controller ausgibt. Das ist Möglichkeit 1). Man nennt sowas dann "Composit-Device" (siehe ggf. "What is difference between a composite USB device and a compound USB device?" in diesem FAQ: https://www.microchip.com/en-us/products/interface-and-connectivity/usb/basic-usb-concepts-and-faqs Dafür müsstest Du vorrangig lernen, wie man sowas auf dem Controller implementiert. > Außerdem muss der Stm32f103 nun als HID oder > CDC beim Erstellen des Projektes ausgewählt werden? Das klingt danach, als hätte dort noch niemand vorgearbeitet. Du müsstest es also selber herausbekommen. Immerhin scheint der BluePill das grundsätzlich zu können, denn hier hat schon mal jemand MassStorage und CDC miteinander verheiratet: https://github.com/viteo/STM32-BluePill-MSD-VCP Andere Möglichkeiten wären noch: 2.) Nur HID Dafür müsstest Du vorrangig lernen, wie die noch zu entwickelnde PC-Applikation Statusdaten an ein HID-Device sendet. 3.) Nur CDC Dafür müsstest Du vorrangig lernen, wie die noch zu entwickelnde PC-Applikation Tastendrücke simuliert (um Deine anscheinend schon funktionierende Fernsteuerung der PC-Applikationen durch Tastendrücke umzusetzen, obwohl die Daten nun über die serielle Schnittstelle kommen) 4.) Nur MIDI Dafür müsstest Du vorrangig lernen, wie die noch zu entwickelnde PC-Applikation MIDI-Devices ansprechen kann. Alle diese Möglichkeiten haben ihre Vor- und Nachteile (an Nr. 4 ist z.B. ziemlich cool, dass sie nicht nur mit deinem Selbstbau-Board, sondern mit allen Midi-Controllern zusammen funktionieren kann - also super-universell!) Normalerweise sucht man sich als Hobby-Entwickler nun das raus, bei dem man etwas lernen muss, dass einen am meisten interessiert, und man meint, dass man es auch hinbekommt. Ich persönlich fände (1) doof, halte (3) für am einfachsten, (2) hätte für mich eher einen unterhaltsamen Wert (eine Tastatur mit Lichtorgel ;), und umsetzen würde ich wohl (4).
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.