Наш магазин на eBay Наш магазин на AliExpress Наш канал в telegram

Рубрика «Теория»

OpenGL в C++ Builder. Основы

Введение Инициализация Примитивы Введение Все, наверное, понимают, что для работы с 2D и 3D графикой очень приятно пользоваться готовыми библиотеками. Они позволяют программисту избавиться от кучи адовых вычислений, типа обсчёта поворотов, освещений, пересечений, наложений и прочей мути. Все вышеперечисленные «умения» в таком случае реализуются в библиотеке, а нам остаётся только с помощью специальных стандартных функций …

Работа модуля USI в контроллерах AVR Tiny

Модуль USI — это некий суррогат, который предоставляет минимальные аппаратные ресурсы, необходимые для построения последовательного интерфейса. Тут всё как обычно, универсальный — значит никакой конкретный, соответственно, чтобы использовать USI для организации какого-то конкретного интерфейса, всё равно придётся сочетать его с программными средствами, однако такое сочетание позволит разгрузить процессор, значительно увеличить скорость передачи и уменьшить код, …

Web против SCADA. Часть 4. Продвинутая визуализация в web-браузере. АСУТП аквариума

В прошлый раз мы остановились на том, что я обещал вам показать возможности современных web-технологий в части продвинутой визуализации систем управления. Именно об этом сегодня и пойдёт речь. Зачем нужна красивая визуализация думаю никому объяснять не нужно, — она делает удобным и понятным взаимодействие системы управления и человека (оператора). В классических скадах для визуализации обычно …

Web против SCADA. Часть 3. Удалённое управление через web-браузер

Итак, с мониторингом мы в прошлый раз разобрались, поэтому сегодня будем решать задачу удалённого управления и конфигурирования. Как вы помните, для примера мы взяли в качестве контроллера шлюз UART-to-I2C/SPI/1W. Последнюю версию того, что у нас получилось (самодельный web-сервер на C++ Builder, позволяющий удалённо мониторить подключенные к шлюзу далласовские термометры и дискретные I/O), можно скачать вот …

Web против SCADA. Часть 2. Простой удалённый мониторинг через web-браузер

В прошлой части я обещал на простеньком примере показать возможность реализации АСУТП при помощи одних только web-технологий, без всяких SCADA-систем. Вот этим мы и займёмся в этой и последующих частях. Сегодня мы будем решать только задачу примитивного отображения данных в браузере и их динамического обновления, поэтому не будем пока трогать Apache и MySQL (это потом), …

Web против SCADA. Часть 1. Противостояние неизбежно, результат — предсказуем

В этом небольшом (частей в несколько) обзоре, я хочу, поделиться с Вами своим видением перспектив развития систем АСУТП, показать возможности современных web-технологий и, самое главное, поднять вопрос о том, действительно ли нам всё ещё нужно тратить огромные деньги на покупку такого, казалось бы важнейшего на сегодня, компонента АСУТП, как SCADA (а может даже и ещё …

Как написать и отладить dll в C++ Builder

Что такое Dll и зачем оно нам надо? Как написать Dll? Как подключить и использовать Dll в своей программе? Как отладить Dll? Что такое Dll и зачем оно нам надо? Ну, начнём с того, что Dll — это аббревиатура от слов Dynamic Link Library, что переводится как «динамически подключаемая библиотека». По-сути, это модуль, содержащий какой-то …

Строки (AnsiString) и символьные массивы (Char[], Char*) в C++ Builder

Введение Преобразование типов Некоторые полезные методы класса AnsiString Введение Итак, в С++ Builder строки можно задать тремя разными способами: через специальный класс AnsiString, через массив символов char[] и через указатель на первый символ массива char*: AnsiString String1="Hello!"; char *String2="Hello!"; char String3[]={’H’,’e’,’l’,’l’,’o’,’!’,’\0’}; char String4[7]={’H’,’e’,’l’,’l’,’o’,’!’,’\0’};AnsiString String1="Hello!"; char *String2="Hello!"; char String3[]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0′}; char String4[7]={‘H’,’e’,’l’,’l’,’o’,’!’,’\0′}; Задание строк String3 и String4 …

Поиск устройств на шине 1-Wire

Итак, сегодня мы рассмотрим две особые команды интерфейса 1-wire, предназначенные для поиска устройств на шине, а также алгоритм поиска устройств с помощью этих команд. Почему мы алгоритм именно рассмотрим, а не напишем? Да потому что он, вообще-то говоря уже написан. «Максимкины» инженеры накатали для этого специальный документ AN187, который лежит в сети в открытом доступе. …

Секреты оптимизации. Часть 2. Как инвертировать порядок бит в байте (алгоритмы и примеры на ассемблере)

Порой возникают ситуации, когда необходимо преобразовать байт таким образом, чтобы биты в нём располагались в обратном порядке. Сегодня я покажу несколько алгоритмов, позволяющих реализовать подобное преобразование. Способ 1. Самый медленный. Первое, что приходит на ум при возникновении подобной задачи, — это решить задачу в лоб. Создать цикл на 8 шагов и далее на каждом шаге, …