Просмотр сообщений
|
Страниц: 1 2 [3] 4 5 ... 290
|
31
|
Qt / Общие вопросы / Re: Проблемы с VCP в Windows
|
: Август 04, 2021, 12:54
|
При выдергивании железки из порта, порт остаётся "занятым" не только в оффтопике. В Linux такая же проблема. Разве что интервал "отпускания" другой.
В linux устройство сразу исчезает из /dev и момент отключения можно отловить и закрыть порт/прекратить обмен. А после подключения устройства его можно спокойно открыть вновь.
|
|
|
32
|
Программирование / Общий / Re: Большой граф
|
: Август 04, 2021, 10:56
|
А почему (или откуда) он должен "быть"? Не все в этой жизни сводится к тасканию "ис каропки" и усердному заучиванию справочника Зачем же так передергивать? m_ax имел ввиду, что можно любую постановку задачи довести до абсурда, не имеющего приемлемого решения. Вот как сейчас. А можно вообще в требовании поставить, чтобы кадры рендерились с часотой 60 кадров секунду и продолжить важно страдать на форуме.
|
|
|
33
|
Qt / Общие вопросы / Re: Мандатные метки
|
: Июль 23, 2021, 17:22
|
Вы думаете что Россия купила лицензию на использование QT в военных системах? Эти системы кому попало не продаются. Если буржуи что-то спросят - можно сослаться на секретность.
А для чего России покупать лицензию на Qt? Где написано, для каких целей можно использовать Qt?
|
|
|
34
|
Qt / Вопросы новичков / Re: QTimer::singleShot и удаление объекта
|
: Июль 10, 2021, 10:43
|
Просто добавьте объект QTimer в класс и при разрушении виджета разрушайте и таймер.
Что это изменит, если singshort является статической функцией? Это позволит ее не использовать, т.к. она не управляемая после запуска.
|
|
|
40
|
Qt / Многопоточное программирование, процессы / Re: Сохранение работы основного потока при падении дополнительных.
|
: Июнь 13, 2021, 11:38
|
Доброе время суток, Уважаемы гуру, прошу подсказать принцип организации стабильного консольного приложения на сервере. Имеется три потока - "стабильный" основной поток запускающий остальные - поток со "стабильным" не меняемым кодом собирает информацию и должен работать при падении третьего - поток с нестабильным изменяемым и сложным кодом в котором возможно падение.
Какие есть механизмы для контроля и перезапуска третьего потока при падении, при условии постоянной работы второго потока ?
Можно перейти на микросервисную архитектуру - на каждую "работу" свой процесс. Основной процесс запускает и контроллирует работу остальных процессов. Он может не только контроллировать, что запущенный им процесс еще активен (не упал), но и что он не завис. Если дочерний процесс упал или повис, то основной может безопастно его убить и перезапустить. Общаться все процессы могут через очередь сообщений (MQ), их много разных с разными возможностями. Эта архитектура легко маштабируется в будущем, например если понадобится несколько процессов-добытчиков и несколько процессов-обработчиков.
|
|
|
41
|
Программирование / С/C++ / Re: чтение и запись битовых структур данных
|
: Апрель 29, 2021, 15:12
|
вариант 1 (был выше): for field in mystruct.orderedFields stream.write(field.size, field.value); где orderedFields — массив ссылок/указателей на необходимые поля. Наверное такое проще всего реализовать через базовый класс для структур: C++ (Qt) class bit_field_base; class bit_record { public: void reg_field( bit_field_base *field ) { assert( field ); m_orderedFields.push_back( field ); } private: std::list<bit_field_base*> m_orderedFields; }; class bit_field_base { public: bit_field_base( bit_record &record ) { record.reg_field( this ); } } // ================================================= class DataRecord : public bit_record { public: DataRecord() : m_fld1( *this ), m_fld2( *this ), m_fld3( *this ) {} private: bit_field<1> m_fld1; bit_field<2> m_fld2; bit_field<3> m_fld3; };
|
|
|
42
|
Программирование / С/C++ / Re: чтение и запись битовых структур данных
|
: Апрель 27, 2021, 20:40
|
А давайте попробуем придумать, как удобно можно описывать и использовать такие битовые структуры. Вот один из возможных вариантов, так сказать для затравки (здесь пока все размеры полей задаются при компиляции): C++ (Qt) struct record { bit_field<1> flag; bit_field<4> mode; bit_field<9> address; bit_array pack() const { return ::pack( flag, mode, address ); } static record unpack( const bit_array &src ) { record result; ::unpack( src, result.flag, result.mode, result.address ); return result; } };
|
|
|
43
|
Программирование / С/C++ / Re: чтение и запись битовых структур данных
|
: Апрель 27, 2021, 11:50
|
kambala, поясните пожалуйста, как с таким требованием: Причем размер не всех полей известен на момент компиляции. Только точно известно, что не бывает полей шире, чем 64 бита.
вы планировали задавать размеры полей здесь? C++ (Qt) template<N, S> struct Field { bool v // if N == 1 int8_t v // if N <= 8 && S=signed uint8_t v // if N <= 8 && S=unsigned ... };
Устанавливать максимальным? Тогда теряется смысл с наглядностью.
|
|
|
44
|
Программирование / С/C++ / Re: чтение и запись битовых структур данных
|
: Апрель 27, 2021, 08:47
|
Отсюда частенько делается вывод что, мол, для всего , и "все уже давно написано" Вы уже много лет делаете этот ошибочный вывод. Это не так. Но есть много проектов с интересными идеями, которые могут подтолкнуть. Не нужно тащить к себе и пытаться использовать все подряд, а просмотр может оказаться полезным.
|
|
|
45
|
Программирование / С/C++ / Re: Итераторы
|
: Апрель 25, 2021, 11:05
|
Разве Вы не чувствуете что "порог сложности" давно уже пройден? Не нужно решение такой ценой, даже если оно 100% корректно.
Использование итераторов полностью разрывает порог сложности. И цена решения непомерна. Был бы умный человек, а о чем с ним поговорить - я найду, не переживайте Потому что на целом форуме желающих почти не осталось.
|
|
|
|
|