tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von sheel
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
376
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    Hi Leute

    ich bin am verzweifeln....

    wie kann ich ein eigenes Controllbyte erstellen, das ungefaehr so aussieht

    | Lampe/Gruppe/Raum | Dim/Ein/Aus | Status | NoError/NoLight/General |
    | | | | |
    | 2 Bit | 2 Bit | 1 Bit | 2 Bit |

    ich will dann zum Beispiel ueber TCP senden koennen

    Lampe | Ein | | | (Klartext: Schalte die Lampe ein)

    und dann wieder empfangen

    Lampe | Ein | Ein | NoError| (Klartext: Lampe wurde eingeschaltet, Status ist ein (brauch ich noch wo anders) es gab keinen fehler

    wie mach ich das****

    habs schon mit enum probiert, aber wenn ich das dann in ein Byte zum uebertragen wandle, kann ich die einzenlen controlls nicht mehr herausfiltern
    und mit einzelnen enum mekert der Kompiler

    Danke fuer eure Hilfe

    mfg
    Blue_Fox
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    Du brauchst als Variable nur byte.
    Wenn das byte b genannt wird, kannst du

    so prüfen, ob das x-te Bit 1 ist
    if(b & (1 << x))
    ...

    so das x-te Bit auf 1 setzen:
    b |= (1 << x);

    Gruß
    Blue_Fox bedankt sich. 

  3. #3
    Blue_Fox Blue_Fox ist offline Mitglied Bronze
    Registriert seit
    Aug 2011
    Beiträge
    32
    so jetzt is noch ein Problem aufgetaucht...

    wenn ich jetzt eine abfrage machen will, mekert der Compiler, dass er int nicht in bool konvertieren kann...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    public void SetControl(byte value){
                if(value &(1 << 7)){
                    this.Control |= (1 << 7);
                }
                if(value &(1 << 0)){
                    this.Control |= (1 << 0);
                }
                if(value &(1 << 1)){
                    this.Control |= (1 << 1);
                }
                if(value &(1 << 2)){
                    this.Control |= (1 << 2);
                }
            }

    wo ist da mein Fehler? und welchen Wert meint der jetzt genau?

    mfg
    Bastian
     

  4. #4
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    wenn ich jetzt eine abfrage machen will, mekert der Compiler, dass er int nicht in bool konvertieren kann...
    wo ist da mein Fehler? und welchen Wert meint der jetzt genau?
    Das solltest du eigentlich der Fehlermeldung entnehmen können.

    Alle Bedingungen der if-Abfragen sind gemeint, also z.B: value &(1 << 7).
    Das ergibt ja schließlich kein bool.

    Also entweder du konvertiest das Ergebnis in einen boolean oder du vergleichst auf > 0 o.ä.
     
    In order to understand recursion, one must first understand recursion.

Ähnliche Themen

  1. Eigenes HTML Design erstellen
    Von Alfons2 im Forum HTML & XHTML
    Antworten: 5
    Letzter Beitrag: 04.05.11, 14:56
  2. Eigenes Layout in SWT erstellen?
    Von lam_tr im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 11.03.10, 09:05
  3. eigenes Setup erstellen
    Von Erks im Forum .NET Café
    Antworten: 4
    Letzter Beitrag: 09.05.09, 01:21
  4. Eigenes Event erstellen
    Von Divi im Forum .NET Windows Forms
    Antworten: 10
    Letzter Beitrag: 27.05.06, 20:08
  5. Eigenes Server Control erstellen
    Von Nikon the Third im Forum ASP
    Antworten: 0
    Letzter Beitrag: 13.03.06, 13:08