Не удалось открыть последовательный порт в.NET

Я знаю, что это не отвечает на Ваш вопрос, но почему Вы не используете стандартную программу обработки даты, чтобы проверить, является ли это допустимая дата? Даже если Вы изменяете regexp с отрицательным предварительным утверждением как (?! 31/0? 2) (т.е., не соответствуйте 31/2 или 31/02), у Вас все еще будет проблема принятия 29 02 на не високосные годы и о единственном формате даты разделителя.

проблема не легка, если Вы хотите действительно проверить дату, проверьте этот поток форума .

Для примера или лучшего пути, в C#, проверка эта ссылка

при использовании другой платформы/языка сообщи нам

8
задан Jon B 19 November 2009 в 17:39
поделиться

2 ответа

Попробуйте использовать обозначение \. \ COMX вместо просто COMX. Убедитесь, что вы ускользаете от символов: "\\. \ COM1"

Изменить: Ой, SO экранирует мой \, так что должно быть так (без пробелов): "\ \ \ \. \ \ COM1"

1
ответ дан 5 December 2019 в 20:16
поделиться

Вы можете попробовать настроить свойства порта, а не использовать конструктор.

mPort = new System.IO.Ports.SerialPort();
if(mPort.IsOpen)
{
   mPort.Close();
}
mPort.PortName = "COM1";
mPort.BaudRate = 19200;
mPort.Parity = Parity.None;
mPort.DataBits = 8;
mPort.StopBits = StopBits.One;
mPort.Handshake = Handshake.RequestToSend; // Handshake.None;
mPort.Open();

Я также столкнулся с проблемами с последовательной связью и Microsoft Active Sync. Я не уверен, запущен он у вас или нет, но, возможно, стоит попробовать убить его (имя процесса в диспетчере задач - wcescomm.exe). Надеюсь, это поможет.

Вы также можете попробовать использовать Marshal.GetLastWin32Error (), чтобы узнать, не вызывает ли что-то низкий уровень проблемы? Не уверен, что это даст вам больше информации.

1
ответ дан 5 December 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: