# Передача команды и параметров по шине SPI

При передаче пакета
1) Byte команды.
2) Byte[] массив параметров.
3) Byte контрольной суммы.

# Команды:

Условные обозначения:
|Обозначение|Описание|
|:-:|-|
|\||ИЛИ (значение слева или значение справа)|
|a<sub>1</sub>, a<sub>2</sub> , ..., a<sub>n</sub>|Диапазон (одно значение из диапазона)|
|\[...]|Несколько подобных значений|
|СxRC|Байт контрольной суммы|

***

## Заполнение экрана белым или черным цветом

**Команда:**

    0x01    

 **Параметры и данные:**
|Color|
|-|
|0x00\|0x01|

  **Пример:**
|Color|Описание|Полная команда|
|-|-|-|
|0x00|Заполнить экран черными пикселями|0x01 0x00 CxRC|
|0x01|Заполнить экран белыми пикселями|0x01 0x01 CxRC|

***

## Выбор строки на экране

**Команда:**

    0x02    

 **Параметры и данные:**
|Page|
|-|
|0x00,0x01,...,0x07|

  **Пример:**
|Page|Описание|Полная команда|
|-|-|-|
|0x03|Выбрать 3 строку|0x02 0x03 CxRC|

***

## Добавление нового символа

**Команда:**

    0x03    

 **Параметры и данные:**
|Symbols|
|-|
|[0x01,0x02,...,0x16]|

  **Пример:**
|Symbols|Описание|Полная команда|
|-|-|-|
|0x0e 0x10|Добавить символы 5 и 7|0x03 0x0e 0x10 CxRC|

**Описание:**

     " " - 0x00
     "(" - 0x01
     ")" - 0x02
     "*" - 0x03
     "+" - 0x04
     "," - 0x05
     "-" - 0x06
     "." - 0x07
     "/" - 0x08
     "0" - 0x09
     "1" - 0x0a
     "2" - 0x0b
     "3" - 0x0c
     "4" - 0x0d
     "5" - 0x0e
     "6" - 0x0f
     "7" - 0x10
     "8" - 0x11
     "9" - 0x12
     ":" - 0x13
     "<" - 0x14
     "=" - 0x15
     ">" - 0x16

***

## Удаление символов

**Команда:**

    0x04    

 **Параметры и данные:**
|Amount|
|-|
|0x01,0x02,...,0xFF|

  **Пример:**
|Amount|Описание|Полная команда|
|-|-|-|
|0x40|Удалить 64 символа|0x04 0x40 CxRC|

***

## Поставить пиксель белого или черного цвета по координатах 

**Команда:**

    0x05

**Параметры и данные:**
|X|Y|Color|
|-|-|-|
|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x00 \| 0x01|

**Пример:**
|X|Y|Color|Описание|Полная команда|
|-|-|-|-|-|
|0x24|0x04|0x01|Поставить белый пиксель в координатах x-36; y-4|0x05 0x24 0x04 0x01 CxRC|
|0x0B|0x16|0x00|Поставить черный пиксель в координатах x-11; y-22|0x05 0x0B 0x16 0x00 CxRC|

***

## Нарисовать линию по координатам, белого или черного цвета

**Команда:**

    0x06

**Параметры и данные:**
|X|Y|X2|Y2|Color|
|-|-|-|-|-|
|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x00 \| 0x01|

**Пример:**
|X|Y|X2|Y2|Color|Описание|Полная команда|
|-|-|-|-|-|-|-|
|0x02|0x02|0x05|0x05|0x01|Нарисовать линию белого цвета в координатах: начало x-2 , y-2; конец x-5, y-5 |0x06 0x02 0x02 0x05 0x05 0x01 CxRC|

***

## Нарисовать круг белого или черного цвета по координатам и радиусу

**Команда:**

    0x07

**Параметры и данные:**
|X|Y|R|Color|Fill|
|-|-|-|-|-|
|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x01,0x02,...,0xFF| 0x00 \| 0x01| 0x00 \| 0x01|

**Пример:**
|X|Y|R|Color|Fill|Описание|Полная команда|
|-|-|-|-|-|-|-|
|0x03|0x09|0x05|0x01|0x01|Нарисовать заполненный белый круг c координатами центра x-3, y-9 и радиусом 5|0x07 0x03 0x09 0x05 0x01 0x01 CxRC
|0x03|0x09|0x05|0x01|0x00|Нарисовать не заполненный белый круг c координатами центра x-3, y-9 и радиусом 5|0x07 0x03 0x09 0x05 0x01 0x00 CxRC|
|0x03|0x09|0x05|0x00|0x01|Нарисовать заполненный черный круг c координатами центра x-3, y-9 и радиусом 5|0x07 0x03 0x09 0x05 0x00 0x01 CxRC|

***

## Нарисовать прямоугольник белого или черного цвета по координатам 

**Команда:**

    0x08

**Параметры и данные:**
|X|Y|Widht|Height|Color|Fill|
|-|-|-|-|-|-|
|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x00,0x01, … ,0x10| 0x00 \| 0x01| 0x00 \| 0x01|

**Пример:**
|X|Y|Widht|Height|Color|Fill|Описание|Полная команда|
|-|-|-|-|-|-|-|-|
|0x05|0x0A|0x0A|0x0F|0x01|0x01|Нарисовать белый заполненный прямоугольник c координатами x-5, y-10 и размерами по ширине 10, по высоте 15 |0x05 0x0A 0x0A 0x07 0x01 0x01 CxRC|
|0x05|0x0A|0x0A|0x0F|0x01|0x00|Нарисовать белый не заполненный прямоугольник c координатами x-5, y-10 и размерами по ширине 10, по высоте 15 |0x05 0x0A 0x0A 0x07 0x01 0x00 CxRC|

***

## Нарисовать символ по координатам

**Команда:**

    0x09

**Параметры и данные:**
|X|Y|Charlndex|Color|
|-|-|-|-|
|0x00,0x01, … ,0x7F|0x00,0x01, … ,0x3F|0x00,0x01, … ,0x16| 0x00 \| 0x01|

**Пример:**
|X|Y|Charlndex|Color|Описание|Полная команда|
|-|-|-|-|-|-|
|0x05|0x0A|0x09|0x01|Нарисовать "0" белого цвета c координатами верхнего левого угла символа x-5, y-10|0x09 0x05 0x0A 0x09 0x01 CxRC|

***