С# управление СОМ портом через API
// "знакомлю" программу с библиотекой
[DllImport("Kernel32.dll")]
public static extern bool EscapeCommFunction(IntPtr hFile, uint dwFunc);
...
// открываю порт
COM_port = new System.IO.Ports.SerialPort(defCom, b_r, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
COM_port.Open();
...
// и теперь хочу управлять, но среда ругается что...
// во всех нижеприведенных вариантах что некоторые аргументы - инвалиды и подчеркивает в первом и втором случае оба, в третьем только второй аргумент
// 1.
EscapeCommFunction(COM_port, 8); //1-SETXOFF;2-SETXON;3-SETRTS;4-CLRRTS;5-SETDTR;6-CLRDTR;7-;8-SETBREAK;9-CLRBREAK
// 2.
System.UInt32 SETBREAK = 8;
EscapeCommFunction(COM_port, SETBREAK);
// 3.
EscapeCommFunction(COM_port, SETRTS);
где нахомутал?
полагаю SETXOFF;SETXON;SETRTS;CLRRTS;SETDTR;CLRDTR;SETBREAK;CLRBREAK вбиты константами в какую библиотеку? (не могу найти)
СПАСИБО!
- А просто отправлять-получать вам не достаточно? Чем вы собираетесь управлять? Что за условия начальной задачи? от D129, 31 мая 2012 года
Почитайте документацию внимательно
Увы, так надо.
А вот как сделать "родными" - к сожалению не нашел :-( .
В документации сказано
The baud rate must be supported by the user's serial driver. The default value is 9600 bits per second (bps).
Цитата:
The baud rate must be supported by the user's serial driver. The default value is 9600 bits per second (bps).
Если ваше железо (или драйвер) не поддерживает 5bps то вы и не сможете установить 5bps никак. Виндовые функции вернут ошибку. А C# вернет ArgumentOutOfRangeException. И никак не обмануть.
а выглядит:
EscapeCommFunction(fCOM, SETBREAK);
где fCOM - файл вывода в COM порт.
повторюсь, речь о "ручном" управлении СОМ портом, чтобы на выходе получилось "якобы" 5 бод.
BreakState
Блин ну откройте ссылки, которые я даю в постах. Если не можете осилить чтение документации - соберите dll на делфи, которая будет работать с портом, а .NET используйте только как GUI.
Блин ну откройте ссылки, которые я даю в постах. Если не можете осилить чтение документации - соберите dll на делфи, которая будет работать с портом, а .NET используйте только как GUI.
Ох эта терминология и стиль от Майкрософта для профессионалов... тяжело въезжать...
arrjj Ваши вежливость и чувство такта подкупают :-)
+