Организация исходного кода C ++ - инициализация COM-порта - PullRequest
0 голосов
/ 07 октября 2011

У меня есть программа, которая будет взаимодействовать с несколькими COM-портами.На данный момент у меня есть весь код в одном файле, и это немного грязно.Как я могу организовать это таким образом, чтобы все последовательные соединения и параметры соединения были установлены где-то еще, позволяя мне просто читать или записывать данные в порт в главном файле.

Вот пример конфигурации, которую я имею в виду

HANDLE hSerial = CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);


DCB dcbSerialParams = {0};
dcbSerialParams.DCBlength=sizeof(dcbSerialParams);

dcbSerialParams.BaudRate=CBR_9600;
dcbSerialParams.ByteSize=8;
dcbSerialParams.StopBits=ONESTOPBIT;
dcbSerialParams.Parity=NOPARITY;

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Определить класс 'T_COMport' в другом модуле. Добавьте параметры конструктора, достаточные для настройки порта, вместе с методами чтения / записи, структурой _DCB, всеми этими неприятными, раздражающими вызовами установки последовательного порта и любыми потоками или другими вещами, необходимыми для того, чтобы порт работал так, как вам нужно. Может быть, событие или два для данных RX или что-то еще. Поместите шаблоны в заголовочный файл как обычно, включите его в свое основное приложение, как обычно.

Просто создайте экземпляр для каждого порта и начните чтение / запись.

Rgds, Martin

0 голосов
/ 07 октября 2011

HANDLE hSerial = CreateFile("COM3",GENERIC_READ|GENERIC_WRITE,.......

Единственное, что уникально для каждого com-порта, - это имя "com3", так что это все, что вам нужно предоставить функции. Дескриптор, возвращаемый Createfile, полностью идентифицирует открытый порт, это единственное, что вам нужно, чтобы прочитать / записать порт и закрыть его, когда вы закончите.

Так что узнайте о функциях и передайте имя порта и верните дескриптор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...