Здравствуйте, уважаемые форумчане!
Хочу сделать небольшой анонс новых прошивок.
Думаю, что все кто работали с СПК неоднократно сталкивались с проблемой, что текст, написанный с среде программирования, отличается от того, что реально выводится на экран. И зачастую это приводило к лишним танцам с бубном и оптимизации визуализации.
Почему так происходит?
Когда мы создаем проект в среде CODESYS, то делаем мы это в ОС WINDOWS. И среда использует все шрифты, которые установлены в системе. Проект, который запускается в СПК уже использует шрифты которые есть в контроллере. А как вы уже можете догадаться в СПК используется операционная система Linux. И если шрифт, который был применен в проекте в СПК нет, то LINUX будет сам подбирать шрифт, который нужно применить. Отсюда вытекает разница в начертаниях на ПК и на СПК.
Продвинутый пользователь может сразу сказать, ну и в чем проблема? Положите в СПК шрифты из ОС WINDOWS и будет счастье.
Но не все так просто. Я постараюсь сразу указать те ограничения, с которыми ми столкнулись при решении данной задачи:
1. В разных редакциях WINDOWS многие встроенные шрифты сильно различаются визуально и версионно. Ярким примером является ARIAL. Но проблема усложняется, тем, что WINDOWS не дает перезаписывать системные шрифты. Соответственно многие системные шрифты мы не можем использовать в СПК, т.к. если мы сделаем клиентский инсталлятор шрифтов, то при установке они не перезапишутся. И опять будет различие между начертанием на ПК и СПК.
2. В текущих прошивках СПК 3.9хх в LINUX организована поддержка шрифтов TTF. Соответственно другие шрифты применять нельзя.
3. При настройке визуализации мы ставим галку использовать UNICODE. Это означает, что используемые шрифты должны поддерживать отображение символов UNICODE и более того шрифты должны содержать подгруппы символов русского языка. Многие шрифты, которые мы хотели использовать изначально такой поддержки не имеют.
4. Те кто хоть как то сталкивались с мощными графическими редакторами или программами для подготовки типографии знают, что у шрифтов может быть огромное количество начертаний. Думаю что большинству станет понятно, если я скажу, что под начертанием имеется ввиду - курсив, обычный, жирный. Но у современных шрифтов есть и множество дополнительных начертаний, как ультра жирный, сжатый, сверхтонкий и другие. Linux зачастую эти дополнительные начертания не понимает.
Мы долго подбирали разные шрифты и решили остановиться на следующих пяти:
- DS Cristal
- PF Agora Serif Pro
- PF DinDisplay Pro
- Tahoma
- Times New Roman
Поддержка шрифтов будет осуществлена в СПК207[М02], СПК207[М04] в прошивках 3.955. Прошивки уже собраны, перед выкладкой на сайт проходят полное тестирование. Релиз сделаем в течении недели.
Также шрифты будут поддержаны в новых экспериментальных прошивках с версии 4.001. Версия появится 10 июня.
В СПК1хх поддержку осуществим в течении месяца, из за высокой загруженности.
В течении недели мы обновим документ по визуализации, в нем будет подробно описаны способы работы со шрифтами:
- Применение в проекте
- Создание своих стилей визуализации
Что еще планируем сделать (только в прошивках 4.ххх):
- Ограничить список шрифтов в TARGET файле
- Реализовать возможность в СПК поддержки клиентских шрифтов
- Поддержка типов шрифтов OTF, и др.
Ну и напоследок небольшое видео (проект, тестирующий все поддержанные шрифты и начертания, и обновленный конфигуратор с шрифтом PF DinDisplay Pro):