Наш канал в telegram

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

Интерфейс USB. Часть 8. Программная реализация LS устройства USB.
Передача по USB произвольного буфера и пакетов подтверждения

В предыдущей части мы научились разбирать пакеты по типам и остановились на том, что определили три типа пакетов, которые предназначены нам и на которые нам нужно что-то отвечать. Учиться отвечать давайте начнём с общего, а не с частностей, а именно: научимся что-то отвечать хосту в принципе, то есть напишем подпрограмму, которая будет передавать хосту буфер …

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, который лежит в сети в открытом доступе. …