public static PARAM_TagReportData FromXmlNode(XmlNode node) { string val; PARAM_TagReportData param = new PARAM_TagReportData(); { param.EPCParameter = new UNION_EPCParameter(); try { { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "EPCData"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.EPCParameter.Add(PARAM_EPCData.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "EPC_96"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.EPCParameter.Add(PARAM_EPC_96.FromXmlNode(xnl[i])); } } } catch { } } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "ROSpecID"); if (null != xnl) { if (xnl.Count != 0) param.ROSpecID = PARAM_ROSpecID.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "SpecIndex"); if (null != xnl) { if (xnl.Count != 0) param.SpecIndex = PARAM_SpecIndex.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "InventoryParameterSpecID"); if (null != xnl) { if (xnl.Count != 0) param.InventoryParameterSpecID = PARAM_InventoryParameterSpecID.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "AntennaID"); if (null != xnl) { if (xnl.Count != 0) param.AntennaID = PARAM_AntennaID.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "PeakRSSI"); if (null != xnl) { if (xnl.Count != 0) param.PeakRSSI = PARAM_PeakRSSI.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "ChannelIndex"); if (null != xnl) { if (xnl.Count != 0) param.ChannelIndex = PARAM_ChannelIndex.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "FirstSeenTimestampUTC"); if (null != xnl) { if (xnl.Count != 0) param.FirstSeenTimestampUTC = PARAM_FirstSeenTimestampUTC.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "FirstSeenTimestampUptime"); if (null != xnl) { if (xnl.Count != 0) param.FirstSeenTimestampUptime = PARAM_FirstSeenTimestampUptime.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "LastSeenTimestampUTC"); if (null != xnl) { if (xnl.Count != 0) param.LastSeenTimestampUTC = PARAM_LastSeenTimestampUTC.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "LastSeenTimestampUptime"); if (null != xnl) { if (xnl.Count != 0) param.LastSeenTimestampUptime = PARAM_LastSeenTimestampUptime.FromXmlNode(xnl[0]); } } catch { } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "TagSeenCount"); if (null != xnl) { if (xnl.Count != 0) param.TagSeenCount = PARAM_TagSeenCount.FromXmlNode(xnl[0]); } } catch { } { param.AirProtocolTagData = new UNION_AirProtocolTagData(); try { { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2_PC"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AirProtocolTagData.Add(PARAM_C1G2_PC.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2_CRC"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AirProtocolTagData.Add(PARAM_C1G2_CRC.FromXmlNode(xnl[i])); } } } catch { } } try { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "AccessSpecID"); if (null != xnl) { if (xnl.Count != 0) param.AccessSpecID = PARAM_AccessSpecID.FromXmlNode(xnl[0]); } } catch { } { param.AccessCommandOpSpecResult = new UNION_AccessCommandOpSpecResult(); try { { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2ReadOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2ReadOpSpecResult.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2WriteOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2WriteOpSpecResult.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2KillOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2KillOpSpecResult.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2LockOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2LockOpSpecResult.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2BlockEraseOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2BlockEraseOpSpecResult.FromXmlNode(xnl[i])); } } { XmlNodeList xnl = XmlUtil.GetXmlNodes(node, "C1G2BlockWriteOpSpecResult"); if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) param.AccessCommandOpSpecResult.Add(PARAM_C1G2BlockWriteOpSpecResult.FromXmlNode(xnl[i])); } } } catch { } } try { ArrayList xnl = XmlUtil.GetXmlNodeCustomChildren(node); if (xnl != null) { if (xnl.Count != 0) { for (int i = 0; i < xnl.Count; i++) { ICustom_Parameter custom = CustomParamDecodeFactory.DecodeXmlNodeToCustomParameter((XmlNode)xnl[i]); if (custom != null) param.AddCustomParameter(custom); } } } } catch { } return param; }
public new static PARAM_TagReportData 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_TagReportData param = new PARAM_TagReportData(); 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); } PARAM_EPCData _param_EPCData = PARAM_EPCData.FromBitArray(ref bit_array, ref cursor, length); if (_param_EPCData != null) { param.EPCParameter.Add(_param_EPCData); while ((_param_EPCData = PARAM_EPCData.FromBitArray(ref bit_array, ref cursor, length)) != null) param.EPCParameter.Add(_param_EPCData); } PARAM_EPC_96 _param_EPC_96 = PARAM_EPC_96.FromBitArray(ref bit_array, ref cursor, length); if (_param_EPC_96 != null) { param.EPCParameter.Add(_param_EPC_96); while ((_param_EPC_96 = PARAM_EPC_96.FromBitArray(ref bit_array, ref cursor, length)) != null) param.EPCParameter.Add(_param_EPC_96); } param.ROSpecID = PARAM_ROSpecID.FromBitArray(ref bit_array, ref cursor, length); param.SpecIndex = PARAM_SpecIndex.FromBitArray(ref bit_array, ref cursor, length); param.InventoryParameterSpecID = PARAM_InventoryParameterSpecID.FromBitArray(ref bit_array, ref cursor, length); param.AntennaID = PARAM_AntennaID.FromBitArray(ref bit_array, ref cursor, length); param.PeakRSSI = PARAM_PeakRSSI.FromBitArray(ref bit_array, ref cursor, length); param.ChannelIndex = PARAM_ChannelIndex.FromBitArray(ref bit_array, ref cursor, length); param.FirstSeenTimestampUTC = PARAM_FirstSeenTimestampUTC.FromBitArray(ref bit_array, ref cursor, length); param.FirstSeenTimestampUptime = PARAM_FirstSeenTimestampUptime.FromBitArray(ref bit_array, ref cursor, length); param.LastSeenTimestampUTC = PARAM_LastSeenTimestampUTC.FromBitArray(ref bit_array, ref cursor, length); param.LastSeenTimestampUptime = PARAM_LastSeenTimestampUptime.FromBitArray(ref bit_array, ref cursor, length); param.TagSeenCount = PARAM_TagSeenCount.FromBitArray(ref bit_array, ref cursor, length); PARAM_C1G2_PC _param_C1G2_PC = PARAM_C1G2_PC.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2_PC != null) { param.AirProtocolTagData.Add(_param_C1G2_PC); while ((_param_C1G2_PC = PARAM_C1G2_PC.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AirProtocolTagData.Add(_param_C1G2_PC); } PARAM_C1G2_CRC _param_C1G2_CRC = PARAM_C1G2_CRC.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2_CRC != null) { param.AirProtocolTagData.Add(_param_C1G2_CRC); while ((_param_C1G2_CRC = PARAM_C1G2_CRC.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AirProtocolTagData.Add(_param_C1G2_CRC); } param.AccessSpecID = PARAM_AccessSpecID.FromBitArray(ref bit_array, ref cursor, length); PARAM_C1G2ReadOpSpecResult _param_C1G2ReadOpSpecResult = PARAM_C1G2ReadOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2ReadOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2ReadOpSpecResult); while ((_param_C1G2ReadOpSpecResult = PARAM_C1G2ReadOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2ReadOpSpecResult); } PARAM_C1G2WriteOpSpecResult _param_C1G2WriteOpSpecResult = PARAM_C1G2WriteOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2WriteOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2WriteOpSpecResult); while ((_param_C1G2WriteOpSpecResult = PARAM_C1G2WriteOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2WriteOpSpecResult); } PARAM_C1G2KillOpSpecResult _param_C1G2KillOpSpecResult = PARAM_C1G2KillOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2KillOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2KillOpSpecResult); while ((_param_C1G2KillOpSpecResult = PARAM_C1G2KillOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2KillOpSpecResult); } PARAM_C1G2LockOpSpecResult _param_C1G2LockOpSpecResult = PARAM_C1G2LockOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2LockOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2LockOpSpecResult); while ((_param_C1G2LockOpSpecResult = PARAM_C1G2LockOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2LockOpSpecResult); } PARAM_C1G2BlockEraseOpSpecResult _param_C1G2BlockEraseOpSpecResult = PARAM_C1G2BlockEraseOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2BlockEraseOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2BlockEraseOpSpecResult); while ((_param_C1G2BlockEraseOpSpecResult = PARAM_C1G2BlockEraseOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2BlockEraseOpSpecResult); } PARAM_C1G2BlockWriteOpSpecResult _param_C1G2BlockWriteOpSpecResult = PARAM_C1G2BlockWriteOpSpecResult.FromBitArray(ref bit_array, ref cursor, length); if (_param_C1G2BlockWriteOpSpecResult != null) { param.AccessCommandOpSpecResult.Add(_param_C1G2BlockWriteOpSpecResult); while ((_param_C1G2BlockWriteOpSpecResult = PARAM_C1G2BlockWriteOpSpecResult.FromBitArray(ref bit_array, ref cursor, length)) != null) param.AccessCommandOpSpecResult.Add(_param_C1G2BlockWriteOpSpecResult); } ICustom_Parameter custom = CustomParamDecodeFactory.DecodeCustomParameter(ref bit_array, ref cursor, length); if (custom != null) { param.Custom.Add(custom); while ((custom = CustomParamDecodeFactory.DecodeCustomParameter(ref bit_array, ref cursor, length)) != null) param.Custom.Add(custom); } return param; }