Closed sadr0b0t closed 6 years ago
перепаковал https://github.com/sadr0b0t/arduino-timer-api/commit/2bceda817e48a228da6c0d5a76babf7bf8f20119
обновил инструкции https://github.com/sadr0b0t/arduino-timer-api/commit/f7f078bcb33bfca00f501fa55e124866291a438c
после перепаковки заметил странный баг - библиотека не хотела распознаваться средой после перезапуска (не видела инклудники, не добавляла примеры в меню). Сначала подумал, что дело в том, что исходники ушли в src, но в других библиотеках так и сделано.
Дальше сделал две вещи:
не знаю, что что-то именно из этого повлияло или что-то другое, но библиотека подключилась.
ВНИМАНИЕ: Категория 'system' в библиотеке arduino-timer-api не является действительной. Установка на 'Uncategorized'
исчерпывающее описание формата файла с описанием библиотеки library.properties https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification
категории:
category - if present, one of these: Display, Communication, Signal Input/Output, Sensors, Device Control, Timing, Data Storage, Data Processing, Other
у нас, очевидно, Timing
там же подробности про добавление исходников для разных архитектур (если коротко, то у нас все правильно - всё на дефайнах, но можно раскидать еще платформо-зависимый код по вложенным папкам)
можно раскидать еще платформо-зависимый код по вложенным папкам https://github.com/sadr0b0t/arduino-timer-api/commit/1f9b88178bb69dd253857d338e5478a1e0462dac
я сделяль, теперь точно всё
не знаю, что что-то именно из этого повлияло или что-то другое, но библиотека подключилась.
короче, разобрался.
Если в корне библиотеки лежит какой-то хоть один заголовочный файл, она воспринимается, как библиотека, скетчи из examples подгружаются в меню и т.п. Файла library.properties при этом может не быть.
Если заголовочника в корне нет (все исходники в подкаталоге src) и нет library.properties, то в src никто ничего не ищет, а объявляется библиотеку неправильной (иногда печатает сообщение в консольку под скетчем, иногда не печатает), примеры в меню не подгружает.
Если заголовочника в корне нет (все исходники в подкаталоге src), а library.properties есть, то всё ок - заголовочники и прочие исходники загружаются из подкаталога src (хотя в самом library.properties про него нет ни строчки), примеры подгружаются не только из examples, но и из других подкаталогов, которые найдутся в каталоге библиотеки (с списке примеров появляются в виде подменюх под главным меню - довольно удобно, можно сортировать примеры по тематике).
Перепаковать репозиторий для лучшей совместимости с форматом библиотек Ардуино пример: https://github.com/mikaelpatel/Arduino-GPIO