public static PARAM_C1G2SingulationDetails FromBitArray( ref BitArray bit_array, ref int cursor, int length) { if (cursor >= length) { return((PARAM_C1G2SingulationDetails)null); } int num1 = cursor; int num2 = length; ArrayList arrayList = new ArrayList(); PARAM_C1G2SingulationDetails singulationDetails = new PARAM_C1G2SingulationDetails(); singulationDetails.tvCoding = bit_array[cursor]; int val; if (singulationDetails.tvCoding) { ++cursor; val = (int)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 7); } else { cursor += 6; val = (int)(ulong)Util.CalculateVal(ref bit_array, ref cursor, 10); singulationDetails.length = (ushort)Util.DetermineFieldLength(ref bit_array, ref cursor); num2 = num1 + (int)singulationDetails.length * 8; } if (val != (int)singulationDetails.TypeID) { cursor = num1; return((PARAM_C1G2SingulationDetails)null); } if (cursor > length || cursor > num2) { throw new Exception("Input data is not a complete LLRP message"); } int field_len1 = 16; object obj; Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj, typeof(ushort), field_len1); singulationDetails.NumCollisionSlots = (ushort)obj; if (cursor > length || cursor > num2) { throw new Exception("Input data is not a complete LLRP message"); } int field_len2 = 16; Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj, typeof(ushort), field_len2); singulationDetails.NumEmptySlots = (ushort)obj; return(singulationDetails); }
public static PARAM_C1G2SingulationDetails FromXmlNode(XmlNode node) { ArrayList arrayList = new ArrayList(); XmlNamespaceManager namespaceManager = new XmlNamespaceManager(node.OwnerDocument.NameTable); namespaceManager.AddNamespace("", "http://www.llrp.org/ltk/schema/core/encoding/xml/1.0"); namespaceManager.AddNamespace("llrp", "http://www.llrp.org/ltk/schema/core/encoding/xml/1.0"); PARAM_C1G2SingulationDetails singulationDetails = new PARAM_C1G2SingulationDetails(); string nodeValue1 = XmlUtil.GetNodeValue(node, "NumCollisionSlots"); singulationDetails.NumCollisionSlots = (ushort)Util.ParseValueTypeFromString(nodeValue1, "u16", ""); string nodeValue2 = XmlUtil.GetNodeValue(node, "NumEmptySlots"); singulationDetails.NumEmptySlots = (ushort)Util.ParseValueTypeFromString(nodeValue2, "u16", ""); return(singulationDetails); }