воскресенье, 27 декабря 2015 г.

mikroPascal: правильно выводим строки через Lcd_Out

Комментарий к данной заметке

Общеизвестное больное место mikroPascal – это его библиотека, а точнее её самый «знаменитый» модуль Lcd. А еще точнее, функция вывода строк Lcd_Out. 

Вспоминаем: везде упоминается, что строки у них C-шные и закрываются символом Chr(0). И всё. Хотя нет, не всё – дальше пробуем выводить строки через Lcd_Out и... почти наверняка ловим лулзы. Далее следуют: ругань, проклятия, написание собственных Lcd-костылей, крики на весь интернет «Осторожно, говно!» и т.д.

Хотя проблема тут вовсе не в библиотеке, а в крайне плохом качестве поставляемой документации. Спасибо за весь этот когнитивный диссонанс следует говорить техническим горе-писакам из mikroElektronika. Нигде, ни в одном из примеров у них не показана правильная подготовка строки к выводу на дисплей

Настала пора исправить эту ошибку:

const           
  tSol_banner  : string[16] = 'Weller WSP/WP-80';
...
var
  Out_Buffer : string[17];
...
  Out_Buffer := tSol_banner + '';
  Lcd_Out(1,1,Out_Buffer);

Что мы здесь делаем? Мы просто явно закрываем выводимую строку «пробкой» (Chr(0) или ''; если строка длинная – просто ставим «пробку» в нужную позицию строки), по которой библиотечная функция будет ловить окончание строки вывода. Профит!!!

И это вовсе не единичный пример. Я раньше уже упоминал про функцию PWM_Stop – в итоге техсаппорт mikroElektronika ушел от обсуждения в достаточно грубой манере, в общем-то.

ps. Честно говоря, продавать за $250 программный продукт, являющийся (как ни крути) инструментом разработки, с таким качеством документации и сопровождения – это сверхнаглость. Я хорошо помню, например, как и в каком виде продавался компанией Borland её пакет Turbo Pascal 5.5 Professional – там были компиляторы Turbo Pascal, Turbo Assembler среда разработки, отладчик, профилировщик и полный комплект роскошной документации. Стоил же он, если не ошибаюсь, примерно тех же денег (учитывая, разумеется, падение покупательной способности доллара за прошедшие 20 лет).

Комментариев нет:

Отправить комментарий

Ваш комментарий откроется после проверки и подтверждения.
Благодарю за понимание необходимости проверки!