public bool Decode(PduMarshaler marshaler) { try { byte t = marshaler.ReadByte(); c = (FOUR_BYTE_C_Values)(t >> 6); s = (S_Values)((t >> 5) & 0x20); val1 = (byte)(t & 0x1F); if (c >= FOUR_BYTE_C_Values.TWO_BYTE_VAL) { val2 = marshaler.ReadByte(); } if (c >= FOUR_BYTE_C_Values.THREE_BYTE_VAL) { val3 = marshaler.ReadByte(); } if (c == FOUR_BYTE_C_Values.FOUR_BYTE_VAL) { val4 = marshaler.ReadByte(); } return true; } catch { return false; } }
public bool Decode(PduMarshaler marshaler) { try { byte t = marshaler.ReadByte(); c = (TWO_BYTE_C_Values)(t >> 7); s = (S_Values)(t >> 6 & 0x40); val1 = (byte)(t & 0x3F); if (c == TWO_BYTE_C_Values.TWO_BYTE_VAL) { val2 = marshaler.ReadByte(); } return true; } catch { return false; } }
public FOUR_BYTE_SIGNED_INTEGER(int num) { if (num > 0x1FFFFFFF || num < -0x1FFFFFFF) { throw new ArgumentException("The integer is out of the valid range of FOUR_BYTE_SIGNED_INTEGER.", "num"); } uint n; if (num < 0) { s = S_Values.NEGATIVE_VAL; n = (uint)(-num); } else { s = S_Values.POSITIVE_VAL; n = (uint)num; } if (n <= 0x1F) { c = FOUR_BYTE_C_Values.ONE_BYTE_VAL; val1 = (byte)n; } else if (n <= 0x1FFF) { c = FOUR_BYTE_C_Values.TWO_BYTE_VAL; val1 = (byte)(n >> 8); val2 = (byte)n; } else if (n <= 0x1FFFFF) { c = FOUR_BYTE_C_Values.THREE_BYTE_VAL; val1 = (byte)(n >> 16); val2 = (byte)(n >> 8); val3 = (byte)n; } else { c = FOUR_BYTE_C_Values.FOUR_BYTE_VAL; val1 = (byte)(n >> 24); val2 = (byte)(n >> 16); val3 = (byte)(n >> 8); val4 = (byte)n; } }
public TWO_BYTE_SIGNED_INTEGER(short num) { if (num > 0x3FFF || num < -0x3FFF) { throw new ArgumentException("The integer is out of the valid range of TWO_BYTE_SIGNED_INTEGER.", "num"); } ushort n; if (num < 0) { n = (ushort)(-num); s = S_Values.NEGATIVE_VAL; } else { n = (ushort)num; s = S_Values.POSITIVE_VAL; } if (n > 0x3F) { c = TWO_BYTE_C_Values.TWO_BYTE_VAL; val1 = (byte)(n >> 8); val2 = (byte)n; } else { c = TWO_BYTE_C_Values.ONE_BYTE_VAL; val1 = (byte)n; } }