Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование интерфейса RS232 
:(
    Опции темы
Gremlin
Дата 28.8.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Если ктото имеет информацию по данному вопросу или писал программы большая просьба выложить здесь листинги функций или ссылки на них  где люди смогут найти ответы на свои вопросы! А меня собственно интересует список апи функций для работы с этим интерфейсом! Заранее благодарен! 
PM MAIL   Вверх
_hunter
Дата 28.8.2006, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



Цитата(Gremlin @  28.8.2006,  11:03 Найти цитируемый пост)
А меня собственно интересует список апи функций для работы с этим интерфейсом

если интересует -- почему поиском не воспользовался?
http://www.izone.kiev.ua/articles/delphi/16/282.htm


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
chozen
Дата 28.8.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 14.8.2006

Репутация: нет
Всего: нет



bugtraq.ru/library/programming/rs232.html
www.opennet.ru/openforum/vsluhforumID9/5319.html 

- первые же строчки гугла smile  smile 

PM MAIL   Вверх
bel_nikita
Дата 28.8.2006, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 4
Всего: 47



Цитата(Gremlin @ 28.8.2006,  10:03)
А меня собственно интересует список апи функций для работы с этим интерфейсом!

Собственно одним списком не отделаешься smile 
Тема не раз уже обсуждалась. Взгляни сюда, правда сделано через MFC, но можешь "заточить" под себя


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Gremlin
Дата 29.8.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



ой а нет ли случайно у кого Агуров П. - Последовательные интерфейсы ПК. в электронном варианте выложите сцылочку

Добавлено @ 21:08 
да и ешо вот посмотрел я все выложенные сцылки! у меня в ммануале на прибор сказано типа команда LVn - выбор канала (n=1..10)
или экзамплы (Pc->Instrument) TS4.85E+0 типа выставить погрешность
дак вот я не понял как мне послать данные команды smile 
PM MAIL   Вверх
GremlinProg
Дата 30.8.2006, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



В этом мануале и поищи формат команд для твоего девайса, для RS232 нет специализированного языка, каждый может использовать свой интерфейс ввода-вывода


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Gremlin
Дата 30.8.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



а вот  я столкнулся с двумя случаями какой выбрать
есть класс CSerial и HANDLE ? оба открывают порты устанавливают скорость и тд и тп
PM MAIL   Вверх
chozen
Дата 30.8.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 14.8.2006

Репутация: нет
Всего: нет



Что-то мне сомнительным кажется наличие класса HANDLE... Мож это не класс, а что-нибудь другое smile  smile  smile ???

Если одинаковые, используй тот, название которого передает смысл области применения - CSerial.
PM MAIL   Вверх
Gremlin
Дата 30.8.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



Код

HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);

lpFileName — указатель на строку с нулевым завершающим символом. Обычно это имя открываемого файла, но в нашем случае это должно быть название порта (COM1, COM2, …). 
dwDesiredAccess — тип доступа. В нашем случае должен быть равен GENERIC_READ|GENERIC_WRITE. 
dwShareMode — параметр совместного доступа. Для коммуникационных портов всегда равен 0. 
lpSecurityAttributes — атрибут защиты. Для коммуникационных портов всегда равен NULL. 
dwCreationDistribution — режим автосоздания. Для коммуникационных портов всегда равен OPEN_EXESTING. 
dwFlagsAndAttributes — атрибут режима обработки. Для коммуникационных портов должен быть равен 0 или FILE_FLAG_OVERLAPPED. 
hTemplateFile — описатель файла-шаблона. Для коммуникационных портов должен быть равен NULL. 
При успешном открытии порта функция возвращает его описатель, а в случае ошибки возвращает INVALID_HANDLE_VALUE.

Добавлено @ 11:49 
Цитата(GremlinProg @  30.8.2006,  07:43 Найти цитируемый пост)
В этом мануале и поищи формат команд для твоего девайса, для RS232 нет специализированного языка, каждый может использовать свой интерфейс ввода-вывода 

Написано так
The protocol structure is defined in the syntax below. Data transfer takes place as simple ASCII protocol with
Command code - 2 characters
Parameters: 1..8 characters
Separator: ,;:/
Terminators: <cr><lf>, <cr> or <lf>
Blanks are ignored
Upper and lower case letters are allowed
и пример дан
Command(PC -> Instrument): TS<cr>
Replay(Instrument -> PC): TS4.26E+0<cr>

Это сообщение отредактировал(а) Gremlin - 30.8.2006, 11:50
PM MAIL   Вверх
GremlinProg
Дата 30.8.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



ну, эта команда, по крайней мере понятна:

Код

struct command_TS{
  char name[2];
  byte args_size;
  char separator;// = '.'
  float param
  char terminator;// = '\r' or '\n'
};

вот, к примеру её инициализация и посылка
Код

command_TS cmd = {{'T','S'},sizeof(float),'.',26E+0,'\n'};
RS232Write(&cmd,sizeof(cmd));

RS232Write - условная функция для посылки в RS232 с двумя параметрами: 1 - адрес данных, 2 - размер данных
PS: структуру надо упаковыть прагмой.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Fixin
Дата 30.8.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Пример посылки команды
Цитата(Gremlin @  30.8.2006,  11:39 Найти цитируемый пост)
TS<cr>
а это ответ:
Цитата(Gremlin @  30.8.2006,  11:39 Найти цитируемый пост)
TS4.26E+0<cr>


PM MAIL ICQ   Вверх
Fixin
Дата 30.8.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



GremlinProg, ты думаешь? Вообщето, послав такую структуру мы не получим команду вида
Цитата(Gremlin @  30.8.2006,  11:39 Найти цитируемый пост)
 TS<cr>
а что-то вроде
Цитата
TS<0x04>.<00><00><D0><41><cr><lf>
вместо
Цитата
TS<cr><lf>


PM MAIL ICQ   Вверх
GremlinProg
Дата 30.8.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Fixin, может быть...

наверное 4.26E+0 - это и есть параметр, тогда нужно сделать иначе:
Код

char szBuffer[1024];
sprintf(szBuffer,"TS%.2e\n",epsilon);
RS232Write(szBuffer,strlen(szBuffer));

а в общем случае, если параметров несколько, разделять их чем нибудь из ",;:/"

Это сообщение отредактировал(а) GremlinProg - 30.8.2006, 16:12


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Gremlin
Дата 31.8.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.8.2006

Репутация: нет
Всего: нет



В хидере класса объявил DCB DcbPort;
В конструкторе класса пишу DcbPort.ByteSize = 8;
Поставил точку остановки после этого и смотрю значение DcbPort.ByteSize = 8 +'пустой квадратик'
т.е. эта переменная имеет тип unsigned char, но как такое может быть если оно должно быть типа BYTE _DcbPort.ByteSize! Подскажите пожалуйста как решить данный трабл!
PM MAIL   Вверх
_hunter
Дата 31.8.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



а BYTE это и есть unsigned char (правой кнопкой по BYTE тыкни и там выбери Goto declaration)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1177 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.