Релиз Qt 5.9

Posted on 2017-06-08 12:19:19

Работая над проектом стал замечать в выдаче Google документацию на Qt5.9. Оказалось, что 31 мая подоспела новая версия фреймворка Qt 5.9.0, всего после полугода от предыдущей Qt5.8.0, что достаточно быстро. 

На следующий же день я установил новую версию. Изменений не так много, главным образом затронуты кэширование qml, производительноть qml, исправление багов.

Вот касательно багов я бы и хотел поговорить. Странно работает QML Slider и RangeSlider. При изменении положения ползунка мышкой сначала ползунок перемещается вслед за мышкой, но потом залипает и не реагирует на мышку. Нужно опьять кликнуть на ползунок, и ситуация повторяется. Конечно, в любом продукте есть баги. Но подобные, на примере выше описанного, которые лежат на поверхности, приписывают продукту ярлык сырости, недоверия. Ведь я потратил время на установку новой версии, работу с ним, что бы выяснить, что Qt 5.9 мне не подходит, и придется использовать старую Qt 5.8.0. Раньше, когда выходила новая версия фреймворка я с уверенностью ее ставил, теперь же после очередного обновления мне нужно ждать пока исправят элементарные баги?

Почему Qt 5.9 вышла так быстро? Почему нет Qt 5.8.1, Qt 5.8.2, как было с Qt 5.7.0 и Qt 5.7.1? Неужели в компании завелись "'эффективные менеджеры", которые думают, что пользователям нужны большие циферки и обновления чуть ли не каждый месяц?

Формирование двухполярного напряжения питания из однополярного

Posted on 2017-05-26 21:37:36

Зачастую для работы многих схем требуется двухполярное напряжение питания - однополярное с средней точкой. Т.е. когда за "Землю" принимается не минусовой вывод источника питания, а ровно половина выходного напряжения. Тогда получается относительно земли два напряжения +U и -U равной, по модулю величины.

Характерной особенностью правильного двухполярного источника питания является равные величины без знака +U и -U ВСЕГДА - если посмотреть двухлучевым осциллографом форму выходных напряжения, то пульсации сетевой частоты, а она всегда есть в реальном источнике питания, симметричны. Под влиянием недостаточной фильтрации пульсаций при увеличении +U, на столько же уменьшается и -U, для выполнения условия модуль(+U) = модуль(-U). После выше изложенного у вас закрался ответ на вопрос, зачем применяют двухполярные источники питания?

Ответ прост - для устранения влияния пульсаций питающего напряжения. Как бы мы не пытались спроектировать хороший фильтр с максимальныи КПД, сглаживающий пульсации после выпрямителя, например увеличением номиналов электролитических конденсаторов, применением активных фильтров на транзисторах, существуют устройства, для которых полученные значения уровня пульсаций все равно не приемлемы. Например приемники прямого преобразования, в состав которого входит усилитель низкой частоты с коэффициентом усиления ~ 100000, т.е. на его вход подается сигнал с уровнем ~ 1..10мкВ. 

Типичным потребителем двухполярного напряжения питания являются операционные усилители. Правда их можно включить в схему и из однополярным напряжением питания, но в этом случае теряются приемущества двухполярного. В любом даташите на ОУ можно найти параметр "Supply-voltage rejection ratio", значение которое находится в пределах обычно 80 .. 100 дБ. Выражает соотношение изменение напряжение питания к изменению напряжения на выходе ОУ, выраженное в децибелах. Проще говоря коэффициент подавления пульсаций напряжения питания. Коэффициент подавления пульсаций фильтра однополярного источника питания значительно ниже.

Собственно схема преобразования однополярного напряжения в двухполярное представлена ниже. Это один из возможных вариантов. Популярна так же схема с двумя диодными мостами и одной вторичной обмоткой трансформатора. Но в моем устройстве трансформатор вынесен из корпуса, и на вход подается уже выпрямленное напряжение, так что ...  

формирование двухполярного питания из однополярного

Транзисторы Q1 и Q2 BD139 BD140 следует заменить на другие с достаточным коэффициентом уситения по току h21э. Я применил BDX33 BDX34 дарлингтона с значением 750. Операционный усилитель можно применять практически любой. Например LM358. В данном случае я применил который валялся под рукой - NE5532. Он сдвоенный, как видно из схемы. Триммером RV1, который должен быть многооборотным, выставляем половину напряжения питания.

Версионность  UnoSDR

Posted on 2017-05-19 19:52:39

Строковый формат версии приложения на примере следующий - v1.0.9 Старшая цифра имеет больший вес. Расшифровывается строковой формат как v9 b1.0 - версия приложения номер 9, branch или ветка 1.0 , или v1.0.9 - сокращенная запись. Незначительные изменения увеличивают порядковый номер версии, например с v9 b1.0 на v10 b1.0 . Точность номера версии до единицы. Кроме того, если следующая версия не предполагает никаких изменений, кроме экстренного баг - фикса, номер версии не меняетя, а добавляется буква по алфавиту, например: v10a b1.0 ,   v10b b1.0 и т.д.

Значительные изменения в функционале тянут за собой изменение десятих долей номера бранча, например было v10 b1.0 стало v11 b1.1 Точность номера бранча до десятых. Глобальные изменения программы влекут за собой изменение номера бранча на единицу. Например было v11 b1.1 стало v1 b2.0 - как видно, при этом сбрасывается версия приложения до единицы.

 

Qt Creator переключение между файлами класса исходника и хедера

Posted on 2017-05-14 23:10:19

Что мне нравится в C++, так это разделение на файлы исходников и хедеров. Это очень помогает, когда нужно разобратся в незнакомом проекте. Файл хедера, как бы скелет класса. Если нужно посмотреть реализацию конкретного метода, просто переключаешься на файл исходников. 

Если ваш проект в Qt Creator  небольшой, то скорей всего у вас открыты ветки дерева исходников и хедеров. Но по мере разростания проекта, такая избыточность начинает мешать, тем более, что структура хедеров повторяет структуру исходников. В таком случае дерево хедеров лучше закрыть, а переключение между исходниками и хедерами осуществлять клавишей F4

Проверено, удобно! :)

First 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Last