public new static MSG_GET_READER_CAPABILITIES_RESPONSE FromString(string str) { string val; XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(str); XmlNode node = (XmlNode)xdoc.DocumentElement; MSG_GET_READER_CAPABILITIES_RESPONSE msg = new MSG_GET_READER_CAPABILITIES_RESPONSE(); try { msg.MSG_ID = Convert.ToUInt32(XmlUtil.GetNodeAttrValue(node, "MessageID")); } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "LLRPStatus"); if (null != xnl) { if (xnl.Count != 0) msg.LLRPStatus = PARAM_LLRPStatus.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "GeneralDeviceCapabilities"); if (null != xnl) { if (xnl.Count != 0) msg.GeneralDeviceCapabilities = PARAM_GeneralDeviceCapabilities.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "LLRPCapabilities"); if (null != xnl) { if (xnl.Count != 0) msg.LLRPCapabilities = PARAM_LLRPCapabilities.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "RegulatoryCapabilities"); if (null != xnl) { if (xnl.Count != 0) msg.RegulatoryCapabilities = PARAM_RegulatoryCapabilities.FromXmlNode(xnl[0]); } } catch { } { msg.AirProtocolLLRPCapabilities = new UNION_AirProtocolLLRPCapabilities(); XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2LLRPCapabilities"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) msg.AirProtocolLLRPCapabilities.Add(PARAM_C1G2LLRPCapabilities.FromXmlNode(xnl[i])); } } try { ArrayList xnl = XmlUtil.GetXmlNodeCustomChildren(node); if (null != xnl) { if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) { ICustom_Parameter custom = CustomParamDecodeFactory.DecodeXmlNodeToCustomParameter((XmlNode)xnl[i]); if (custom != null) msg.AddCustomParameter(custom); } } } } catch { } return msg; }
public new static MSG_GET_READER_CAPABILITIES_RESPONSE FromBitArray(ref BitArray bit_array, ref int cursor, int length) { if (cursor > length) return null; int field_len = 0; object obj_val; ArrayList param_list = new ArrayList(); MSG_GET_READER_CAPABILITIES_RESPONSE obj = new MSG_GET_READER_CAPABILITIES_RESPONSE(); int msg_type = 0; cursor += 6; msg_type = (int)(UInt64)Util.CalculateVal(ref bit_array, ref cursor, 10); if (msg_type != obj.msgType) { cursor -= 16; return null; } obj.msgLen = (UInt32)(UInt64)Util.CalculateVal(ref bit_array, ref cursor, 32); obj.msgID = (UInt32)(UInt64)Util.CalculateVal(ref bit_array, ref cursor, 32); obj.LLRPStatus = PARAM_LLRPStatus.FromBitArray(ref bit_array, ref cursor, length); obj.GeneralDeviceCapabilities = PARAM_GeneralDeviceCapabilities.FromBitArray(ref bit_array, ref cursor, length); obj.LLRPCapabilities = PARAM_LLRPCapabilities.FromBitArray(ref bit_array, ref cursor, length); obj.RegulatoryCapabilities = PARAM_RegulatoryCapabilities.FromBitArray(ref bit_array, ref cursor, length); PARAM_C1G2LLRPCapabilities _param_C1G2LLRPCapabilities = PARAM_C1G2LLRPCapabilities.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2LLRPCapabilities != null) obj.AirProtocolLLRPCapabilities.Add(_param_C1G2LLRPCapabilities); while ((_param_C1G2LLRPCapabilities = PARAM_C1G2LLRPCapabilities.FromBitArray(ref bit_array, ref cursor, length)) != null) { obj.AirProtocolLLRPCapabilities.Add(_param_C1G2LLRPCapabilities); } ICustom_Parameter custom = CustomParamDecodeFactory.DecodeCustomParameter(ref bit_array, ref cursor, length); if (custom != null) { obj.Custom.Add(custom); while ((custom = CustomParamDecodeFactory.DecodeCustomParameter(ref bit_array, ref cursor, length)) != null) obj.Custom.Add(custom); } return obj; }