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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den Zugriff auf Ihre
COM11
ersetzen Sie es mit\\.\COM11
Sie müssen schreiben:
Werfen Sie einen Blick auf Die Website von Microsoft
Verwenden Sie folgenden code, um zu überprüfen, ob COM-port tatsächlich existiert:
Erhalten Sie eine Liste der in Ihrem Ausgabe Fenster, das Ihnen mitteilt, welche COM-ports vorhanden sind.
Ich bin mir sicher, dass N0xus hat auf inzwischen verschoben, aber um anderen zu helfen mit diesem Fehler, wenn man auf OSX, es gibt keine solche Sache wie COM(beliebige Anzahl). Stattdessen gehen Sie in die Arduino-software, dann gehen Sie zu Extras>port finden, was die port genannt wird (bei Mir ist /dev/cu.usbmodem1411) und BOOM, Sie haben Ihre port-Namen.