Просмотр сообщений
|
Страниц: 1 2 [3] 4 5 ... 7
|
31
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Сентябрь 19, 2016, 14:10
|
Спасибо, повеселили. У Вас волшебная юмористическая аналитичность. Однако вспоминается что-то из былого: - времена телеграфа - "– Давай, работай, – обратился Будённый к телеграфисту. Телеграфист быстро отстучал телеграфным ключом..."; - появление телефонов - "Алло, коммутатор? Будьте добры, соедините..."; - радиопередатчик - "Он отдал сообщение радисту: "Зашифруйте и передайте на частоте..."; - директор секретарше, забыв номер - "Соедините меня с финансовым отделом!"; - эпоха интернета - "Пожалуйста, организуйте интернет-конференцию на следующей неделе". Как видно настройку и организацию связи осуществляют третьи лица. Нет?
|
|
|
32
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Сентябрь 16, 2016, 15:37
|
Раньше так оно и было, давно. Но с тех пор уже много копий сломано было на этот счет, ругались и так и сяк Именно тогда вам надо было сказать: нельзя так. Все, точка Хочешь свои настройки - устанавливай их до открытия; хочешь чтобы менялись в процессе работы - меняй их у открытого девайса.
Хочешь чтобы просто открылось - нельзя так. Все, точка.
Логика проста.
"У Вас тут пахнет всем чем угодно, но только не колбасой" (логикой) Как это не должен знать? Это проблемы того софта.
Если софтина работает с у-вом, то она должна знать параметры для работы с у-вом и сама его конфигурить. Она берет над ним контроль, а не "Дядя Вася" откуда-то.
Вы же прекрасно поняли, что в описанном случае софт работает не с устройством, а с хендлом, а вот на что хендл указывает знает "Дядя Вася". А в примере "echo hello >> com1" по вашему команда echo должна настраивать порт? Не, никто не будет заморачиваться с этим, и я тоже. PS: Всем не угодишь, а тратить личное время мне уже надоело на все эти потехи, увы.
Создается впечатление, прошу прощения за грубость, что Вам западло ввести еще одну переменную и проверить ее состояние перед вызовом initialize(). Любители дефолтов ничего не теряют.
|
|
|
33
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Сентябрь 16, 2016, 09:39
|
по умолчанию всегда 9600 8 N 1 То что при открытии порта устанавливаются предопределенные значения в корне не верно, тем самым вы сбиваете настройки которые были установлены ранее (к примеру командой mode), потому что есть софт, который ничего не должен знать о параметрах порта и не должен выполнять никаких настроек, а должен только открывать его и заниматься обменом. Это можно решить флагом конструктора, например DefaultSettings/SystemSettings.
|
|
|
34
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Сентябрь 15, 2016, 11:40
|
socat - не сталкивался, дайте ссылочку. 4. RTS/DTR не так уж и важны по сравнению с остальными параметрами, поэтому пока на это подзабили.
У нас много устройств, которые запитываются по DTR, так что выставлять приходится сразу. А зачем вообще понадобилась идея предварительной настройки? Если бы параметры можно было менять в дизайнере, как в C++Builder или Delphi тогда понятно.
|
|
|
37
|
Qt / Дополнительные компоненты / Re: Создаю библиотеку для работы с последовательными портами. [В ПРОЦЕССЕ].
|
: Сентябрь 12, 2016, 16:50
|
C++ (Qt) m_serialPort = new QSerialPort(portName, this); if (!m_serialPort->setBaudRate(baudRate)) return false; if (!m_serialPort->setDataBits(QSerialPort::Data8)) return false; if (!m_serialPort->setParity(QSerialPort::NoParity)) return false; if (!m_serialPort->setStopBits(QSerialPort::OneStop)) return false; if (!m_serialPort->setFlowControl(QSerialPort::NoFlowControl)) return false; if (!m_serialPort->setDataTerminalReady(true)) return false; if (!m_serialPort->setRequestToSend(false)) return false;
После конструктора забыл открыть порт и сообщение об ошибке, что порт не открыт получил только при вызове setDataTerminalReady, все предыдущие методы выполнились без ошибок. Это сделано нарочно?
|
|
|
39
|
Программирование / С/C++ / Re: Найти префикс
|
: Август 10, 2016, 15:46
|
А если так: C++ (Qt) std::string GetPrefix(const std::vector<std::string> & vec) { std::string s = vec[0]; auto result = std::find_if(s.begin(), s.end(), [] (char ch) { return !(std::isalpha(ch) || std::isdigit(ch)); }); if (result == s.end()) return std::string(); // prefix not found or prefix at end: "Zombie_" auto distance = std::distance(s.begin(), result); if (distance == 0) return std::string(); // prefix in beginning: "_Zombie" std::string prefix = s.substr(0, distance + 1); if (std::all_of(vec.begin(), vec.end(), [prefix] (std::string s) { return s.find(prefix) == 0; })) return prefix; // prefix everywhere return std::string(); // prefix partly }
|
|
|
41
|
Qt / Установка, сборка, отладка, тестирование / Re: Не работает lupdate в Qt5.7 Windows7
|
: Июль 05, 2016, 08:32
|
Семерка не даёт запускать экзешники в которых есть слово update и ещё какие то, не помню точно. Необходимо поднять привилегии. Переобзовите в lup-date, например, и исправьте в настройках
В натуре, переименовал designer в designer_update и потребовались привилегии) А вот переименование в lup_date для Qt5.2.0 прокатило, а для 5.7 результата не дало, так и вылетает.
|
|
|
43
|
Qt / Общие вопросы / Re: Как заменить неизвестное заранее число вхождений в QRegExp ?
|
: Июнь 14, 2016, 11:50
|
Знатный холивар Кстати в нашем кружке "умелые руки", как и в некоторых по соседству, крайне не в почете stl, boost и всякого рода templat'ы, если нет на то серьезного обоснования. Не всякий кодер знает или помнит возможности той или иной либы, тех или иных технологий и да же возможностей языка, учитывая, что код должен быть прост и лаконичен. Из дискуссии я в большей степени поддерживаю Racheengel и Igors. Про регулярки. Применил я их как-то для верификации протокола обмена. Пришел новенький и дали ему что-то там изменить. И как говорил Old, переписать этот кусок кода было быстрее, чем научить новичка регуляркам. Это опять в пользу первого пункта. Писать надо не для компьютера, а для человека, который будет разбираться в этом коде после тебя (это камушек в огород! буста). По теме. Каждый предложил свое решение. На регулярках. При этом не указав автору, что он заблуждается, утверждая, что: Обрабатывать нужно именно регулярными выражениями. Потому что, например, парсинг в DOM (с последующим обратным преобразованием) не сделает текстовую ноду из одних пробелов внутри ноды span. Мое мнение, если это DOM-документ, то и работать надо с ним методами DOM, учитываю возможную расширяемость, если конечно это не разовая задача.
|
|
|
44
|
Qt / Общие вопросы / Re: Как заменить неизвестное заранее число вхождений в QRegExp ?
|
: Июнь 08, 2016, 10:35
|
Обрабатывать нужно именно регулярными выражениями. Потому что, например, парсинг в DOM (с последующим обратным преобразованием) не сделает текстовую ноду из одних пробелов внутри ноды span.
Вот ключевая фраза всей темы. Дезинформация. Спецификация DOM не запрещает использовать пробелы (и только пробелы) в текстовых нодах. Обработка пробелов возлагается на пользователя, на его усмотрение.
|
|
|
45
|
Qt / Пользовательский интерфейс (GUI) / Re: Как ускорить появление QPrintPreviewDialog?
|
: Май 25, 2016, 15:58
|
Подобные ситуации часто возникают там и сям - главная нитка занята, и обновить UI некому. Какое-то общее/cтандартное решение этой проблемы мне неизвестно. Часто рекомендуют "вынос в поток" - но не уверен возможно ли это для диалога принтера.
Вынесем туда принтер, а диалог будет ждать finished.
|
|
|
Страниц: 1 2 [3] 4 5 ... 7
|
|
|