Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }