**Пример фуота-тест-01** ## [4.5.0] - 2020-12-18 ### Общие сведения - Релиз основан на «Спецификации LoRaWAN 1.0.4» и «Региональных параметрах LoRaWAN 2–1.0.1». - Исправлены проблемы, о которых сообщалось в GitHub. См. [версию релиза 4.5.0](https://github.com/Lora-net/LoRaMac-node/milestone/5). ### Добавленное - Добавлена реализация изменений LoRaWAN 1.0.4. - Добавлена реализация для новой спецификации протокола сертификации. - Добавлено определение версий репозитория GitHub и примеров микропрограммного обеспечения. ## [4.4.6] - 2020-12-18 ### Общие сведения - Релиз основан на «Спецификации LoRaWAN 1.0.3» и «Региональных параметрах LoRaWAN v1.0.3revA». - Исправлены проблемы, о которых сообщалось в GitHub. См. [версию релиза 4.4.6](https://github.com/Lora-net/LoRaMac-node/milestone/8). - **Версия 4.4.6 является последней, поддерживающей «Спецификацию LoRaWAN 1.0.3».** ### Изменённое - Проведена реорганизация уровня управления доступом к среде (MAC) и обработки данных в энергонезависимой памяти в примерах. - Обработка команд `NewChannelReq` и `DlChannelReq` для регионов `AU915`, `CN470` и `US915` изменена на игнорирование команды. - Поведение функции `SX126xSetLoRaSymbNumTimeout` изменено для округления времени ожидания до ближайшего возможного числа символов. - Плавающая точка в драйверах радиосвязи заменена на целочисленные вычисления. - Улучшена реализация функции `GetNextLowerTxDr`. - Обработка FIFO для FSK в SX1272 и SX1276 изменена с использованием IRQ `FifoLevel` вместо `FifoEmpty`. **ВНИМАНИЕ**: *Определение контакта MCU DIO1 изменилось с `RISING` на `RISING_FALLING`.* - Стандартным источником питания для плат IMST стало `USB_POWER`. ### Исправленное - Исправлено приложение для тестирования сертификации. - Примеры `ping-pong` и `rx-sensi` исправлены для использования правильных параметров `FSK_BANDWIDTH` и `FSK_AFC_BANDWIDTH`. - Однобайтовые передачи по I2C исправлены. - Проверка `DrOffset` в `RegionIN865RxParamSetupReq` исправлена. - Обработчики IRQ для платформ STM при использовании компилятора C++ исправлены. - Исправлена проблема, когда алгоритм присоединения не применялся, когда принудительное регулирование рабочего цикла было отключено. - Значение `AU915_MAX_RX1_DR_OFFSET` исправлено на 5 вместо 6. ### Удалённое - Удалены примеры классов A, B и C. ## [4.5.0-rc.1] - 2020-11-24 ### Общие сведения - Релиз основан на «Спецификации LoRaWAN 1.0.4» и «Региональных параметрах LoRaWAN 2–1.0.1». - Исправлены проблемы, о которых сообщалось в GitHub. См. [версию релиза 4.5.0](https://github.com/Lora-net/LoRaMac-node/milestone/5). ### Добавленное - Добавлена реализация изменений LoRaWAN 1.0.4. - Добавлена реализация для новой спецификации протокола сертификации. - Добавлено определение версий репозитория GitHub и примеров микропрограммного обеспечения. ### Изменённое - Стандартный источник питания для плат IMST изменён на `USB_POWER`. ### Исправленное - Исправлена проблема, когда алгоритм присоединения не применялся, когда принудительное регулирование рабочего цикла было отключено. - Значение `AU915_MAX_RX1_DR_OFFSET` исправлено на 5 вместо 6. ### Удалённое - Вызовы NvmCtxCallback удалены, поскольку они должны выполняться только при внесении изменений. - Удалены классы A, B и C примеров. ## [4.4.5] - 2020-10-14 ### Общие сведения - Релиз основан на «Спецификации LoRaWAN 1.0.3» и «Региональных параметрах LoRaWAN v1.0.3revA». - Исправлены проблемы, о которых сообщалось в GitHub. См. [версию релиза 4.4.5](https://github.com/Lora-net/LoRaMac-node/milestone/7). ### Добавленное - В `FRAGMENTATION_FRAG_SESSION_SETUP_REQ` добавлены проверки, которые проверяют достоверность `FragNb` и `FragSize`. - Отсутствует вызов `SX126xSetOperatingMode` в функциях `SX126xSetTxContinuousWave` и `SX126xSetTxInfinitePreamble`. - Новый специфический API платы для инициализации переключателя RF (`SX126xIoRfSwitchInit`) добавлен. - Для диапазонов AS923 и KR920 добавлено определение ширины полосы пропускания Rx, которая будет использоваться при выполнении алгоритма LBT. - Поддержка других групп подпланов каналов AS923 добавлена. - Фильтрация портов FPort добавлена в обработчики loramac. - Отсутствующие уведомления об обновлении NVM добавлены. ### Изменённое - Функция `RegionXXInitDefaults` реорганизована. Исправлена проблема в регионах США, где маска каналов не сбрасывалась. - Заменено жёстко заданное максимальное значение размера полезной нагрузки `JoinAccept` (33) определением `LORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE`. - Управление рабочим режимом радиопередатчика перенесено на конкретную плату. **Поддержка** - Добавлена поддержка всех регионов, определённых в документе «LoRaWAN Regional Parameters v1.0.2rB». ### Изменённое - Изменено радио-драйвер для непрерывного выполнения LBT-контроля несущей в течение заданного периода времени. - Реализация изменена для поддержки дополнений спецификации 1.0.2. ## [4.3.2] — 2017-04-19 ### Общее - Релиз на основе спецификации LoRaWAN 1.0.2. - Исправлены проблемы, о которых сообщалось на GitHub. ### Добавленное - Алгоритм автоматического вычисления параметров окон Rx (параметры окна `symbolTimeout` и `Offset` от ожидаемого времени нисходящей линии связи). - Обходной путь для сброса радио в случае возникновения `TxTimeout`. - Недавно определённый протокол сертификации команд `TxCw` (Tx Continuous Wave). ### Изменённое - Радио-драйвер изменён для непрерывного выполнения LBT-контроля несущей в течение заданного периода времени. - Реализация изменена для поддержки дополнений спецификации 1.0.2. - Обработка модема FSK изменена для использования предоставленного `symbolTimeout` (1 символ равен 1 байту) в режиме `RxSingle`. - Функция `GpioMcuInit` изменена для предварительной настройки состояния выходного контакта перед активацией контакта. - Обработчик `AdrAckCounter` изменён в соответствии с ожиданиями испытательных лабораторий. - Параметры настройки перемещены из `ResetMacParameters` в инициализацию. - Изменена обработка индикаций MAC-уровня. ### Удалённое - Удалён ненужный буфер `LoRaMacPayload`. ### Исправления - Исправлено переполнение, которое могло произойти с переменной `NmeaStringSize`. - Устранена проблема, из-за которой узел прекращал передачу. ## [4.3.1] — 2017-02-27 ### Общее - Релиз основан на спецификации LoRaWAN версии 1.0.1. - Исправлены проблемы, о которых сообщалось на GitHub. ### Добавленное ### - Платформа MoteII на базе модуля IMST iM881A (STM32L051C8). - Платформа NAMote72. - Поддержка протокола соответствия LoRaWAN TxContinuousWave (Tx Cw). - Поддержка непрерывной волны Tx (TxContinuousWave) в радио-драйверах. - Поддержка региона CN470. ### Изменённое ### - Обновлён MAC-уровень для соответствия версии LoRaWAN 1.0.1 (в основном исправления ошибок US915). - Проекты SensorNode обновлены в соответствии с новым MCU-эталоном STM32L151CBU6. Увеличены объёмы памяти. - Обновлены драйверы ST HAL: - STM32L1xx_HAL-Driver: V1.2.0; - STM32L0xx_HAL_Driver: V1.7.0. ### Удалённое ### - Из проекта удалена поддержка api-v3. ### Исправленное ### - Поведение команды протокола соответствия 0x06 исправлено. - Для прохождения сертификации LoRaWAN исправлен US-диапазон. ## [4.3.0] — 2016-06-22 ### Общее ### - Релиз основан на спецификации LoRaWAN версии 1.0.1. - Исправлены проблемы, о которых сообщалось на GitHub. ### Добавленное ### - В обработчике IRQ добавлен сброс прерывания RX_TIMEOUT радио. - Добавлен механизм повторной передачи с задержкой. - Добавлена поддержка отладочного вывода на платформу LoRaMote. - Добавлена функция для проверки частоты приёма окна 2 для US-диапазона. ### Изменённое ### - Во все файлы приложений внесены изменения протокола соответствия для тестов соответствия LoRaWAN 1.0.1 (**примечание**: файлы приложения api-v3 не обновляются). - Обновление STM32L0 HAL до версии 1.6.0. - Консолидированы окончания строк во всех файлах проекта. Для большинства файлов выбраны окончания строк Windows. - Максимальный размер полезной нагрузки для US-диапазона обновлён. - Таблица смещения скорости передачи данных для US-диапазона обновлена. - Команды MAC сделаны «липкими». - Улучшено и обновлено устройство драйвера MPL3115. - Драйвер RTC значительно обновлён. ### Удалённое ### - Бесконечный цикл из функции `HAL_UART_ErrorCallback` удалён. - Ограничение мощности `TxPower` для US-диапазона в функции `LoRaMacMibSetRequestConfirm` удалено. Мощность будет ограничена в любом случае при вызове функции `SendFrameOnChannel`. ### Исправленное ### - Проблема № 81: исправление ошибки в функции `LoRaMacMlmeRequest` для случая `MLME_JOIN`. Функция вернёт `LORAMAC_STATUS_BUSY`, если MAC находится в состоянии `MAC_TX_DELAYED`. - Проблема № 83: исправление ошибок проверки параметров. - Проблема № 84: исправление проблемы функции `CalibrateTimer`. - Применён запрос на вытягивание № 87. - Проблема № 88: исправление ошибки функции `PrepareFrame`, где повторяющиеся команды MAC обрабатывались неправильно. - Ошибка `OnRadioRxDone`: теперь узел отбрасывает кадры на порту 0 с fOpts > 0. - Ошибка `OnRadioRxDone`: теперь узел принимает кадры с fOpts > 0, когда полезная нагрузка отсутствует. **Интеграция** Обратить массивы EUIs в слое MAC. ## [3.4.1] — 2015-11-06 ### Общие * Выпуск на основе спецификации LoRaWAN 1.0.0; * исправления проблем, о которых сообщалось на GitHub. ### Исправлено * Исправлен пересчет счётчика нисходящего канала при пропуске нескольких нисходящих каналов; * исправлена фильтрация радиоприёмником полученных кадров длиной больше переданной; * применено решение, предложенное в запросе на извлечение (Pull request) #22. ## [3.4.0] — 2015-10-30 ### Общие * Выпуск на основе спецификации LoRaWAN 1.0.0; * исправления проблем, о которых сообщалось на GitHub. ### Добавлено * Вызовы функций TimerStop добавлены к каждому обратному вызову таймера событий; * добавлены недостающие преобразования переменных. Это помогает в переносимости кода; * добавлен атрибут const переменной, когда это необходимо, в прототипы функций; * определения LORAMAC_MIN_RX1_DR_OFFSET и LORAMAC_MAX_RX1_DR_OFFSET добавлены в файл LoRaMac-board.h. Они могут различаться в зависимости от используемого физического уровня; * добавлено ограничение выходной мощности в соответствии с количеством включенных каналов для диапазона US915; * добавлено ограничение длины прикладной полезной нагрузки в соответствии со скоростью передачи данных. Ещё не учитывает буфер команд MAC (проблема №15). ### Изменено * Все приложения изменены таким образом, чтобы иметь предварительные определения обработки в верхней части файлов, и добавлены соответствующие комментарии; * управление светодиодами приложений больше не выполняется в функциях обратного вызова таймера, а вместо этого в основном цикле while; * имена типов для stdint.h изменены. Это помогает в портируемости кода; * переименованы функции rand и srand в rand1 и srand1. Это помогает в портируемости кода; * перемещены определения ID1, ID2 и ID3 из board.h в board.c, usb-cdc-board.c и usb-dfu-board.c; * функция BoardMeasureBatterieLevel переименована в BoardGetBatteryLevel; * добавлена API-функция SetMaxPayloadLength для драйверов радиостанций SX1272 и SX1276; * изменено имя функции радио API Status на GetStatus; * изменены имена типов AES/CMAC для stdint.h. Это помогает в портируемости кода (проблема №20); * функция __ffs перемещена из utilities.h в spi-board.c. Эта функция используется только там; * добавлена поддержка диапазона US915 (нормальный режим и гибридный режим. Гибридный режим является временной конфигурацией до тех пор, пока серверы не будут поддерживать его автоматически) (проблема №16); * использование атрибута __IO заменено на volatile; * тип LoRaMacEvent_t переименован в LoRaMacCallbacks_t и добавлен указатель функции для получения статуса уровня заряда батареи; * LoRaMacSetDutyCycleOn переименован в LoRaMacSetTestDutyCycleOn; * LoRaMacSetMicTest переименован в LoRaMacTestSetMic; * увеличен размер буфера PHY до 250; * теперь LoRaMacEventInfo.TxDatarate возвращает скорость передачи данных LoRaWAN (DR0 -> DR7) вместо (SF12 -> DF7); * файл LoRaMac-board.h теперь реализует настройки для физических уровней, указанных в спецификации LoRaWAN 1.0 (EU433, CN780, EU868, US915) (проблема №19). ### Удалено * определение NULL из файла board.h; * определение RAND_SEED. Оно было заменено функцией с именем BoardGetRandomSeed; * переопределение функции fputc из Utilities.c; * использование атрибута PACKED для структур данных; * проверка IsChannelFree в функции LoRaMacSetNextChannel. LoRaWAN — это протокол ALHOA (запрос на извлечение №8). ### Исправлено * комментарии к таймингам. Значения времени в большинстве случаев указаны в микросекундах; * упрощено управление последовательностью нисходящей линии связи; * управление маской канала для диапазона EU868; * поведение функции LoRaMacPrepareFrame при отсутствии прикладной полезной нагрузки; * управление MacCommandBufferIndex (проблема №18). ## [3.3.0] — 2015-08-07 ### Общие * выпуск на основе спецификации LoRaWAN 1.0.0; * исправления проблем, о которых сообщалось на GitHub. ### Добавленное * Поддержка устройств класса C LoRaWAN; * возможность изменять маску канала и количество повторений через команду SRV_MAC_LINK_ADR_REQ при отключённом ADR. ### Изменения * Увеличено значение тайм-аута FSK SyncWord, чтобы дольше слушать, доступен ли нисходящий канал или нет. Это делает нисходящую линию связи FSK более надёжной; * увеличенный размер буфера FIFO USB UART, чтобы обрабатывать большие объёмы данных. **Chunks of data** - Переименованы тарифы данных согласно спецификации LoRaWAN. - Изменена функция подтверждённых сообщений, чтобы использовать тариф по умолчанию, когда управление ADR отключено. - После принятия присоединения узел возвращается к тарифу по умолчанию. Это позволяет пользователю присоединиться к сети, используя тариф, отличный от собственного тарифа по умолчанию. **Исправлено:** - Реализованы обходные пути для ошибок в радиосвязи. Ошибка SX1276 2.3 «Побочный приём сигнала LoRa» ещё не реализована. - Исправлена обработка MAC-команд, которая была выполнена неправильно. Условие для проверки длины буфера изменилось с `<` на `<=`. - Исправлено управление Rx1DrOffset. В предыдущей версии DR1 отсутствовал для всех смещений. - Исправлен канал FSK по умолчанию. - Устранено зависание прошивки при возникновении одной из следующих ситуаций в обратном вызове OnRxDone: неправильный адрес, неправильный MIC, неправильный кадр. - Исправлены странные условия для проверки скорости передачи данных в MAC-команде SRV_MAC_NEW_CHANNEL_REQ. - Исправлена обработка сообщения о принятии присоединения, которое должно игнорироваться, если уже выполнено присоединение. - Исправлено, что проверка индекса канала должна использовать OR в команде SRV_MAC_NEW_CHANNEL_REQ. - Исправлен порядок управления CFList при присоединении. Индексы в цикле for были неправильными. - Исправлен размер ключа AES. **[3.2.0] — 2015-04-30** **Общие сведения:** — Выпуск основан на спецификации LoRaWAN 1.0.0. — Исправлены проблемы, о которых сообщалось на GitHub. **Добавлено:** — Добавлена поддержка упакованных структур при использовании инструментальной цепочки IAR. — Добавлена функция для получения времени в микросекундах. — Добавлен typedef для переменных времени (TimerTime_t). — Добавлена функция, возвращающая информацию о том, есть ли у GPS фиксация или нет. — Добавлено недостающее и обновлено необходимое для MAC-команд. * Исправлена расшифровка MAC-команд порта 0. * Изменён способ уведомления верхнего уровня. Теперь уведомление происходит только тогда, когда все операции завершены. Когда начинается цикл Tx класса A, запускается таймер для проверки каждую секунду, всё ли завершено. * Добавлен новый параметр в структуру LoRaMacEventFlags, указывающий, в каком окне Rx были получены данные. * Добавлен новый параметр в структуру LoRaMacEventFlags, указывающий на наличие прикладных данных в полученной полезной нагрузке. * Исправлено поведение MAC-команд ADR. * Реализовано применение цикла занятости (только для EU868 PHY). * **Примечание 1.** Регуляторный цикл занятости включён по умолчанию, это означает, что для более низких скоростей передачи данных узел может не передавать новый кадр так быстро, как требуется. Формула, используемая для вычисления времени простоя узла, выглядит следующим образом: Toff = TimeOnAir / DutyCycle - TxTimeOnAir. Пример: устройство только что передало кадр длиной 0,5 с на одном канале по умолчанию. Этот канал находится в поддиапазоне, допускающем 1% рабочего цикла. Следовательно, весь этот поддиапазон (868 МГц — 868,6 МГц) будет недоступен в течение 49,5 секунд. * **Примечание 2.** Рабочий цикл можно отключить для целей тестирования, вызвав функцию LoRaMacSetDutyCycleOn с параметром false. * Внедрено агрегированное управление рабочим циклом. * Добавлена функция создания новых каналов. * Реализованы недостающие функции в MAC-команде JoinAccept. * Обновлена функция LoRaMacJoinDecrypt для обработки поля CFList. — Возможность выбора между использованием публичных и частных сетей. **Изменено:** — Косметические обновления. — Изменена радиофункция TimeOnAir для возврата значения uint32_t вместо double. Значение указано в микросекундах. — Функции GetPosition теперь возвращают широту и долготу 0 и высоту 65535, когда нет фиксации GPS. — В связи с управлением рабочим циклом изменился API прикладного уровня. Все приложения должны быть обновлены соответствующим образом. **Удалено:** — Поддержка предыдущих спецификаций LoRaMac/LoRaWAN удалена. **Исправленное:** — Исправлен выбор ширины полосы пропускания 250 кГц для модема FSK. **[3.1.0] — 2015-01-30** **Общее:** — Версия основана на спецификации LoRaMac R3.0.0. — Проблемы, о которых сообщили на GitHub. **LoRaMac-board.h файл находится в каждом конкретном каталоге платы** ### Удалено * Удалена зависимость файлов spi-платы от функции __builtin_ffs. Эта функция доступна только в наборе инструментов компилятора GNU. * Из проектов Keil удалена опция компилятора --gnu. * В файл utilities.h добавлена собственная реализация функции __ffs. * Удалён устаревший класс поддержки устройств 1. ### Исправлено * Исправлен режим непрерывного приёма радиосигнала. ## [2.2.0] — 2014-04-07 ### Общие изменения * Исправления ошибок, о которых сообщалось на GitHub. ### Добавленное * Поддержка стартового комплекта IMST SK-iM880A добавлена в проект. * Платформенная полезная нагрузка для платформы SK-iM880A: { 0x00/0x01, 0x00, 0x00, 0x00 } ---------- ----- ---------- | | | LED POTI VDD ### Изменённое * Приложения Ping-Pong разделены по поддерживаемым платам. * Стиль кодирования функций FIFO приведён в соответствие с проектом. * Драйвер UART теперь не зависит от используемого MCU. ### Исправленное * Управление выходной мощностью SX1272 исправлено. * Добавлена переменная для хранения текущего канала радиосвязи. * Добавлено определение отсутствующего бита FSK. ## [2.1.0] — 2014-03-28 ### Общие изменения * Исправления ошибок, о которых сообщалось на GitHub. ### Добавленное ### * В драйвер радио добавлена возможность выбора длины преамбулы и времени ожидания одиночного символа rxSingle при приёме. * Добавлен драйвер шестнадцатеричного кодера для платы Bleeper. * Реализовано управление повторными попытками подтверждения. * Функция LoRaMacSendOnChannel разделена на LoRaMacPrepareFrame и LoRaMacSendFrameOnChannel. Теперь функция LoRaMacSendOnChannel вызывает две новые определённые функции. **ВНИМАНИЕ**: По умолчанию код повторных попыток подтверждения не включён. Текущая версия сервера http://iot.semtech.com не поддерживает его. * Добавлено событие LORAMAC_EVENT_INFO_STATUS_MAC_ERROR. ### Изменённое ### * Переписаны таймеры и управление RTC. * Улучшены драйверы UART и UP501 GPS. * Во всех исходных файлах изменено авторское право Unicode на (C). * Реализованы команды MAC: * LinkCheckReq **ДА** * LinkCheckAns **ДА** * LinkADRReq **ДА** * LinkADRAns **ДА** * DevStatusReq **ДА** * DevStatusAns **ДА** * JoinReq **ДА** * JoinAccept **ДА** ### Исправленное ### * Исправлено управление именами контактов GPIO. * Исправлены проблемы с командами JoinRequest и JoinAccept MAC. ## [2.0.0] — 2014-02-21 ### Общие изменения ### * Исправления ошибок, о которых сообщалось на GitHub. ### Добавленное ### * Добавлена новая реализация API прикладного уровня MAC. * Добавлена реализация драйверов датчиков. ### Изменённое ### * Теперь приложения LoRaMac отправляют статус светодиода плюс значения датчиков. Для платформы LoRaMote приложение также отправляет координаты GPS. * Полезная нагрузка приложения для платформы Bleeper: { 0x00/0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } ---------- ---------- ---------- ---------- ---- | | | | | LED PRESSURE TEMPERATURE ALTITUDE BATTERY (barometric) * Полезная нагрузка приложения для платформы LoRaMote: { 0x00/0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } ---------- ---------- ---------- ---------- ---- ---------------- ---------------- ---------- | | | | | | | | LED PRESSURE TEMPERATURE ALTITUDE BATTERY LATITUDE LONGITUDE ALTITUDE (barometric) (gps) * Изменены примеры приложений в соответствии с новым API MAC. * Команды MAC реализованы: * LinkCheckReq **ДА**. **LinkCheckAns** — ДА. **LinkADRReq** — ДА. **LinkADRAns** — ДА. **DevStatusReq** — ДА. **DevStatusAns** — ДА. **JoinReq** — ДА (не проверено). **JoinAccept** — ДА (не проверено). ### Известные ошибки — Всё ещё есть некоторые проблемы с RTC/Timer. Они будут решены в будущей версии. ## [1.1.0] — 2014-01-24 ### Общие изменения — Исправлены проблемы, о которых сообщил GitHub. ### Добавления — Реализован контроль светодиода приложения. Если сервер отправляет на порт 1 полезную нагрузку приложения размером один байт со следующим содержимым: 0: светодиод выключен; 1: светодиод включён, то узел периодически передаёт на порт 1 статус светодиода в первом байте и сообщение «Hello World!!!!». Массив выглядит так: { 0, 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '!', '!', '!' }. ### Изменения — Внедрены команды MAC. **LinkCheckReq** — НЕТ. **LinkCheckAns** — НЕТ. **LinkADRReq** — ДА. **LinkADRAns** — ДА. **DevStatusReq** — ДА. **DevStatusAns** — ДА. ### Известные ошибки — Есть проблема при запуске асинхронного таймера. Она будет решена в будущей версии. ## [1.1.0-RC1] — 2014-01-20 ### Дополнения — Добавлен каталог Doc. Каталог содержит: * спецификацию LoRa MAC; * схему платы Bleeper. ### Изменения — Изменён LoRaMac согласно спецификации Release1. Основные изменения: * изменён API MAC; * формат кадра; * реализована первая ADR класса A; * внедрены команды MAC: **LinkCheckReq** — НЕТ; **LinkCheckAns** — НЕТ; **LinkADRReq** — ДА; **LinkADRAns** — НЕТ; **DevStatusReq** — НЕТ; **DevStatusAns** — НЕТ. — Переписаны таймеры и RTC. Известные ошибки: * время пробуждения радио учитывается для всех таймингов; * иногда микроконтроллер не переходит в режим пониженного энергопотребления при открытии второго окна приёма. ## [1.0.0] — 2013-11-28 ### Общее — Начальная версия реализации прошивки узла LoRa MAC.