Код: Выделить всё
public async Task ReadRegistersAsync(ushort startAddress, ushort numberOfRegisters)
{
byte[] request = BuildReadRequest(startAddress, numberOfRegisters);
await transportStream.WriteAsync(request, 0, request.Length);
byte[] response = new byte[256];
await transportStream.ReadAsync(response, 0, response.Length);
return ParseShortResponse(response, numberOfRegisters);
}
private byte[] BuildReadRequest(ushort startAddress, ushort numberOfRegisters)
{
//(0x03)
byte[] request = new byte[12];
request[0] = 0;
request[1] = 0;
request[2] = 0;
request[3] = 0;
request[4] = 0;
request[5] = 6;
request[6] = 1;
request[7] = 3;
request[8] = (byte)(startAddress >> 8);
request[9] = (byte)(startAddress & 0xFF);
request[10] = (byte)(numberOfRegisters >> 8);
request[11] = (byte)(numberOfRegisters & 0xFF);
return request;
}
Но иногда он сообщает об ошибке: Невозможно прочитать данные из транспортного соединения: установленное соединение было прервано программным обеспечением на вашем хост-компьютере. Я не знаю почему,Кто-нибудь мне поможет?
Подробнее здесь: https://stackoverflow.com/questions/792 ... connection
Мобильная версия