Я согласен, что немного странно, что контрольная точка XML пуста, поскольку PDF-файл спецификации FTMS не дает полного списка, например, что ожидать в качестве параметров для различных команд.
Однако мне удалось создать реализацию, которая поддерживает некоторые варианты использования, которые могут вас заинтересовать. В настоящее время она поддерживает установку целевого сопротивления и мощности, но не параметры симуляции, которые вам понадобятся для обычного режима симуляции в Zwift. Вы можете найти эту реализацию на github . Это не завершено, и я просто обработал несколько команд там, но вы можете получить asp концепцию из кода.
Я написал это, используя информацию, которую смог найти в Интернете, в основном Характеристики тренажера и различные Характеристики характеристик GATT .
Когда приложение как и Zwift, записывающий в CP, это OP-код, за которым необязательно следуют параметры, вы должны ответить с помощью OP-кода 0x80 (код ответа), за которым следует OP-код, для которого предназначен ответ, за которым необязательно следуют параметры.
In поэтому в случае кода OP 0x00 (управление запросами) вы должны ответить: 0x80, 0x00, 0x01. Последний 0x01 - это код результата для «Success».
В случае кода OP 0x07 (Start / Resume) вы должны ответить: 0x80, 0x07, 0x01. Предполагая, что вы считаете запрос успешным, другие возможные ответы подробно описаны в Таблице 4.24 PDF-файла спецификации FTMS.
По команде, которую вы должны изучить, является OP Code 0x11. Когда Zwift работает в «режиме без тренировок», то есть в обычном режиме, Zwift будет использовать код OP 0x11, за которым следует набор параметров моделирования: скорость ветра, уклон, коэффициент сопротивления качению и коэффициент сопротивления ветра. Подробнее о формате этих параметров см. В «4.16.2.18 Установка процедуры имитации крытого велосипеда» в PDF-документе.
Надеюсь, это позволит вам продолжить. Счастливого взлома!