Sonntag, 5. September 2010

Um in diesem Forum zu schreiben, bitte registrieren oder anmelden (siehe Link oben rechts auf dieser Seite). Das Registrieren ist kostenlos und wird sofort wirksam.

Forum
 
  Forum  VersatileSerial...  Fragen, Vorschl...  Bits
vorherige vorherige
 
Nächste Nächste
neuer Beitrag 24.05.2007 10:36
  Imported
7 Beiträge
keine Bewertung


Bits 
bearbeitet durch Imported  am 24.05.2008 12:12:25)

Das Beispiel auf der Produktseite suggeriert, es sei möglich die Serialisierung auf Bit-Ebene zu steuern. In der Hilfe wird aber immer nur von Abschneiden oder Auffüllen auf Byte-Ebene gesprochen.
Wie ist es z.B. möglich einen 4-Bit-Wert auszugeben?

svepol

 
neuer Beitrag 24.05.2007 12:01
  christian
16 Beiträge
keine Bewertung


Re: Bits 
Auf Bit-Ebene läßt sich die Serialisierung am besten steuern, indem man Enumeratoren verwendet. In der Hilfe gibt es Abschnitt Samples unter "Enumerations" drei Beispiele dazu.

Letztlich ist ein enum zwar mindestens auf einem Byte basiert, aber innerhalb des Bytes (oder short, int ...) kann man die Kontanten des enums komfortabel verwenden, um die Bits und Bitkombinationen zu steuern. Kann man es damit lösen?

Gruss
--echo
 
neuer Beitrag 24.05.2007 00:21
  Imported
7 Beiträge
keine Bewertung


Re: Bits 
Nur sehr bedingt, da sich letztlich auch bei Enums die kleinste Einheit ein Byte ist. Angenommen ich habe ein Byte, wobei jeweils 2 Bits einen Wert repräsentieren. Dann würde ich in meiner Klasse eben die 4 Felder vom Typ Byte definieren und dabei über Attribute angeben wollen, welche Bits jeweils relevant sind. Noch schwieriger: Daten erstrecken sich über die 8-Bit-Grenze, z.B. Bit 0-13 für Wert 1, Bit 14-15 für Wert 2.

Gerade im Datenaustausch hat man es oft mit echter Bitfrickelei zu tun, weil die Protokolle auch noch das letzte Bit ausnutzen wollen.

Hier würde die Lösung bei mir persönlich den höchsten Produktivitätsvorteil bieten, weil das Hantieren mit Bits extrem fehleranfällig ist.
 
neuer Beitrag 24.05.2007 13:41
  christian
16 Beiträge
keine Bewertung


Re: Bits 

Jedoch kann man mit Enums in Verbindung mit dem Standard-Attribut [Flags] auch Bit-Bereiche in einem Byte (oder ein Doppelbyte oder dgl.) kombinieren. In manchen Fällen hilft auch das VSTranslationAttribute weiter.

[Flags]
public enum MyEnum : byte
{
  //four bits controlling the LEDs
    LED_Green = 1,
    LED_Red = 2,
  //upper four bits controlling the valves
    Valve_1 = 16,
    Valve_2 = 32
}

[VSSerializableContainer]
public class MySample_Class
{
    [VSSerializableBinary(100)]
    public My_Enum LEDs_And_Valves;
//... etc.
}

 
vorherige vorherige
 
Nächste Nächste
  Forum  VersatileSerial...  Fragen, Vorschl...  Bits
Datenschutzerklärung  |  Nutzungsbedingungen
Copyright 2009 by AIT Software GmbH