示例#1
0
 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;
     }
 }
示例#2
0
 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;
     }
 }
示例#3
0
 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;
     }
 }
示例#4
0
 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;
     }
 }