- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 33

Thema: C/C++ lib für Sonderzeichenkombinationen (F1-12, +shift, alt, ctrl) als Scancode

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    HaWe
    Gast
    ncurses nutzt eine eigenes Terminal-Window mit eigener print-Funktion
    mvaddstr
    und mit einem ziemlichen Initialisierungs-Overhead

    initscr();
    raw();
    noecho();
    keypad(stdscr, TRUE);

    und mit Eigenschaften, die std-printf()-Ausgaben "verzerren", so wird z.B. nach \n kein carriage return ausgeführt. Mehrmals einen string mit \n ausgeben lässt ihn daher mit Treppenstufen-Versatz in die nächste Zeile nach rechts rutschen, nicht untereinander ab Anfang jeder Zeile.
    Außerdem kann ncurses - zumindest per Testcode - z.B. kein shift+F1 anzeigen. Von daher ist also einerseits nicht mehr standardconform, und zum anderen auch noch von sehr eingeschränktem Nutzungsumfang.

    für ncurses hatte ich mal diesen testcode ausprobiert:

    Code:
    #include <ncurses.h>
    
    int
    main( void )
    {
         /*  Initialize ncurses  */
       initscr();
       const char *str;
       int ch;
    
         /*  Switch of echoing and enable keypad */
       raw();
       noecho();
       keypad(stdscr, TRUE);
       mvaddstr( LINES-1, 0, "Press keys, 'q' to quit" );
    
        /*  Loop until user hits 'q' to quit  */
       while( (ch = getch()) != 'q' )
       {
         switch( ch )
         {
          case KEY_F(1):
             str = "F1 key";
             break;
          case KEY_F(2):
             str = "F2 key";
             break;
          case KEY_F(3):
             str = "F3 key";
             break;
          case KEY_F(4):
             str = "F4 key";
             break;
    
          case 'a' ... 'z':
             str = "Lower case letter";
             break;
          case 'A' ... 'Z':
             str = "Upper case letter";
             break;
          case '0' ... '9':
             str = "Digit";
             break;
    
          case KEY_UP:
             str = "KEY_UP";
             break;
    
          case KEY_DOWN:
             str = "KEY_DOWN";
             break;
          case KEY_LEFT:
             str = "KEY_LEFT";
             break;
          case KEY_RIGHT:
             str = "KEY_RIGHT";
             break;
          case KEY_HOME:
             str = "KEY_HOME";
             break;
          case KEY_END:
             str = "KEY_END";
          }
    
       //mvaddstr( LINES-1, 0, str );
       printf("%s\n", str);
            clrtoeol();
     }
    
       /*  Clean up after ourselves  */
    endwin();
    
     return 0;
    }



    Einen (wünschenswerten) Pseudocode hatte ich ja bereits selber skizziert, zu Erläuterungszwecken.

    Was ich aber jetzt brauche, ist kein Pseudocode, sondern echten Code, zusammen mit einer Liste aller möglichen denkbaren modifier-Kombis, damit man nicht das Rad neu erfinden muss.


    **arrrgs** und schon wieder keine Code Tags hier vorhanden...
    Code:
     key         plain   shift   ctrl   alt   shift+ctrl   ctrl+alt   shift+alt   shift+ctrl+alt
    Home   
    Insert   
    Delete 
    End     
    Pgup   
    PgDn   
     F1   
     F2     
     F3   
    ...
    cur_up
    cur_dn
    cur_left
    cur_right
    ...
    A
    B
    C
    ...

    "Das Rad nicht neu erfinden" gilt übrigens auch für meine gesuchte Funktion, ich denke, das müsste es nach 40 Jahren UNIX/Linux sicher schon längst geben.




    - - - Aktualisiert - - -

    pps,
    für BIOS/MSDOS etc gabs das ja, gelistet z.B. hier
    http://flint.cs.yale.edu/cs422/doc/a...pdf/APNDXC.PDF
    (Appendices Page 1353)

    so etwas bräuchte ich nun für Linux als Art "getscancode()" etc.
    Geändert von HaWe (05.04.2016 um 14:12 Uhr) Grund: per code tags nachformatiert

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. Neue Atmega "A" und "PA" Typen
    Von AVR168 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 07.05.2012, 16:47
  3. Antworten: 2
    Letzter Beitrag: 15.06.2011, 21:18
  4. "Lichtverfolgung" in "TV-Remote" einbaue
    Von fabqu im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 04.01.2011, 10:14
  5. "Soft-Reset?" und "Finger-Interrupt?"
    Von trapperjohn im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 10.06.2008, 23:02

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress