СОПРЯЖЕНИЕ КОМПЬЮТЕРОВ С ВНЕШНИМИ УСТРОЙСТВАМИ

Яндекс цитирования

Друзья ресурса:

www.roboforum.ru



Главная \ Разработки

SerialGate.dll - библиотека для работы с COM портами на С++

SerialGate.dll - динамическая библиотека для работы с COM портами на языке С++. Упрощает программирование последовательных портов за счет использования классов. Имеет возможность определять все установленные в системе COM порты. Корректно работает как с реальными так и виртуальными COM портами. В основе библиотеки лежит класс SerialGate. Используя его методы можно выполнять наиболле часто воспребованные действия на COM портом: прием - передача данных, управление линиями взаимодействия, определение доступных портов в ситеме и т.д.


Скачать SerialGate.dll (размер: 30.1 КБ)

Скачать исходники SerialGate.dll (размер: 49.0 КБ)



Примеры работы с SerialGate.dll будут размещаться в разделе "Статьи" на страницах, посвященных программированию COM порта.

Дополнения:

29.10.2007 - добавления версия библиотеки SerialGate.lib для компилятора Borland Builder.



Описание функций класса SerialGate:

bool Open(int port, int baud);

Функция открывает доступ к к COM порту с номером port на скорости baud байт/c. Если указанный порт существует и не занят другим приложением в данный момент, функция вернет true, иначе false. Если к примеру параметр port был указан как 3, то функция попытается открыть доступ к COM порту с именем COM3. Функция корректно работает и с виртуальными портами.


Пример использованиея:

SerialGate sg;

bool b = sg.Open(1, 19200);
if(b == true)
{
	//port is open sucsesfully
}	
else
{
	//port open error
}


int Send(char* buff, int szBuff);

Функция записывает в ранее открытый порт szBuff байт данных из буфера buff. Возвращает число успешно записанных байт данных в порт.


Пример использованиея:

char buff[256];
for(int i=0; i < sizeof(buff); i++)
{
	buff[i] = i;
}

int SendCounter = sg.Send(buff, sizeof(buff));

if(SendCounter != sizeof(buff))
{
	//не все данные были записаны в порт
}


int Recv(char* buff, int szBuff);

Читает из ранее открытого порта szBuff байт данных и помещает их в буфер buff. Возвращает число реально прочитанных байт данных.


Пример использованиея:

char buff[256];
int RcvCounter = sg.Recv(buff, sizeof(buff));

if(RcvCounter != sizeof(buff))
{
	//прочли меньше чем заказывали
}


void SetLine(OUT_LINES_NAME ln, bool state);

Функция устанавливает в логическую еденицу или ноль одну из выходных сигнальных линий, а именно DTR или RTS. Имя линии задается через перечеслитель OUT_LINES_NAME. Вторым параметром передается состояние (true – 1, false - 0) в которое необходимо перевести линию.


Пример использованиея:

sg.SetLine(sg.RTS, true); // установит на линии RTS лог. 1


bool GetLine(IN_LINES_NAME ln);

Функция возвращает состояние одной из входных сигнальных линий (CTS, DSR, RING или RLSD). Имя линии задается через перечислитель IN_LINES_NAME.


Пример использованиея:

boll b = sg.GetLine(sg.DSR); // читаем состояние линии DSR


void GetPortsInfo(PortInfo* pi);

Функция заполняет переданную ей структуру PortInfo информацией о установленных в системе COM портах.


Пример использованиея см. http://www.pcports.ru/articles/com_6.php



void Clean();

Ощищает входной и выходной буфер данных COM порта.


Пример использованиея:

sg.Clean();


void Close();

Закрывает ранее установленное соединение с COM портом.


Пример использованиея:

sg.Close();





Иванов Д. В.
9 мая 2007 года
www.pcports.ru

PS: буду рад увидеть Ваше мнение о SerialGate.dll в Гостевой книге.





Контакты | Гостевая книга

© 2005-2009 сопряжение компьютеров с внешними устройствами PCPORTS.RU © Иванов Д.В.