嗨,我开发了一个Web API
,其中我在URL中获取一些参数,然后对其进行处理。我使用的协议是Modbus
。它返回一个字节数组,作为回报,我想从中获取一些特定的字符串数据。下面是我的代码
public string GetData(int slaveId, int dataAddress, int registerCount)
{
//string hexValue = intValue.ToString("X");
// Convert the hex string back to the number
int slaveHex = int.Parse(slaveId.ToString("X"), System.Globalization.NumberStyles.HexNumber);
int addressHex = int.Parse(dataAddress.ToString("X"), System.Globalization.NumberStyles.HexNumber);
int countHex = int.Parse(registerCount.ToString("X"), System.Globalization.NumberStyles.HexNumber);
//serial port settings and opening it
var serialPort = new SerialPort("COM2", 9600, Parity.Even, 8, StopBits.One);
serialPort.Open();
var stream = new SerialStream(serialPort);
stream.ReadTimeout = 200;
// send request and waiting for response
// the request needs: slaveId, dataAddress, registerCount
var responseBytes = stream.RequestFunc3(slaveHex, addressHex, countHex);
// extract the content part (the most important in the response)
var data = responseBytes.ToResponseFunc3().Data;
//Convert a byte array to string
var stringFromByteArray = System.Text.Encoding.UTF8.GetString(data);
serialPort.Close();
return stringFromByteArray;
}
data
包含14个字节的数组
stringFromByteArray
返回以下内容>>
"\0�\0�\0�\0\u0016\0\u0017\0\u0018\0\u001a"
您可以在上面看到,返回的字符串与预期的不同。我想要像数据字节数组中的确切值。
我希望它的结果输出在Json response
中。如下所示
{ [0] => "220", [1] => "230", [2] => "240", [3] => "22", [4] => "23", [5] => "24", [6] => "26", }
我该怎么办?任何帮助将不胜感激。
嗨,我已经开发了一个Web API,在其中我要在URL中获取一些参数,然后对其进行处理。我使用的协议是Modbus。它返回一个字节数组,并且返回,我想得到一些...
从更高的角度来看,有几个选项供您选择。