Рисунок1

Для лёгкого взаимодействия с аппаратной частью была создана прошивка IsIWant. И для её настройки используются простые строковой команды, что-то похожее на АТ-команды. 

Аудио платформа имеет широки функционал и для удобства управления, команды разбиты на пакеты. Каждый пакет представляет сгруппированный блок определённого направления, например PACKED_SOUND пакет "Звук" включает себа настройки DSP, ЦАП, Звуковой карты (эквалайзеры, кроссоверы, задержки и т.п.), PACKED_FM_RADIO пакет "FM радио" управление ФМ радио модулем, т.д.

Список пакетов аудио платформы:

  • PACKED_FIRMWARE_UPDATE  = 0,  Пакет обновления прошивки
  • PACKED_GENERAL = 1,  Пакет с основным параметрами
  • PACKED_GATEWAY  = 2,  Пакет шлюза
  • PACKED_CAN  = 3,  Пакет CAN шины
  • PACKED_SOUND = 4,  Пакет со всеми параметрами звука
  • PACKED_BLUETOOTH = 5,  Пакет с параметрами Bluetooth
  • PACKED_EXTERNAL_CONTROL  = 6,  Пакет с настройками внешних кнопок, энкодеров
  • PACKED_FM_RADIO = 7, Пакет с параметрами FM радио 

В АТ командах обычно используют текстовые команды, например "VOLUME = 20" в прошивке AsiWant не используются текстовые команды, а только цифровые например слово VOLUME будет заменено на чиcло 0 и получается команды 0 = 20. Это ускоряет скорость работы программы на стороне микроконтроллера и программного обеспечения на стороне операционной системы. Например пакет 

Каждый пакет обязательно имеет 3 параметра

  • MESSAGE = 0,  Параметр с сообщениями
  • NOTIFICATION = 1,  Параметр различных уведомлений
  • SETTINGS = 2,  Параметр с настройками пакета
  • Остальные параметры зависят от необходимых функций

Параметр MESSAGE используется для передачи различных сообщений из пакета, например: если это пакет SOUND, через этот параметр передаются данные детекторов уровня звука и имеют вид 4 0 0 (байтовые данные), в случае если это CAN шина то передаются данные кадров в виде 3 0 0 (данные кадра кан шины). Также параметр имеет ветвления, если разобрать сообщение "4 0 0 (байтовые данные)" 4 = PACKED_SOUND , 0 = MESSAGE, следующий 0 это ветвление которое указывает на детекторы уровня. Если сообщение имеет вид 4 0 1 (байтовые данные)" то это означает  4 = PACKED_SOUND , 0 = MESSAGE , 1 это ветвление указывающее что это индукторы уровня графического эквалайзера. и т.д. Более подробно о сообщениях каждого пакета читайте в разделах описания пакета.

Параметр NOTIFICATION выводит уведомления. Например возьмем CAN шину, и если получим уведомление 3 1 0 будет указывать о наличии ошибки при подключении к CAN шине, 3 1 1 означает о ошибке отключения от CAN шины и т.д. Более подробно о уведомлениях каждого пакета читайте в разделах описания пакета.

Параметр SETTINGS используется для настройки пакета, в качестве примера возьмём CAN шину. Команда 3 2 1 = 3 установит скорость CAN шины 100kBit,  Команда 3 2 1 = 6 установит скорость 500kBit. Для получения информации о скорости CAN шины необходимо отправить 3 2 1 в ответ будет получено 3 2 1 6 указывающая что скорость CAN шины 500kBit. Более подробно о настройках каждого пакета читайте в разделах описания пакета.