Pythonbefehl in laufendem Programm ohne Enter-Bestätigung

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Abend,

    ich bin dabei mir einen kleinen Miniroboter zu bauen. Hier habe ich schon angefangen im Bereich Hardware mich zu informieren. Da dies nun abgeschlossen ist widme ich mich nun dem Softwarebereich. Dafür entwickle ich gerade eine Steuerung um ihn vorwärts/rückwärts/seitwärts etc. fahren zu lassen.
    Hier einmal mein bisheriger Code:

    Ich bin in Python nicht besonders gut, und bringe Grundkenntnisse des C# mit. Bis hierhin kein Problem, der Code funktioniert. Jedoch führt er die Befehle erst nach dem Drücken auf den Enterbutton aus, was ich recht schade finde (vor allem für den dynamischen Betrieb).
    Jetzt zu meinen 2 Fragen an euch Experten:

    1. ist es möglich nur mithilfe der Tasten die Befehle ausführen zu lassen? D.h. ohne die ENTER-Funktion?.
    2. durch einen Webserver soll das ganze später per browser gesteuert werden. Ist es möglich die Befehle in das laufende Programm über den Webserver anzusteuern? So eine Funktion wäre mir für andere Projekte auch sehr wichtig bin aber beim Suchen nicht sonderlich fündig geworden.

    Schon einmal im Vorraus bedanke ich mich für die Hilfe :danke_ATDE:
    Liebe Grüße

    Neolinga

    Einmal editiert, zuletzt von RapidDawn12618 (10. Januar 2015 um 12:37)

  • Pythonbefehl in laufendem Programm ohne Enter-Bestätigung? Schau mal ob du hier fündig wirst!

  • Danke für die schnelle Antwort, jedoch kommt es auf das gleiche Ergebnis hinaus (bis auf das > am Anfang der Zeile)
    Liebe Grüße

  • Moin,

    ich kann zwar jetzt kein Python, aber in C setze ich zumindest die Grösse des Eingabepuffers auf 1, sonst klappt das auch nicht.
    Vllt. gibts da ein Equivalent ?? (oder mal suchen nach input buffer ...)

    // EDIT: Da waren die Cracks mal wieder schneller ;)

    cu,
    -ds-

  • Ich kann nur wenig python, dafuer kann ich googeln:

    Und damit es nicht blockiert, benutzt man select.

    Einmal editiert, zuletzt von Tell (8. April 2014 um 23:35)

  • Guten Morgen,

    danke für die Stichwörter wusste nicht so genau nach was ich suchen soll. Der Link von dbv hat mir dann die "schnellste" Lösung gebracht, nachdem ich bei dem Beitrag von Tell etwas verwirrt war. Es funktioniert soweit alles. Dafür erstmal vielen Dank :bravo2:

    Ist es nun eventuell möglich das der Befehl nur bei TastenDRUCK ausgeführt wird (also solange wie die Taste gedrückt wird)? Vll über eine While-Schleife?
    Hier erstmal der "fertige" Code falls jemand auch noch nach dieser Art von Lösung sucht:

    Nun zu meinem zweiten Punkt, der Browsersteuerung. Sollte ich dafür einen neuen Thread eröffnen?

    Habe vor das ganze mit exec oder ähnlichen Befehlen zu realisieren. Aber dafür muss die Seite immer wieder neu geladen werden oder? Auch weiß ich nicht wie man in ein laufendes Programm über php oder ähnliche Plattformen seine Befehle gibt. Vielleicht ist das auch ein bisschen zu viel, aber ich gebe mein Bestes :thumbs1:

    Ich hab auch schon etwas von Ajax gelesen oder Socket.io aber nicht so recht eine Ahnung davon. Ich hoffe Ihr könnt mir weiterhelfen.


    Liebe Grüße

    Neolinga

  • Ich habe jetzt schon sehr viel im Internet herumgesucht zum Thema Befehl bei Tastendruck ausführen und beim loslassen wieder den Befehl zurücknehmen.
    In meinem Fall:
    Pfeiltaste nach oben = Vorwärts
    beim entfernen der Taste Stoppen (bzw in den Stop zweig gehen)

    Hier mal der Teil des Beispielcodes (So wäre mein Ansatz gewesen). Darin wird die key Variable zurück gesetzt nachdem der if Pfad abgelaufen ist:


    Ich bräuchte dringend Hilfe :helpnew:

    Liebe Grüße

    Neolinga

    Ich hoffe ich hab alles richtig beschrieben.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!