Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2012, 12:28   #11
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Различия с моей имеют вид одной строки
возможно, отсюда проектов не видно.

Цитата:
вытащить в public Win_Handle, указывающий на порт, и работать с ним напрямую
если стоит задача максимально быстро решить проблему "фикса QT-обертки" без прослеживания в дампе в чем затык, то да, это приемлемый способ. Костыль, но вполне. Только вот, кроссплатформенности нет.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 17.10.2012, 14:09   #12
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Тот, другой WriteFile ничем не отличается от вашего. Смотрите разницу в том
а) Как открывается порт (CreateFile)
б) Что и как конфигурируется
Когда поймете что к чему тогда уже можно будет искат Qt еквивалент
waleri вне форума Ответить с цитированием
Старый 17.10.2012, 14:26   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Что и как конфигурируется
Когда поймете что к чему тогда
об этом уже даже не во второй раз говорилось.

Цитата:
А что должно изменится? Если мне не изменяет память, RTS это Request To Send, то биш требоивание к девайсу чтоб слал данные (ну, или разрешение). Для того, чтоб знать надо ли нам слать или нет надо смотреть на CTS (Clear To Send)
как правило, на такие конверторы заходит не полный RS-232, а используется только RX/TX и любой из доступных сигналов, коим "ножкодрыгательством" может выступать RTS или DTR, без разницы как этот сигнал понимался ранее.

Цитата:
Блок, которым надо управлять - тоже с железным RS485
псевдо-железным, ибо ведомый.

Цитата:
ПК с железным портом RS485 (менять нельзя). Каким вывертом реализован RS485 на ПК - неизвестно.
неплохо бы ссылочку на документацию к этому ПК в теме.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 17.10.2012 в 14:30.
raxp вне форума Ответить с цитированием
Старый 17.10.2012, 16:07   #14
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Работающая инициализация:
Код:
 hCom = CreateFile("COM2",GENERIC_READ | GENERIC_WRITE, 0,
                 NULL,  OPEN_EXISTING,FILE_FLAG_OVERLAPPED, NULL  );
fSuccess = GetCommState(hCom, &dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
 fSuccess = SetCommState(hCom, &dcb);
c_tout.ReadIntervalTimeout=0;
c_tout.ReadTotalTimeoutMultiplier=10;
c_tout.ReadTotalTimeoutConstant=10;
c_tout.WriteTotalTimeoutMultiplier=0;
c_tout.WriteTotalTimeoutConstant=0;
 fSuccess=SetCommTimeouts(hCom,&c_tout);
 SetupComm(hCom,200000,200000);    
 PurgeComm(hCom,PURGE_RXCLEAR);
Реализация в Qt:
Код:
    BBPPort = new QextSerialPort(usedComPort, QextSerialPort::EventDriven);
    BBPPort->setPortName(usedComPort);
    BBPPort->setBaudRate(BAUD9600);
    BBPPort->setDataBits(DATA_8);
    BBPPort->setFlowControl(FLOW_HARDWARE);
    BBPPort->setParity(PAR_NONE);
    BBPPort->setStopBits(STOP_1);
    BBPPort->setTimeout(500);
В исходниках:
Код:
Win_Handle=CreateFileW((wchar_t*)fullPortNameWin(port).utf16(), GENERIC_READ|GENERIC_WRITE,
                           0, NULL, OPEN_EXISTING, dwFlagsAndAttributes, NULL);
ПК - вот такой. RS485 сделан байнетным и под заказ, в стандартной документации не отражен.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 17.10.2012, 19:39   #15
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...в общем так, ставьте виртуалку, ставьте xp или 32-битку семерку, запускате сниффер и снимайте дампы того и того. Потом сравниваете и радуетесь.

Цитата:
RS485 сделан байнетным и под заказ
под заказ как раз доки можно и попросить. Наверняка они где-то сам модуль прикупили и просто вставили. В конце-концов уже б надпись внутри нашли.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать RTS? Vadim_U Свободное общение 18 27.07.2010 00:05
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00
Многопользовательская RTS+RPG SaintlyHawk Фриланс 1 13.02.2009 22:13