zephyr/samples/subsys/display/cfb_shell
..
boards
src
CMakeLists.txt
README.rst
prj.conf
sample.yaml

README.rst

.. zephyr:code-sample:: cfb-shell-sample
   :name: Character Framebuffer shell module
   :relevant-api: monochrome_character_framebuffer

   Use the CFB shell module to interact with a monochrome display.

Overview
********
This is a simple shell module that exercises displays using the Character
Framebuffer subsystem.

Building and Running
********************

Build the sample app by choosing the target board, for example:

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/display/cfb_shell
   :board: reel_board
   :goals: build


Shell Module Command Help
=========================

.. code-block:: console

         cfb - Character Framebuffer shell commands
         Options:
                 -h, --help  :Show command help.
         Subcommands:
                 init        :[none]
                 get_device  :[none]
                 get_param   :<all, height, width, ppt, rows, cols>
                 get_fonts   :[none]
                 set_font    :<idx>
                 invert      :[none]
                 print       :<col: pos> <row: pos> <text>
                 scroll      :<dir: (vertical|horizontal)> <col: pos> <row: pos>
                              <text>
                 clear       :[none]

**init**: should be called first to initialize the display.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb init
         Framebuffer initialized: SSD16XX
         Display Cleared

**get_device**: prints the display device name.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb get_device
         Framebuffer Device: SSD16XX

**get_param**: get the display parameters where height, width and ppt
(pixel per tile) are in pixels and the number of rows and columns. The row
position is incremented by a multiple of the ppt.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb get_param all
         param: height=120
         param: width=250
         param: ppt=8
         param: rows=15
         param: cols=250

**get_fonts**: print the index, height and width in pixels of the static
defined fonts presented in the system.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb get_fonts
         idx=0 height=32 width=20
         idx=1 height=24 width=15
         idx=2 height=16 width=10

**set_font**: choose the font to be used by passing the font index. Only one
font can be used at a time.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb set_font 0
         Font idx=0 height=32 width=20 set

**invert**: invert the pixel color of the display.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb invert
         Framebuffer Inverted

**print**: pass the initial column and row positions and the text in
double quotation marks when it contains spaces. If text hits the edge
of the display the remaining characters will be displayed on the next line. The
previous printed text will be overwritten.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb print 60 5 ZEPHYR

**scroll**: pass the scroll direction, vertical or horizontal, the initial
column and row positions, and the text to be displayed in double quotation
marks when it contains spaces. If the text hits the edge of the display, the
remaining characters will be displayed in the next line. The text will scroll
until it hits the display boundary, last column for horizontal and last row
for vertical direction. The text passed with the scroll command will be moved
vertically or horizontally on the display.


Command example (reel_board):

.. code-block:: console

         uart:~$ cfb scroll vertical 60 5 ZEPHYR

**clear**: clear the display screen.

Command example (reel_board):

.. code-block:: console

         uart:~$ cfb clear
         Display Cleared