COM-Port kann nicht geöffnet werden Einheit

Bin ich mit einem arduino-board zu kommunizieren seriellen Daten in die Einheit. Ich hatte diese Arbeit mit den lese-analog voltage Probe, die kommt mit dem board und der Ausgabe, der glücklich erscheint in der debug-log.

Aber jetzt wenn ich die Einheit bekomme ich die folgende Fehlermeldung:

IOException: Der port "COM11" ist nicht vorhanden.

Ich habe mich verändert, mein COM-port, um eine Vielzahl von zahlen, aber Sie kommen alle wieder mit dem gleichen Fehler.

Meine seriellen port Lesen von code ist so:

SerialPort stream = null;
string data = "Ready";


private float DataTimer = 2.0f;
private float TimeToCheckStream = 0.1f; //check data every second
public string COMPort = "";
public int baudRate = 9600;



void Awake ()
{       

    stream = new SerialPort(COMPort,baudRate); //originally 9600
    Debug.Log ("Initialized stream");

    LogWriter writer = LogWriter.Instance;
    writer.WriteToLog( COMPort);
}



void Start ()
{
// LogWriter writer = LogWriter.Instance;
// writer.WriteToLog("Testing test");

        if ( stream != null )
        {
            if ( stream.IsOpen ) //close if already open
            {
                stream.Close();
                Debug.Log ("Closed stream");
            }

            stream.Open();
            Debug.Log ("Opened stream");
        }

        else
        {
            Debug.Log ("ERROR: Uninitialized stream");
        }

}


void Update ()
{

    if(DataTimer < TimeToCheckStream) 
    {
        DataTimer += Time.deltaTime;
    } 
    else
    {
        DataTimer = 0.0f;

        if ( stream != null )
        {
            if ( stream.IsOpen )
            {
                //if stream is open do things in here
                stream.ReadLine();
                Debug.Log(stream.ReadLine().ToString());
            }
        }

        else
        {
            Debug.Log ("NULL stream");
        }
    }
}



void OnGUI ()
{
    GUI.Label ( new Rect(500,10,300,100), data );
}



void OnApplicationQuit ()
{       

    if ( stream != null )
    {
        stream.Close();
    }
}

Gibt es einen Grund, warum mein COM-port plötzlich entscheiden, sich zu schließen?

  • Könnte ich vorschlagen, mit System.IO.Ports.SerialPort.GetPortNames() stellen Sie sicher, dass Sie einen gültigen port. (z.B. "COM1")
  • Sind Sie in der Lage, es zu sehen im Geräte-manager.
  • Ich kann sehen, es in den Geräte-manager und es geändert, die Nummer aufgeführt. Immer noch der gleiche Fehler. Habe Folgendes versucht, nur jetzt als gut: string[] ports = SerialPort.GetPortNames(); Debug.Log(ports); Aber ich bekomme Systems.String[] geschrieben.
  • Versuchen Debug.Log(String.Join("\n", ports));.
  • Ich traf den gleichen Fehler und ich kann die Liste der vorhandenen ports und sehen, COM11, die mein Gerät aufgelistet. Jedoch verbinden es mit dem Namen "COM11" gescheitert und Unity3D berichtet, port-name nicht gefunden. Ich fand, wenn der COM-port ist weniger als 10, ist es kein problem, öffnen Sie es jedoch, wenn der COM-port größer ist als 10, es ist ein problem, gibt es etwas besonderes über port-Anzahl >10?
InformationsquelleAutor N0xus | 2013-09-13
Schreibe einen Kommentar