Мне нужно отсканировать QR-код (через сканер, а не камеру). Сканер отправляет данные через последовательный порт «COM3», и мне нужно это как строка в Unity. Так что настройка соединения работает нормально и без каких-либо ошибок или исключений, но система не регистрирует мое событие в SerialDataReceivedEventHandler. (См. Код: DataReceiveHandler и все, что в нем есть, кажется, просто нереальным)
Я использую следующие настройки для открытия порта:
PortName является "COM3"
BaudRate составляет 19200
PortParity - это None
PortBits составляет 8
PortStopBits - это один
Как я уже сказал, порт открывается правильно. Я не получаю ошибок или исключений.
Может быть, вы видите то, чего я не вижу.
Спасибо!
private void Start()
{
Init();
}
private void Update()
{
PortIsOpen = SP.IsOpen;
}
private void EstablishPortConnection()
{
try
{
if(SP != null)
{
SP.Close();
SP.Dispose();
SP = null;
}
if(SP == null)
{
SP = new SerialPort(PortName, BaudRate, PortParity, PortBits, PortStopBits);
SP.RtsEnable = true;
SP.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);
SP.Open();
}
}
catch(Exception _ex)
{
Debug.Log("Error while establishing connection! Error: " + _ex);
}
}
private void DataRecievedHandler(object _sender, SerialDataReceivedEventArgs _e)
{
Debug.Log("DataReceived");
try
{
SerialPort tmpsp = (SerialPort)_sender;
Debug.Log(tmpsp.ReadLine());
Message = tmpsp.ReadLine();
}
catch(Exception _ex)
{
Debug.Log("Error during message receiving. Error: " + _ex);
}
}
public void Init()
{
Message = "";
EstablishPortConnection();
}