public new static MSG_GET_READER_CONFIG_RESPONSE FromString(string str) { string val; XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(str); XmlNode node = (XmlNode)xdoc.DocumentElement; MSG_GET_READER_CONFIG_RESPONSE msg = new MSG_GET_READER_CONFIG_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, "Identification"); if (null != xnl) { if (xnl.Count != 0) msg.Identification = PARAM_Identification.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "AntennaProperties"); if (null != xnl) { if (xnl.Count != 0) { msg.AntennaProperties = new PARAM_AntennaProperties[xnl.Count]; for (int i = 0; i < xnl.Count; i++) msg.AntennaProperties[i] = PARAM_AntennaProperties.FromXmlNode(xnl[i]); } } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "AntennaConfiguration"); if (null != xnl) { if (xnl.Count != 0) { msg.AntennaConfiguration = new PARAM_AntennaConfiguration[xnl.Count]; for (int i = 0; i < xnl.Count; i++) msg.AntennaConfiguration[i] = PARAM_AntennaConfiguration.FromXmlNode(xnl[i]); } } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "ReaderEventNotificationSpec"); if (null != xnl) { if (xnl.Count != 0) msg.ReaderEventNotificationSpec = PARAM_ReaderEventNotificationSpec.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "ROReportSpec"); if (null != xnl) { if (xnl.Count != 0) msg.ROReportSpec = PARAM_ROReportSpec.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "AccessReportSpec"); if (null != xnl) { if (xnl.Count != 0) msg.AccessReportSpec = PARAM_AccessReportSpec.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "LLRPConfigurationStateValue"); if (null != xnl) { if (xnl.Count != 0) msg.LLRPConfigurationStateValue = PARAM_LLRPConfigurationStateValue.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "KeepaliveSpec"); if (null != xnl) { if (xnl.Count != 0) msg.KeepaliveSpec = PARAM_KeepaliveSpec.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "GPIPortCurrentState"); if (null != xnl) { if (xnl.Count != 0) { msg.GPIPortCurrentState = new PARAM_GPIPortCurrentState[xnl.Count]; for (int i = 0; i < xnl.Count; i++) msg.GPIPortCurrentState[i] = PARAM_GPIPortCurrentState.FromXmlNode(xnl[i]); } } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "GPOWriteData"); if (null != xnl) { if (xnl.Count != 0) { msg.GPOWriteData = new PARAM_GPOWriteData[xnl.Count]; for (int i = 0; i < xnl.Count; i++) msg.GPOWriteData[i] = PARAM_GPOWriteData.FromXmlNode(xnl[i]); } } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "EventsAndReports"); if (null != xnl) { if (xnl.Count != 0) msg.EventsAndReports = PARAM_EventsAndReports.FromXmlNode(xnl[0]); } } catch { } 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_CONFIG_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_CONFIG_RESPONSE obj = new MSG_GET_READER_CONFIG_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.Identification = PARAM_Identification.FromBitArray(ref bit_array, ref cursor, length); param_list = new ArrayList(); PARAM_AntennaProperties _param_AntennaProperties = PARAM_AntennaProperties.FromBitArray(ref bit_array, ref cursor, length); if (_param_AntennaProperties != null) { param_list.Add(_param_AntennaProperties); while ((_param_AntennaProperties = PARAM_AntennaProperties.FromBitArray(ref bit_array, ref cursor, length)) != null) param_list.Add(_param_AntennaProperties); if (param_list.Count > 0) { obj.AntennaProperties = new PARAM_AntennaProperties[param_list.Count]; for (int i = 0; i < param_list.Count; i++) obj.AntennaProperties[i] = (PARAM_AntennaProperties)param_list[i]; } } param_list = new ArrayList(); PARAM_AntennaConfiguration _param_AntennaConfiguration = PARAM_AntennaConfiguration.FromBitArray(ref bit_array, ref cursor, length); if (_param_AntennaConfiguration != null) { param_list.Add(_param_AntennaConfiguration); while ((_param_AntennaConfiguration = PARAM_AntennaConfiguration.FromBitArray(ref bit_array, ref cursor, length)) != null) param_list.Add(_param_AntennaConfiguration); if (param_list.Count > 0) { obj.AntennaConfiguration = new PARAM_AntennaConfiguration[param_list.Count]; for (int i = 0; i < param_list.Count; i++) obj.AntennaConfiguration[i] = (PARAM_AntennaConfiguration)param_list[i]; } } obj.ReaderEventNotificationSpec = PARAM_ReaderEventNotificationSpec.FromBitArray(ref bit_array, ref cursor, length); obj.ROReportSpec = PARAM_ROReportSpec.FromBitArray(ref bit_array, ref cursor, length); obj.AccessReportSpec = PARAM_AccessReportSpec.FromBitArray(ref bit_array, ref cursor, length); obj.LLRPConfigurationStateValue = PARAM_LLRPConfigurationStateValue.FromBitArray(ref bit_array, ref cursor, length); obj.KeepaliveSpec = PARAM_KeepaliveSpec.FromBitArray(ref bit_array, ref cursor, length); param_list = new ArrayList(); PARAM_GPIPortCurrentState _param_GPIPortCurrentState = PARAM_GPIPortCurrentState.FromBitArray(ref bit_array, ref cursor, length); if (_param_GPIPortCurrentState != null) { param_list.Add(_param_GPIPortCurrentState); while ((_param_GPIPortCurrentState = PARAM_GPIPortCurrentState.FromBitArray(ref bit_array, ref cursor, length)) != null) param_list.Add(_param_GPIPortCurrentState); if (param_list.Count > 0) { obj.GPIPortCurrentState = new PARAM_GPIPortCurrentState[param_list.Count]; for (int i = 0; i < param_list.Count; i++) obj.GPIPortCurrentState[i] = (PARAM_GPIPortCurrentState)param_list[i]; } } param_list = new ArrayList(); PARAM_GPOWriteData _param_GPOWriteData = PARAM_GPOWriteData.FromBitArray(ref bit_array, ref cursor, length); if (_param_GPOWriteData != null) { param_list.Add(_param_GPOWriteData); while ((_param_GPOWriteData = PARAM_GPOWriteData.FromBitArray(ref bit_array, ref cursor, length)) != null) param_list.Add(_param_GPOWriteData); if (param_list.Count > 0) { obj.GPOWriteData = new PARAM_GPOWriteData[param_list.Count]; for (int i = 0; i < param_list.Count; i++) obj.GPOWriteData[i] = (PARAM_GPOWriteData)param_list[i]; } } obj.EventsAndReports = PARAM_EventsAndReports.FromBitArray(ref bit_array, ref cursor, length); 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; }