LinuxCNC Documentation

СИНТАКСИС

loadrt lcd fmt_strings=""Plain Text %4.4f\nAnd So on|Second Page, Next Inst""

ФУНКЦІЇ

lcd (потрібен потік з плаваючою комою).

Усі екземпляри РК-дисплея оновлюються однією й тією ж функцією.

ПІНИ

lcd.NN.out (u32) out

Вихідний потік байтів надсилається через цей контакт. Один символ надсилається під час кожного виклику потоку. Підтвердження зв’язку не передбачено.

lcd.NN.page.PP.arg.NN (float/s32/u32/bit) in

Вхідні контакти мають типи, що відповідають специфікаторам рядка формату.

lcd.NN.page_num (u32) in

Вибирає номер сторінки. Можна визначити кілька макетів, і цей штифт перемикається між ними.

lcd.NN.contrast (float) in

Спроба встановити контрастність РК-екрана за допомогою послідовності байтів ESC C, а потім значення від 0x20 до 0xBF (що відповідає Mesa 7I73). Значення має бути між 0 та 1.

ПАРАМЕТРИ

lcd.NN.decimal-separator (u32) rw

Встановлює десятковий роздільник, який використовується для чисел з плаваючою комою. Значення за замовчуванням — 46 (0x2E), що відповідає ".". Якщо потрібна кома, встановіть для цього параметра значення 44 (0x2C).

ОПИС

lcd takes format strings much like those used in C and many other languages in the printf and scanf functions and their variants.

Компонент був написаний спеціально для підтримки контролера підвісного типу Mesa 7I73, однак він може бути корисним для передачі даних на інші символьні пристрої, а оскільки формат виводу імітує формат терміналу ADM3, його можна використовувати для передачі даних на послідовний пристрій. Можливо, навіть до справжнього ADM3. Строки містять суміш текстових значень (які відображаються безпосередньо), «екранованих» кодів форматування та числових дескрипторів формату. Детальний опис кодів форматування див.: https://en.wikipedia.org/wiki/Printf .

Компонент можна налаштувати для відображення необмеженої кількості сторінок різного форматування, які можна вибрати за допомогою HAL-піну.

Ескейповані коди

  • \n Вставляє символ очищення до кінця, повернення каретки та переведення рядка. Це все одно призведе до переведення рядка та очищення, навіть якщо відбулося автоматичне перенесення (lcd не має інформації про ширину дисплея lcd). Для друку в крайньому правому стовпці необхідно дозволити формату переносити та опустити код \n.

  • \t Вставляє табуляцію (насправді 4 пробіли в поточній версії, а не справжню табуляцію).

  • \NN вставляє символ, визначений шістнадцятковим кодом NN. Оскільки символ «,» використовується в рядку формату для розділення екземплярів LCD, він повинен бути представлений символом \2C в рядку формату (десятичний роздільник обробляється по-іншому).

  • \\ Вставляє літерал \.

Числові формати

lcd differs slightly from the standard printf conventions. One significant difference is that width limits are strictly enforced to prevent the LCD display wrapping and spoiling the layout. The field width includes the sign character so that negative numbers will often have a smaller valid range than positive. Numbers that do not fit in the specified width are displayed as a line of asterisks (**********).

Кожен формат починається із символу "%". (Для буквального % використовуйте "%%"). Відразу після % можна використовувати такі модифікатори:

  • " " (пробіл) Доповніть число пробілами до зазначеної ширини. Це значення за замовчуванням і не є абсолютно необхідним.

  • "0" Доповнює число цифрою 0 до заданої ширини.

  • "+" Примусове відображення символу + перед додатними числами. Цей символ (як і знак -) з’являтиметься безпосередньо ліворуч від цифр для чисел із пробілами та в крайньому лівому положенні для чисел із нулями.

  • «1234567890» Числове значення (крім початкового 0 вище) визначає загальну кількість символів, що відображаються, включаючи десяткову крапку та знак. Хоча це число може містити стільки цифр, скільки потрібно, максимальна ширина поля становить 20 символів. Внутрішня точність типу даних «double» означає, що при введенні більше 14 цифр можуть з’являтися помилки в найменш значущих цифрах. Типи даних цілого числа ніколи не заповнюють більше 10 десяткових цифр.

Після специфікатора ширини повинен йти специфікатор десяткового знака. Це може бути тільки крапка (.), оскільки кома (,) використовується як роздільник екземплярів. Наразі lcd не використовує інформацію про локаль для визначення правильного роздільника, але параметр HAL decimal-separator можна використовувати для вибору будь-якого бажаного роздільника.

Після десяткового роздільника має бути число, яке визначає, скільки знаків після коми відображати. Цей запис ігнорується у випадку цілочисельних форматів.

Усі вищезазначені модифікатори є необов’язковими, але для визначення десяткової точності десяткова кома має передувати точності, наприклад, як у "%.3f". Десяткова точність за замовчуванням дорівнює 4.

Підтримувані числові формати:

  • %f %F (for example, %+09.3f): These create a floating-point type HAL pin. The example would be displayed in a 9-character field, with 3 places of decimals, as a decimal separator, padded to the left with 0s and with a sign displayed for both positive and negative. Conversely a plain %f would be 6 digits of decimal, variable format width, with a sign only shown for negative numbers. Both %f and %F create exactly the same format.

  • %i %d (For example %+ 4d): Creates a signed (s32) HAL pin. The example would display the value at a fixed 4 characters, space padded, width including the "+" giving a range of +999 to -999. %i and %d create identical output.

  • %u (for example %08u): Creates an unsigned (u32) HAL pin. The example would be a fixed 8 characters wide, padded with zeros.

  • %x, %X: Creates an unsigned (u32) HAL pin and displays the value in Hexadecimal. Both %x and %X display capital letters for digits ABCDEF. A width may be specified, though the u32 HAL type is only 8 hex digits wide.

  • %o: Creates an unsigned (u32) pin and displays the value in octal representation.

  • %c: Creates a u32 HAL pin and displays the character corresponding to the value of the pin. Values less than 32 (space) are suppressed. A width specifier may be used, for example %20c might be used to create a complete line of one character.

  • %b: This specifier has no equivalent in printf. It creates a bit (boolean) type HAL pin. The b should be followed by two characters and the display will show the first of these when the pin is true, and the second when false. Note that the characters follow, not precede the "b", unlike the case with other formats. The characters may be "escaped" Hex values. For example "%b\FF " will display a solid black block if true, and a space if false and "%b\7F\7E" would display right-arrow for false and left-arrow for true. An unexpected value of E indicates a formatting error.

Pages: The page separator is the "|" (pipe) character (if the actual character is needed then \7C may be used). A "Page" in this context refers to a separate format which may be displayed on the same display.

Instances: The instance separator is the comma. This creates a completely separate lcd instance, for example to drive a second lcd display on the second 7I73. The use of comma to separate instances is built in to the modparam reading code so not even escaped commas "\," can be used. A comma may be displayed by using the \2C sequence.

АВТОР

Енді П’ю

ЛІЦЕНЗІЯ

GPL