public static MSG_GET_ROSPECS_RESPONSE FromBitArray( ref BitArray bit_array, ref int cursor, int length) { if (cursor > length) { return((MSG_GET_ROSPECS_RESPONSE)null); } ArrayList arrayList1 = new ArrayList(); MSG_GET_ROSPECS_RESPONSE getRospecsResponse = new MSG_GET_ROSPECS_RESPONSE(); cursor += 6; if ((int)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 10) != (int)getRospecsResponse.msgType) { cursor -= 16; return((MSG_GET_ROSPECS_RESPONSE)null); } getRospecsResponse.msgLen = (uint)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 32); getRospecsResponse.msgID = (uint)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 32); getRospecsResponse.LLRPStatus = PARAM_LLRPStatus.FromBitArray(ref bit_array, ref cursor, length); ArrayList arrayList2 = new ArrayList(); PARAM_ROSpec paramRoSpec; while ((paramRoSpec = PARAM_ROSpec.FromBitArray(ref bit_array, ref cursor, length)) != null) { arrayList2.Add((object)paramRoSpec); } if (arrayList2.Count > 0) { getRospecsResponse.ROSpec = new PARAM_ROSpec[arrayList2.Count]; for (int index = 0; index < arrayList2.Count; ++index) { getRospecsResponse.ROSpec[index] = (PARAM_ROSpec)arrayList2[index]; } } return(getRospecsResponse); }
public static MSG_ADD_ROSPEC FromBitArray( ref BitArray bit_array, ref int cursor, int length) { if (cursor > length) { return((MSG_ADD_ROSPEC)null); } ArrayList arrayList = new ArrayList(); MSG_ADD_ROSPEC msgAddRospec = new MSG_ADD_ROSPEC(); cursor += 6; if ((int)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 10) != (int)msgAddRospec.msgType) { cursor -= 16; return((MSG_ADD_ROSPEC)null); } msgAddRospec.msgLen = (uint)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 32); msgAddRospec.msgID = (uint)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 32); msgAddRospec.ROSpec = PARAM_ROSpec.FromBitArray(ref bit_array, ref cursor, length); return(msgAddRospec); }