コード例 #1
0
ファイル: LLRPParam.cs プロジェクト: ajeck/impinj-reader-app
        public static PARAM_C1G2UHFRFModeTableEntry FromXmlNode(XmlNode node)
        {
            string val;
            PARAM_C1G2UHFRFModeTableEntry param = new PARAM_C1G2UHFRFModeTableEntry();


            val = XmlUtil.GetNodeValue(node, "ModeIdentifier");

            param.ModeIdentifier = Convert.ToUInt32(val);

            val = XmlUtil.GetNodeValue(node, "DRValue");

            param.DRValue = (
      ENUM_C1G2DRValue)Enum.Parse(typeof(
      ENUM_C1G2DRValue), val);

            val = XmlUtil.GetNodeValue(node, "EPCHAGTCConformance");

            param.EPCHAGTCConformance = Convert.ToBoolean(val);

            val = XmlUtil.GetNodeValue(node, "MValue");

            param.MValue = (
      ENUM_C1G2MValue)Enum.Parse(typeof(
      ENUM_C1G2MValue), val);

            val = XmlUtil.GetNodeValue(node, "ForwardLinkModulation");

            param.ForwardLinkModulation = (
      ENUM_C1G2ForwardLinkModulation)Enum.Parse(typeof(
      ENUM_C1G2ForwardLinkModulation), val);

            val = XmlUtil.GetNodeValue(node, "SpectralMaskIndicator");

            param.SpectralMaskIndicator = (
      ENUM_C1G2SpectralMaskIndicator)Enum.Parse(typeof(
      ENUM_C1G2SpectralMaskIndicator), val);

            val = XmlUtil.GetNodeValue(node, "BDRValue");

            param.BDRValue = Convert.ToUInt32(val);

            val = XmlUtil.GetNodeValue(node, "PIEValue");

            param.PIEValue = Convert.ToUInt32(val);

            val = XmlUtil.GetNodeValue(node, "MinTariValue");

            param.MinTariValue = Convert.ToUInt32(val);

            val = XmlUtil.GetNodeValue(node, "MaxTariValue");

            param.MaxTariValue = Convert.ToUInt32(val);

            val = XmlUtil.GetNodeValue(node, "StepTariValue");

            param.StepTariValue = Convert.ToUInt32(val);

            return param;
        }
コード例 #2
0
ファイル: ReaderManager.cs プロジェクト: pengyuzhang/Blink
 public ReaderMode(PARAM_C1G2UHFRFModeTableEntry mode)
 {
     modeIndentifier = mode.ModeIdentifier;
     dr = mode.DRValue;
     m = mode.MValue;
     tagRate = mode.BDRValue;
     linkModulation = mode.ForwardLinkModulation;
     pie = mode.PIEValue;
     minTari = mode.MinTariValue;
     maxTari = mode.MaxTariValue;
 }
コード例 #3
0
ファイル: LLRPParam.cs プロジェクト: ajeck/impinj-reader-app
        public new static PARAM_C1G2UHFRFModeTableEntry FromBitArray(ref BitArray bit_array, ref int cursor, int length)
        {
            if (cursor >= length) return null;

            int field_len = 0;
            object obj_val;
            int parameter_len = 0;
            ArrayList param_list = new ArrayList();

            PARAM_C1G2UHFRFModeTableEntry param = new PARAM_C1G2UHFRFModeTableEntry();

            int param_type = 0;

            if (bit_array[cursor]) param.tvCoding = true;
            if (param.tvCoding)
            {
                cursor++;
                param_type = (int)(UInt64)Util.CalculateVal(ref bit_array, ref cursor, 7);

                if (param_type != param.TypeID)
                {
                    cursor -= 8;
                    return null;
                }
            }
            else
            {
                cursor += 6;
                param_type = (int)(UInt64)Util.CalculateVal(ref bit_array, ref cursor, 10);

                if (param_type != param.TypeID)
                {
                    cursor -= 16;
                    return null;
                }
                param.length = (UInt16)(int)Util.DetermineFieldLength(ref bit_array, ref cursor);
            }


            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.ModeIdentifier = (UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 1;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.DRValue = (
        ENUM_C1G2DRValue)(UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 1;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(bool), field_len);
            param.EPCHAGTCConformance = (bool)obj_val;

            cursor += param_reserved_len;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 8;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.MValue = (
        ENUM_C1G2MValue)(UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 8;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.ForwardLinkModulation = (
        ENUM_C1G2ForwardLinkModulation)(UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 8;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.SpectralMaskIndicator = (
        ENUM_C1G2SpectralMaskIndicator)(UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.BDRValue = (UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.PIEValue = (UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.MinTariValue = (UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.MaxTariValue = (UInt32)obj_val;

            if (cursor > length) throw new Exception("Input data is not complete message");

            field_len = 32;

            Util.ConvertBitArrayToObj(ref bit_array, ref cursor, out obj_val, typeof(UInt32), field_len);
            param.StepTariValue = (UInt32)obj_val;

            return param;
        }