USB Output Signale über Image anzeigen



  • Hallo,

    ich habe ein USB Interface, dass 5 Ausgang Ports hat. Nun möchte ich wenn die Ports angesprochen werden über 5 Images anzeigen welcher
    Port gerade aktiv ist. So setzte ich die Signale.

    SetSignal(bool Port1, bool Port2, bool Port3, bool Port4, bool Port5)
    {
      int d = 0;
    
      int sig1 = 1;
      int sig2 = 2;
      int sig3 = 4;
      int sig4 = 8;
      int sig5 = 16;
    
      if (Port1) d = d | sig1;
      if (Port2) d = d | sig2;
      if (Port3) d = d | sig3;
      if (Port4) d = d | sig4;
      if (Port5) d = d | sig5;
      return d;
    }
    

    Also wenn ich jetzt Port 1, 2 und 3 aktiviere gebt mir die Funktion 7 zurück dh. 1 + 2 + 4. Dann wird der Port 1, 2 und 3 aktiviert.
    Wie kann ich denn jetzt das über ein Image anzeigen welche Ports gerade aktiv sind? Könnt ihr mir mal einen Denkanstoss geben?



  • Hallo

    Was ist denn dein Problem? Willst du wissen wie du dein Bit-feld wieder auseinander nimmst? Dann schau dir diese Übersicht an (und ersetzt gleich dein "+" durch bitweisen ODER). Oder willst du wissen wie man mit TImage umgeht? Dann schau dir die TImage-Doku in der BCB-Hilfe an und such hier im Forum nach *TImage*.

    bis bald
    akari



  • Danke für deine Antwort, ja ich möchte Wissen wie ich den Bit wieder zerlege so dass ich weiss welche Bilder angezeigt werden müssen. Code habe ich abgeändert.



  • Ich habe es nun hinbekommen, danke akari für den Link 🙂

    void TConsole::Check(char s)
    {
      if (s & 1) ShowMessage("1");
      if (s & 2) ShowMessage("2");
      if (s & 4) ShowMessage("4");
      if (s & 8) ShowMessage("8");
      if (s & 16) ShowMessage("16");
    }
    

Anmelden zum Antworten