L'accès au port COM5 " est refusé
Je reçois le message d'erreur suivant Access to the port 'COM5' is denied.
lors de l'exécution de la méthode ci-dessous à partir de mon formulaire. J'ai essayé d'entrer dans le droit de la vitesse de transmission de 9600 depuis le port de la configuration de mon gestionnaire de périphériques. J'ai également essayé d'accéder aux appareils à travers Portmon mais il y a un bug qui m'empêche d'être connecté. Une alternative pour résoudre ce problème?
//Fields
List<string> myReceivedLines = new List<string>();
//subscriber method for the port.DataReceived Event
private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
while (sp.BytesToRead > 0)
{
try
{
myReceivedLines.Add(sp.ReadLine());
}
catch (TimeoutException)
{
break;
}
}
}
protected override void SolveInstance(IGH_DataAccess DA)
{
string selectedportname = default(string);
DA.GetData(1, ref selectedportname);
int selectedbaudrate = default(int);
DA.GetData(2, ref selectedbaudrate);
bool connecttodevice = default(bool);
DA.GetData(3, ref connecttodevice);
port.DtrEnable = true; //enables the Data Terminal Ready (DTR) signal during serial communication (Handshaking)
port.Open(); //Open the port
if (!(port.IsOpen == true)) port.Open();
if (connecttodevice == true)
{
port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
DA.SetDataList(0, myReceivedLines);
}
- Quel type d'appareil que vous essayez d'accès, assurez-vous que rien d'autre est d'essayer d'utiliser l'appareil.
- Si votre programme se bloque, parfois, que le port soit bloqué en position ouverte, et un redémarrage est nécessaire.
- Le port est déjà ouvert par un autre processus. Ou de la vôtre, ne cliquez pas sur le bouton deux fois.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'envelopper l'utilisation de SerialPort dans un instruction d'utilisation ou de mettre en œuvre IDisposable
if (!(port.IsOpen == true)) port.Open();
empêche le port à ouvrir par la création d'un "œuf et de la poule? Aussi où dois-je instancier la classe suivante:SerialPort port = new SerialPort(selectedportname, selectedbaudrate, Parity.None, 8, StopBits.One);