Algorithm Builder
Графическая среда программирования для разработки приложений под микроконтроллеры с архитектурой AVR.
Algorithm Builder представляет собой мощный инструмент, позволяющий провести полный цикл по созданию и проверке программного кода. Среда включает в себя: графический редактор, симулятор микрочипа для отладки алгоритма, компилятор и внутрисхемный программатор для загрузки кода в кристалл. Программа представляет собой отечественный аналог Ассемблера и подходит как для опытных разработчиков, так и для тех, кто только начинает осваивать прошивку устройств.
Создание алгоритмов может проходить на ассемблерном уровне или на макроуровне, основанном на оперировании многобайтными величинами с учетом знака. Причем макрооператоры включают в себя самые распространенные наборы команд.
Все разрабатываемые программы представляются в виде ветвящихся древовидных блок-схем, сети переходов отображены графически в векторной форме.
Основное окно позволяет размещать необходимые объекты и изменять их, вставлять, перемещать и т.п., как в любом графическом редакторе. В отдельной части экрана в виде таблицы формируется окно с перечнем всех констант и переменных, освобождая, таким образом, алгоритм от дополнительных записей. Для настройки параметров периферийных устройств (UART, SPI, ADC, таймеры) предусмотрен особый элемент с раскрывающимся оконным интерфейсом. Набор инструкций, обеспечивающих выбранные параметры работы устройства, самостоятельно формирует компилятор.
Кроме этого поддерживается автоперекодировка ANSI-кодов Windows в коды русскоязычного буквенно-цифрового ЖКИ. Программа поддерживает широкий спектр микроконтроллеров семейств: ATtiny, ATmega, AT90. Симулятор показывает все изменения, происходящие в различных регистрах, ячейках памяти и таймерах. Симуляция может выполняться пошагово (с заходом в функции или нет), до точки останова или до выделенного участка.
Для работы внутрисхемного программатора необходимо самостоятельно собрать простейший адаптер, через который микроконтроллер соединяется с COM-портом компьютера. Помимо этого есть возможность подключения через USB-разъем. Программатор подсчитывает количество перепрограммирований ядра и хранит счетчик в самом кристалле.
Режим мониторной отладки на ядре с помощью еще одного адаптера (все схемы имеются в документации к софту) позволяет отслеживать внутреннее состояние реального кристалла в любой точке останова. Для связи контроллера с компьютером по выбору пользователя выделяется всего один вывод.
Несмотря на свои явные достоинства, Algorithm Builder малоизвестен в радиолюбительской среде. Отчасти это объясняется тем, что до 2010 года среда визуального программирования была платной, бесплатная демоверсия ограничивала код до двух килобайт. Сегодня ПО распространяется абсолютно свободно. Папка с установленной программой может копироваться на другие носители и работать портативно. К софту прилагается руководство по использованию. В статье рассматривается ряд простейших работ и приведены схемы программаторов для USB- и COM- портов.
Авторами программы Algorithm Builder является группа отечественных программистов под руководством народного умельца Геннадия Леонидовича Громова из Нижнего Новгорода. Программа развивается и по сей день, добавляются новые функции, на сайте автора появилась небольшая подборка библиотек.
Интерфейс программы Algorithm Builder и руководство пользователя представлены на русском и английском языках.
Программное обеспечение работоспособно в операционных системах Microsoft Windows 95, 98, 2000, NT, ME, XP, Vista и 7.
Распространение программы: бесплатная
Официальный сайт Algorithm Builder: http://algrom.net
Скачать Algorithm Builder
Обсуждение программы на форуме
Карта сайта
Карта сайтаГлавная страница-Персональные страницы-Коновалов Дмитрий Александрович
| ||
NSP для строителей дома | Алгоритм маршрута NSP для указателей выходного дня
Алгоритм маршрута NSP ™
Доставьте ваше сообщение с помощью ваших стратегий знаков выходного дня.
Даже во время жилищного бума поиск и обнаружение нового дома определяется вашими программами выходного дня, включая указатели направления выходного дня (они же бекасы, бутлеги и бандиты), знаки для трейлеров и заносов и многое другое.
Алгоритм NSP Route Algorithm™ доставляет ваше сообщение через стратегию вывесок выходного дня, проводя покупателей через четыре этапа поиска.
1. Разработайте связь между цифровым маркетингом вашего бренда и вашим физическим присутствием на рынке.
2. Направьте аудиторию из исходных точек, таких как съезды с автомагистралей, торговые центры и ключевые перекрестки, в ваш офис.
3. Квалифицируйте аудиторию по маршруту с помощью фильтров, таких как цена, предложения и призывы к действию, уникальные торговые точки и т. д.
4. Эмоционально свяжите с квалифицированными покупателями с помощью стимулирующих сигналов образа жизни.
Поскольку потребители проводят больше времени на открытом воздухе и страдают от повышенного цифрового выгорания, осведомленность о наружной рекламе выросла на 45%.
Работают ли ваши программы жестов выходного дня?
Оптимизируйте вывески выходного дня!
Продуманно ли раскрывается история вашего бренда с момента первого появления указателя направления выходного дня до прибытия в офис продаж?
Свяжитесь с нами, и мы посмотрим.
Ваш единственный партнер по стратегическим решениям для вывесок
Гораздо больше, чем
Просто Красивые указатели направления выходного дня.«NSP позволяет нам сосредоточиться на продажах и маркетинге. Мы знаем, что всем остальным занимается эксперт».
Фил Корли, вице-президент по маркетингу, Crown Communities
Крупная консолидация брендов и другие экономические факторы подавляют маркетологов строительных компаний. Есть ли у вас время, чтобы сбалансировать стандарты бренда, деятельность в области цифрового маркетинга, вывески и ?
На протяжении более 40 лет строители домов в самых быстрорастущих сообществах Америки — от уважаемых региональных фирм до каждого из 30 крупнейших застройщиков страны — доверяли NSP выполнение следующих задач:
- Больше пешеходов . Вывески — это больше, чем просто расставление точек на карте. Наш подход к информационному дизайну и запатентованный алгоритм маршрутизации обеспечивают более правильного трафика в ваш офис продаж и модельные дома.
- Привлеченные покупатели . Наши решения для вывесок переносят ваше онлайн-маркетинговое присутствие в реальный мир, чтобы вдохновлять и мотивировать квалифицированных покупателей жилья.
- Ценное время. Благодаря профессиональному решению всех ваших задач в области вывесок — от выдачи разрешений за пределами площадки и стратегического картографирования до проектирования и изготовления — мы даем вам больше времени, чтобы вы могли сделать больше.
- И да, красивые вывески. С помощью NSP ваш офис продаж и пешеходные указатели, указатели направления вне офиса и программы указателей выходного дня помогут вашему подразделению добиться лучших результатов.
С NSP вы получаете гораздо больше, чем просто красивых снайперов, контрабандистов и бандитов. Вы получаете стратегические решения для вывесок, которые помогут вам продавать больше домов.
Познакомьтесь с нашими строителями домов.
Мы сотрудничаем со строителями домов в самых быстрорастущих сообществах Америки — от уважаемых региональных фирм до каждого из 30 крупнейших застройщиков страны.
pyqgis – Конструктор подключаемых модулей QGIS: все алгоритмы открываются при выборе одного алгоритма в QGIS
Я создал подключаемый модуль с двумя отдельными алгоритмами. Когда я открываю один алгоритм (либо в меню плагинов, либо с помощью кнопки вверху), второй также открывается автоматически. Однако, если я открою алгоритм на панели инструментов обработки, откроется только тот, который выбран. Как остановить одновременное открытие обоих алгоритмов? Это связано с деф выгрузкой?
класс PluginPlugin(объект):
по определению __init__(я, iface): self.provider = Нет self.iface = ифейс деф initProcessing(я): """Инициализировать провайдера обработки для QGIS >= 3. 8.""" self.provider = PluginProvider() QgsApplication.processingRegistry().addProvider(self.provider) деф initGui (я): self.initProcessing () icon = os.path.join(os.path.join(cmd_folder, 'logo.png')) self.action = QAction( QIcon(значок), u"Алгоритм 1", self.iface.mainWindow()) self.action.triggered.connect(self.run) self.iface.addPluginToMenu(u"&Plugin", self.action) self.iface.addToolBarIcon(self.action) self.action = QAction( QIcon(значок), u"Алгоритм 2", self.iface.mainWindow()) self.action.triggered.connect(self.run) self.iface.addPluginToMenu(u"&Plugin", self.action) self.iface.addToolBarIcon(self.action) деф выгрузить(сам): QgsApplication.processingRegistry().removeProvider(self.provider) self.iface.removePluginMenu(u"&Plugin", self.action) self.iface.removeToolBarIcon(self.action) деф запустить (самостоятельно): processing.execAlgorithmDialog("Плагин:Алгоритм 1") processing.execAlgorithmDialog("Плагин:Алгоритм 2") """Выполнить метод, который выполняет всю реальную работу"""
- qgis
- pyqgis
- qgis-plugins
Он делает именно то, что вы ему говорите, а не то, что вы от него хотите!
Вы создаете 2 идентичных объекта QAction
. Когда вы определяете второй self.action
, он переопределяет (перезаписывает) первый. Это действие связано с методом запуска, и в методе запуска вы запрашиваете открытие обоих диалогов, поэтому, конечно, оба диалога будут открыты.
Что вам нужно сделать, так это создать 2 разных действия, триггерные сигналы которых связаны с 2 разными методами слота.
Я не проверял это, но приведенный ниже модифицированный код должен работать для вас, хотя вы, вероятно, захотите создать другую иконку (у обоих действий здесь будет точно такая же иконка).
класс PluginPlugin(объект): def __init__(я, интерфейс): self.provider = Нет self.iface = ифейс деф initProcessing(я): """Инициализировать провайдера обработки для QGIS >= 3.8.""" self.provider = PluginProvider() QgsApplication.processingRegistry().addProvider(self.provider) деф initGui (я): self.initProcessing () icon = os.path.join(os.path. join(cmd_folder, 'logo.png')) self.action_1 = QAction( QIcon(значок), u"Алгоритм 1", self.iface.mainWindow()) self.action_1.triggered.connect(self.runAlg_1) self.iface.addPluginToMenu(u"&Plugin", self.action_1) self.iface.addToolBarIcon(self.action_1) self.action_2 = QAction( QIcon(значок), u"Алгоритм 2", self.iface.mainWindow()) self.action_2.triggered.connect(self.runAlg_2) self.iface.addPluginToMenu(u"&Plugin", self.action_2) self.iface.addToolBarIcon(self.action_2) деф выгрузить(сам): QgsApplication.processingRegistry().removeProvider(self.provider) self.iface.removePluginMenu(u"&Plugin", self.action_1) self.iface.removePluginMenu(u"&Plugin", self.action_2) self.iface.removeToolBarIcon(self.action_1) self.iface.removeToolBarIcon(self.action_2) защита runAlg_1 (сам): processing.execAlgorithmDialog("Плагин:Алгоритм 1") защита runAlg_2 (сам): processing.