|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.06.2008, 16:10 | #1 |
Регистрация: 14.05.2008
Сообщений: 5
|
Обращение к COM-порту из обработчика системного таймера (приложение WinForm)
Есть проблема с описанием работы последовательного порта в прерывании по системному таймеру при работе приложения оконной формы Visual Studio 2005 C++. Таймер Windows, имеющийся в инструментарии оконной формы, не может генерировать прерывания чаще, чем раз в 55 мс. Для обмена через COM-порт с частотой 20 мс описал класс системного таймера и обработчик его прерываний. Теперь никак не получается создать понятное обработчику описание структуры или класса последовательного порта из System::IO::Ports::SerialPort. Пытался описать встроенный класс SysTimer и внешний по отношению к оконной форме – обработчик не понимает. Попытка создать ещё класс serialPort тоже ни к чему не привела. Может, кто-нибудь подскажет тонкости описания подобных вещей? В MFC, API не писал. Был только опыт работы с Borland C++ в MS-DOS.
Фрагмент программы: Код:
Последний раз редактировалось merax; 16.06.2008 в 16:59. |
17.06.2008, 06:41 | #2 |
Форумчанин
Регистрация: 27.12.2006
Сообщений: 955
|
А вообще я бы рекомендовал тебе бросить .NET и делать ето в С++ Builder или студии как я делал , таймер на Builder есть нормальный, а на студии легко программируется. А вот кусочек кода из моей проги для работы с COM....
Код:
Код:
Последний раз редактировалось merax; 17.06.2008 в 13:26. |
17.06.2008, 12:55 | #3 |
Регистрация: 14.05.2008
Сообщений: 5
|
Спасибо за подсказку merax !
С описанием всё получилось. Теперь добиваюсь нужной частоты. Почему-то при указанном интервале 20 мс в действительности выходит около 32. Ещё появились проблемы с выводом в оконную форму из обработчика системного таймера, но, в крайнем случае, без этого можно обойтись. |
17.06.2008, 13:12 | #4 |
Форумчанин
Регистрация: 27.12.2006
Сообщений: 955
|
Ну проблемы с выводом, это то, что функии в классе статические и не могут использовать нестатические методы. А интервал на разных компах все равно разный будет...
Пы.Сы. Кодом-с поделитесь для пополния форума и раздела в часности.... Последний раз редактировалось merax; 18.06.2008 в 02:07. |
18.06.2008, 09:36 | #5 |
Регистрация: 14.05.2008
Сообщений: 5
|
Насчёт того, что интервал на разных компах будет разный – вообще-то разница должна быть в каких-то разумных пределах – ну процентов 10, но не 50 же.
По вашей просьбе прилагаю полностью текущий код (Form1.h в архиве rar) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
добавление обработчика OnPaint в TPanel | Mixasik | Общие вопросы Delphi | 2 | 23.07.2008 17:36 |
Организация обработчика OnClick | 8alig8 | Помощь студентам | 1 | 03.06.2008 05:11 |
получение системного времени | Alex_Pro | Общие вопросы C/C++ | 1 | 21.05.2008 20:31 |
Динамик системного блока | Михаил Юрьевич | Общие вопросы Delphi | 4 | 28.01.2008 18:31 |