Это только у меня или это баг?
serialPort = await SerialDevice.FromIdAsync(Id);
serialPort
всегда равно нулю, даже если Id
нет.
Мне нужно, чтобы это работало. На данный момент я просто пишу очень «быстрый и грязный» код для тестирования последовательной связи из универсального приложения Windows 10. Я отлаживал как x86, так и x64 с тем же результатом.
Вот где я сейчас, но я не могу далеко уйти без создания серийного порта....
public class SerialComm
{
private SerialDevice serialPort;
DataWriter dataWriteObject = null;
DataReader dataReaderObject = null;
public async void StartTest()
{
var deviceSelector = SerialDevice.GetDeviceSelector("COM3");
var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(deviceSelector);
var myCurrentDevice = myDevices[0];
string Id = myCurrentDevice.Id.ToString();
try
{
serialPort = await SerialDevice.FromIdAsync(Id);
}
catch (Exception)
{
throw;
}
StringBuilder commandBuilder = new StringBuilder();
while (true)
{
var rBuffer = (new byte[1]).AsBuffer();
await serialPort.InputStream.ReadAsync(rBuffer, 1, InputStreamOptions.Partial);
if ((char)rBuffer.ToArray()[0] != '\n')
{
commandBuilder.Append((char)rBuffer.ToArray()[0]);
}
else
{
string temp = "";
try
{
temp += rBuffer.ToString();
}
catch (Exception)
{
temp = "Error";
}
commandBuilder.Append(temp);
}
string stringToDisplay = commandBuilder.ToString();
}
Спасибо за помощь и советы....
Dispose
экземпляраSerialDevice
, он останется недоступным до тех пор, пока GC снова не запустится и не проявит очень похожие симптомы. - person RubberDuck   schedule 24.06.2016