В этой статье будет рассмотрен такой важный шаг в программировании, как создание библиотеки функций для клавиатурного модуля. Это нужно в первую очередь для того, чтобы перенести уже написанный код в подключаемый заголовочный файл и при частом применении в разных проектах не наполнять основной скетч функциями и описанием класса. Применение библиотек позволяет намного изящнее применять приёмы программирования, кроме того, освобождает самого программиста от рутинного написания уже пройденного кода.

        Итак, привет... Начну пожалуй с того, что, если ты не в курсе что вообще происходит в этой статье, то советую по быстрому ознакомиться с первой и второй частью статей по данному клавиатурному модулю. Первая часть была обзорной, во второй части уже был написан скетч, в котором я описал объект класса, данные и функции члены класса необходимые для работы с клавиатурным модулем. В результате написания скетча, в нём были свалены в кучу эти функции, прототип класса, ещё и плюс ко всему основные функции setup() и loop(). Посмотрев на получившуюся портянку на 160 строк кода, я пришел к решению что в этой жизни нужно что то менять необходимо создать подключаемую библиотеку. Ну что же, приступаю прямо сейчас...

        В наличии есть скетч из предыдущей статьи. Для того что бы получить подключаемую библиотеку необходимо разбить этот скетч на два файла - Keypad3x4.h и Keypad3x4.cpp, сохранив их в одноимённой папке Keypad3x4. Для начала создаём папку Keypad3x4, потом используя обычный блокнот(Notepad) создаём вышеуказанные файлы. Заголовочный файл Keypad3x4.h будет содержать прототип объекта класса, в файле Keypad3x4.cpp будут реализованы все функции для работы с модулем. Очень важно соблюсти расширение .h   и .cpp для этих файлов.

        Следующим действием будет создание папки Examples в папке Keypad3x4, в ней будет храниться скетч с примером применения для клавиатурного модуля. Ну и в дополнение нужно создать простой текстовый файл keywords.txt, в нём будет храниться карта подсветки синтаксиса для ключевых слов библиотеки. После выполнения указанных действий должно получиться следующее, смотри скриншот:

 

 

        Далее, из скетча предыдущей статьи берём кусок кода и копируем в файл Keypad3x4.h, очень важно не забыть подключить библиотеку Arduino.h в самом начале файла. Она необходима что бы задействовать все используемые библиотечные функции для работы именно с платой Arduino.

ЛИСТИНГ ФАЙЛА Keypad3x4.h

       Следующим шагом будет копирование всех реализованных функций класса в файл Keypad3x4.cpp, в этот раз в начале файла нужно подключить именно заголовочный файл с прототипом класса Keypad3x4.h, как это сделать? Смотри:

ЛИСТИНГ ФАЙЛА Keypad3x4.cpp

        Для полноты картины нужно организовать карту подсветки синтаксиса для ключевых слов библиотеки. Для этого открываем файл keywords.txt и прописываем ключевые слова которые необходимо подсветить. Советую здесь особо не увлекаться, использовать только те ключевые, которые действительно впоследствии повлияют на удобочитаемость кода.

 

 

        Поясню вкратце, в файле есть три настройки подсветки синтаксиса, это KEYWORD1, KEYWORD2 и LITERAL1. Сначала указывается ключевое слово, потом через табуляцию указываем настройку. KEYWORD1 - это тёмно оранжевая подсветка с жирным шрифтом, для имён подключаемых заголовочных файлов и объявлений объектов класса. KEYWORD2 - тёмно оранжевая подсветка с тонким(обычным) шрифтом, для выделения библиотечных функций. LITERAL1 - синяя подсветка с тонким шрифтом, для констант и типов данных. Каждая группа настроек разделена пустой строкой.

        Чтобы использование подключаемой библиотеки было удобным остаётся добавить тестовый пример в её состав. Для этого нужно зайти в папку Examples и создать в неё папку PressEvents. После этого в папке PressEvents создать одноимённый файл PressEvents с расширением .ino, в этот файл нужно добавить следующие строки, смотри листинг по ссылке:

ЛИСТИНГ ФАЙЛА PressEvent.ino

         После всех проделанных манипуляций, остаётся упаковать папку Keypad3x4 со всем вышесозданным содержимым в ZIP архив. Делается это просто, но если ты всё же этого не умеешь то смотри очередной скриншот:

 

 

        Итак, библиотека упакована в ZIP архив... Остаётся только подключить её в среде Arduino IDE, отлично! С этим не должно возникнуть трудностей, открывай среду разработки и действуй как показано на скриншоте:

 

 

        Ну и напоследок, что бы воспользоваться встроенным примером, переходи по следующим пунктам меню среды разработки:

 

 

        Если ты дочитал до этого места и освоил всю изложенную информацию, то поздравляю! Пройден значимый этап, который впоследствии поможет создавать полноценные меню для различных типов дисплеев(LCD1602, LCD2004, LCD12864 и др.). О том как приготовить меню, одноуровневое или многоуровневое, будет конечно же отдельная статья. Если нет желания разбираться с листингами, готовый вариант библиотеки можно скачать отсюда. На этом, хочу сказать тебе спасибо за внимание, не забудь поделиться ссылкой на статью с друзьями электронщиками и прочими программистами.