SCADA, Modbus и представление вещественных чисел

На нефтебазе, использующей SCADA Schneider Vijeo Designer (версии 6.2.1), установили уровнемеры системы СТРУНА+. (а точнее, поменяли). Была задача обеспечить сбор данных с новых уровнемеров в имеющуюся SCADA.
 
Новые уровнемеры используют протокол “Modbus STRUNA+” (перепиленный Modbus). Также, изначально для проверки связи был использован устаревший, но более простой, протокол “Кедр”.
 

Read more “SCADA, Modbus и представление вещественных чисел”

iText 5.5 установка шрифта для кириллицы

Для создания PDF есть библиотека iText, написанная на Java, начиная с версии 5 распространяющаяся по лицензии AGPL.

Для создания отчета в виде таблицы для Android я использовал версию 5.5.10:

Но с отображением кириллицы есть нюанс. Нужно загрузить шрифт (из assets, например) и правильно его установить. Read more “iText 5.5 установка шрифта для кириллицы”

Загрузка и отображение SVG-картинок в Android

О преимуществах использования SVG формата изображений написано, например, здесь. Но на данный момент в Android SDK нет стандартного функционала, чтобы можно было эти картинки динамически загрузить в приложение, имея просто путь к файлу на SD-карте или в памяти телефона. Но есть сторонние решения. Read more “Загрузка и отображение SVG-картинок в Android”

Декомпиляция .apk (Android)

Была задача глянуть кусок кода одной приложухи на GooglePlay, все оказалось просто.
 
Получить apk из GooglePlay, даже не устанавливая приложение, можно так:
1) Воспользоваться сервисом apk-dl.com, заменив в Url приложения на GooglePlay часть адреса “play.google” на “apk-dl”, чтобы получилось так:
https://apk-dl.com/store/apps/details?id=com.app.name
Но скачать не получилось, т.к. бесконечно смотреть на надпись “Download is in progress…” не захотелось.
2) Или тут (тоже не получилось, написало “Ops, APK Downloader got access denied when trying to download, Please try again and contact us.”)
3) Или тут (тут все гуд!)
 
А вот и инструкция по декомпиляции (вот оригинал, спасибо):

Read more “Декомпиляция .apk (Android)”

Принудительный вызов CanExecute() на кнопках с командой (WPF)

При использовании команд в WPF бывает такое, что элемент (кнопка) остается неактивной не смотря на то, что e.CanExecute=true  до тех пор, пока не получит фокус.

Подробнее проблема описана здесь.

А описание простого решения на русском здесь: Read more “Принудительный вызов CanExecute() на кнопках с командой (WPF)”

Замена содержимого кнопки при деактивации (WPF)

Чтобы содержимое кнопки (надпись/картинка) при изменении ее активности (IsEnabled) менялось, можно добавить дополнительное свойство DisabledContent и не следить за состоянием кнопки “вручную”. Read more “Замена содержимого кнопки при деактивации (WPF)”

Одинаковый ресурс Image в нескольких элементах (WPF)

При объявлении одного ресурса картинки для нескольких элементов, картинка отображалась только на первом элементе. И приходилось лепить несколько одинаковых ресурсов с разными ключами. Указание StaticSource/DynamicSource или объявление ресурса во внутреннем контейнере (Grid и др.) не спасало ситуацию. Read more “Одинаковый ресурс Image в нескольких элементах (WPF)”

AsyncItemsTask – обработчик заданий в отдельном потоке (C#)

Небольшая шаблонная конструкция для обработки “тяжелого” кода в отдельном потоке и уведомления о прогрессе выполнения основного потока программы.

Да, я отдаю себе отчет в том, что такое может и/или должно решаться иначе в мире .Net, но.. фиг с ним. Read more “AsyncItemsTask – обработчик заданий в отдельном потоке (C#)”

Эволюция этого сайта

1. bondspace.ru

Первоначально созданию своего сайта я обязан предмету ТАОИ в технаре. Было задание создать сайт-портфолио. Мне эта затея понравилась, но на этом этапе я проект до ума не довел (как и все, что создается в техникуме).
Нам даже предоставили самоучитель (верстку сайта преподавать никто не собирался) по сайтостроению, и помнится, довольно много народу пошло по пути написания еще одного сайта-клона. Позже, на следующем витке развития проекта, я ужаснулся тому коду, который мы так рьяно переписывали один в один из обучающего ролика, сами не зная что. Read more “Эволюция этого сайта”

Наборы чисел (Android)

Нужно было разработать приложаху для хранения, добавления и поиска цепочки чисел.

Есть возможность отметки всей цепочки чисел или отдельных чисел в избранное.

При добавлении/редактировании цепочки происходит проверка на уникальность.

Google Play: https://play.google.com/store/apps/details?id=com.gee12.digits

Read more “Наборы чисел (Android)”