Чтение последовательного порта с использованием Unity и dsPIC33F

Я отправляю 14 байтов данных со стороны dsPIC, где 14-й байт является символом новой строки. Теперь, как я могу прочитать данные последовательного порта, используя движок Unity5 Game. Я прочитал несколько блогов, используя различные методы (с помощью read(), readline(), readBytes() и так далее). Распространенным предложением является использование serial.Read, и когда я попробовал это, Unity застревает. Пример программы, приведенный ниже, также вызывает ту же проблему. Может ли кто-то предоставить правильный способ справиться с этим.

Спасибо и всего наилучшего, Ахиль.

//Basic libraries
using UnityEngine;
using System.Collections;
#region Using directives

//Other libraries
using System;
using System.Collections.Generic;
using System.ComponentModel;

//Serial Port library.
using System.IO.Ports;

#endregion

public class MoveRacket : MonoBehaviour 
{
public float speed      = 30;
public string axis      = "Vertical";
private SerialPort serial;
//public Action<byte[]> DataReceived;

void Start () 
{
    serial = new SerialPort("COM3", 115200, Parity.None, 8, StopBits.One);
    if (!serial.IsOpen)
    {
        try
        { 
            serial.Open();
            Debug.Log("Port Opened!");
        }
        catch(UnityException e)
        {
            // Basic exception handling
            Debug.LogError(e.Message);
        }
    }
    else
        Debug.LogError("Port already open.");
}

void FixedUpdate ()
{
    string tempS = serial.ReadLine();

    if (tempS!="") {
        Debug.Log("serial out "+tempS);
    }
}
void End()
{ 
    // Close the port when the program ends.
    if (serial.IsOpen)
    {
        try
        { 
            serial.Close();
            Debug.Log("Port closed!");
        }
        catch(UnityException e)
        {
            Debug.LogError(e.Message);
        }
    }
  }
}

0 ответов

Другие вопросы по тегам