Tag Archives: Qt

Визуализатор. Подновление 3

Добавил HEX-отображение содержимого памяти по указателю мышинного курсора. Внешне подновление выглядит так:

Сейчас попробую дописать код чтобы подкрашивать клеточки. Если сделаю, то скриншот прилеплю сюда же.

Читать далее

Визуализатор. Подновление 2

Добавлено несколько способов отображения

1. Цветное изображение байтов (собственно, оно и было):

Читать далее

Визуализатор. Подновление 1

Изменений не много. Из визуальных изменений: подписана карта памяти, добавлены кнопки для задания базового адреса.

Из back-end: доработан алгоритм опроса микроконтроллера.

Читать далее

Визуализатор

Эта программка предназначена для (моей текущей) конкретной цели — графического отображения содержимого памяти микроконтроллера.

Проблема

Микроконтроллер, с которым я сейчас кувыркаюсь, STM32F429 — достаточно «жирный». На него у меня накатана FreeRTOS. На ней трудится LwIP. Ещё выше — UPC UA. И на самом верху — бизнес-логика — то, ради чего этот программный Франкенштей затевался.

Программный стек (FreeRTOS + LwIP + OPC UA) пока не работает. Какие-то непонятные срывы, падения в  HardFault и прочие радости разработчика. Понятно, что хотелось бы видеть динамическую картину распределения памяти как-то всю сразу.

Отсюда и появилась идея визуализации.

Читать далее

Зарядник Ni-Cd и Ni-MH аккумуляторов

Неделю назад я сделал «умный» зарядник. Теперь получаю логи разряда-заряда аккумуляторов. Обсчитываю. Рисую графики. Зарядник работает, положительный результат есть. И даже, казалось бы, совсем убитый старый аккумулятор, пролежавший без дела несколько лет, сумел вернуть с «того света».

Ni-MH аккумулятор типа АА 2500 мА*час NoMEM

Читать далее

Python и Qt

Я преднамеренно не указал версии продуктов.

У меня до сих пор в ходу и «второй» и «третий» Питоны. Я не такой уж сильно мудрый. Я не вижу особой разницы между этими двумя Питонами. Мне без разницы для какой версии Питона писать прогу. Я ещё не сталкивался с какими-либо принципиальными ограничениями при создании программ под «вторым» Питоном. Наверно мои программы не такие уж крутые, чтобы нарываться на жёсткую необходимость использования Pithon-3.x

Читать далее

Qt и однослойная катушка индуктивности

Выполняя последний заказ — модернизация усилителя мощности — я столкнулся с необходимостью рассчитать и изготовить катушку индуктивности.

Ничего необычного в этой катушке нет. Обычная катушка, без сердечника, установлена на выходе усилителя. Индуктивность катушки — 5 мкГн. Собственно, задача уже выполнена. Всё посчитано, изготовлено, смонтировано. испытано. Всё работает отлично, вопросов нет.

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

По большому счёту ни в методике расчёта, ни в написании программы нет никакого ноу-хау. Всё давным давно известно. Поэтому тем людям, кто умеет и то, и другое, — им читать эту статью будет не интересно. А остальных я приглашаю под кат.

Читать далее

Детектор фальшивых флешек. Окно выбора

Продолжаю прикручивать в прогу функциональность.

Теперь можно выбрать флешку из подключенных:

ffd-select-1

Прога показывает, что она нашла четыре флешки. (Так оно и есть на самом деле, я воткнул в комп четыре штуки.)

Читать далее

Python, последовательный порт, нуль-модемный кабель и Qt

Продолжим разговор про создание многопоточных программ, начатый в предыдущей теме «Python, последовательный порт и нуль-модемный кабель» http://wp.me/p1H7g0-1nb.

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

На самом деле я использовал для отладки программ не последовательный порт, а USB-интерфейс, в который был «завёрнут» последоватеьный порт. Компы соединялись через два конвертера USB-UART, подключенные к USB-портам. Читать далее

PyQt. Автоматическая генерация кода

Вообще в программировании принято большие и сложные программы разбивать на несколько функциональных уровней.

Так например, различают уровень представления (иногда его называют фронт-энд), уровень бизнес-логики (бэк-энд), уровень данных. (Слово «бизнес» следует понимать не в узком смысле только экономики, а более широко. «Бизнес» — это производство чего-то, это какое-то дело. То есть, это именно «то», ради чего затеялась движуха.)

Разбивка программы на уровни может быть самая разнообразная. Но что это дает? Прежде всего это дает гибкость в реализации. Так же следует отметить, что разные уровни могут писаться параллельно разными разработчиками, что ускорит выход программы в свет. Ну и не надо забывать про принцип «разделяй и властвуй»!

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

И наоборот, ваш коллега пишет уровень представления. Его не волнуют вопросы как работает программа, как она вычисляет Фурье-преобразование. Он получает готовые данные, и его задача — отобразить их на экране в заданном виде.

Вы улавливаете суть разделения программы на уровни?

Читать далее