gpt4 book ai didi

c# - 如何使用 .NET LLRP 库 : Org. LLRP.LTK.LLRPV1.LLRPXmlParser.ParseXMLToLLRPMessage

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:58 25 4
gpt4 key购买 nike

我正在使用 LLRP 库开发应用程序。网关(计算机)从阅读器(使用本地主机的模拟阅读器)收到我的消息后,我想使用

将其转换为 LLRPMessage
Org.LLRP.LTK.LLRPV1.LLRPXmlParser.ParseXMLToLLRPMessage(_xmlReceived, out msg, out enumType);

但是,我在watch(VS2013 Ultimate)中查看:msg为null,enumType为0。

我可以就此提出您的建议吗?

我的代码是:

public static void ConvertXmlToLLRPMessage()
{
Org.LLRP.LTK.LLRPV1.DataType.Message msg; //Only Message type is accepted.
Org.LLRP.LTK.LLRPV1.ENUM_LLRP_MSG_TYPE enumType; //Only ENUM_LLRP_MSG_TYPE type is accepted.

Org.LLRP.LTK.LLRPV1.LLRPXmlParser.ParseXMLToLLRPMessage(_xmlReceived, out msg, out enumType);

Console.WriteLine();
Console.WriteLine("Print out _xmlReceived, inside ConvertXmlToLLRPMessage.");
Console.WriteLine(_xmlReceived);
Console.WriteLine();
Console.WriteLine("Out msg from ParseXMLToLLRPMessage:\n"); Console.WriteLine(msg); Console.WriteLine();
Console.WriteLine("Out enumType from ParseXMLToLLRPMessage:\n"); Console.WriteLine(enumType); Console.WriteLine();
}

_xmlReceived 是从 127.0.0.1 :5084 接收的 XML 转换数据。我必须检查它,它是正确的,这是读者发送的。

在阅读器端,我模拟阅读器向网关发送消息。在阅读器端,代码是:

public static void testData_PARAM_ROSpecID()
{
//create and object
PARAM_ROSpecID _rec_PARAM_ROSpecID = new PARAM_ROSpecID();

//assign value to an object
_rec_PARAM_ROSpecID.ROSpecID = 789;

//Convert obj to xml
string _xmlData = ConvertObjectToXml(_rec_PARAM_ROSpecID);

//Convert xml to byte array
byte [] _byteArray = CommServerSend.getSendBuffInByteAry(_xmlData);

//Send out.
CommServerReceive._incomingDataObj.Send(_byteArray);

return;
}

打印数据阅读器发送到网关:

<?xml version="1.0" encoding="utf-16"?>
<PARAM_ROSpecID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ROSpecID>789</ROSpecID>
</PARAM_ROSpecID>

打印出从读卡器接收到的数据网关:

<?xml version="1.0" encoding="utf-16"?>
<PARAM_ROSpecID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ROSpecID>789</ROSpecID>
</PARAM_ROSpecID>

但在使用 Org.LLRP.LTK.LLRPV1.LLRPXmlParser.ParseXMLToLLRPMessage(_xmlReceived, out msg, out enumType); 处理后打印出 msg 和 enumType:

Out msg from ParseXMLToLLRPMessage:
Out enumType from ParseXMLToLLRPMessage: 0

请帮助我并尽快回复。非常感谢您的努力。

最佳答案

null obj 变量意味着方法无法从传入的 xml 中提取消息。我会更仔细地查看 xml 以查看那里是否有问题。

下面是代码应该如何使用 ParseXMLToLLRPMessage() 查找的示例:

            Org.LLRP.LTK.LLRPV1.DataType.Message obj;
ENUM_LLRP_MSG_TYPE msg_type;

// read the XML from a file and validate its an SET_READER_CONFIG
try
{
FileStream fs = new FileStream(@"setReaderConfig.xml", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string s = sr.ReadToEnd();
fs.Close();

LLRPXmlParser.ParseXMLToLLRPMessage(s, out obj, out msg_type);

if (obj == null || msg_type != ENUM_LLRP_MSG_TYPE.SET_READER_CONFIG)
{
Console.WriteLine("Could not extract message from XML");
return;
}
}
catch
{
Console.WriteLine("Unable to convert to valid XML");
return;
}

// Communicate that message to the reader
MSG_SET_READER_CONFIG msg = (MSG_SET_READER_CONFIG)obj;

关于c# - 如何使用 .NET LLRP 库 : Org. LLRP.LTK.LLRPV1.LLRPXmlParser.ParseXMLToLLRPMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com