fdr_recordTelemetry

Mock Jutsu HOW-TO | RU

В современной разработке систем мониторинга и авиационного программного обеспечения качественные мок-данные играют решающую роль в обеспечении стабильности продукта. Библиотека mock-jutsu предлагает инженерам мощный инструмент для генерации реалистичной телеметрии через специализированную функцию fdr_record. Этот генератор воссоздает структуру данных бортовых самописцев, широко известных как «черные ящики», предоставляя детализированные временные ряды параметров полета без необходимости подключения к дорогостоящим авиасимуляторам или реальному оборудованию.

Основная ценность fdr_record заключается в использовании алгоритма ограниченного случайного блуждания с учетом физических ограничений (physics-constrained bounded random walk). В отличие от обычных генераторов случайных чисел, mock-jutsu создает плавные и логически связанные переходы между состояниями системы. Каждая запись имитирует поток данных с частотой обновления 10 Гц, включая такие критические показатели, как тангаж (pitch), крен (roll), рыскание (yaw), высота в футах (altitude_ft), приборная скорость в узлах (speed_kts), вертикальная скорость (vspeed_fpm) и перегрузка (g_force). Это гарантирует, что тестовые данные выглядят естественно для алгоритмов анализа аномалий и систем графической визуализации.

Гибкость интеграции делает mock-jutsu незаменимым компонентом в современных CI/CD пайплайнах. Сгенерировать fdr_record можно тремя удобными способами: через прямой вызов в Python-скриптах с помощью метода jutsu.generate, через интерфейс командной строки (CLI) для быстрой подготовки статических JSON-файлов или непосредственно в сценариях нагрузочного тестирования JMeter. Такой универсальный подход позволяет бесшовно внедрять реалистичную телеметрию на любом этапе разработки — от прототипирования интерфейсов до масштабных испытаний распределенных систем обработки данных под высокой нагрузкой.

Использование fdr_record значительно упрощает тестирование систем, работающих в режиме реального времени. Типовые сценарии применения включают отладку дашбордов управления полетами, проверку производительности баз данных временных рядов и обучение моделей машинного обучения для распознавания предаварийных ситуаций. Благодаря физической достоверности, которую обеспечивает библиотека mock-jutsu, разработчики могут быть уверены, что их программные продукты корректно обрабатывают инерцию и динамику движения объекта, что критически важно для точности аналитических систем в аэрокосмической отрасли.

Использование CLI
mockjutsu generate fdr_recordmockjutsu bulk fdr_record --count 10mockjutsu export fdr_record --count 10 --format jsonmockjutsu export fdr_record --count 10 --format csvmockjutsu export fdr_record --count 10 --format sql
Python API
from mockjutsu import jutsujutsu.generate('fdr_record')jutsu.bulk('fdr_record', count=10)jutsu.template(['fdr_record'], count=5)
JMeter
${__mockjutsu_telemetry(fdr_record)}# JMeter Function: __mockjutsu_telemetry# Parameter 1: fdr_record# Parameter 2: (not required for this function)
REST API
GET /generate/fdr_record# → {"type":"fdr_record","result":"...","status":"ok"}GET /bulk/fdr_record?count=10POST /template {"types":["fdr_record"],"count":1}

Примеры вывода

{"flight_id": "2a883700-9678-4743-b043-bc8bfe1ab937", "aircraft": "B787", "recording_start": "2026-06-27T23:22:04.592Z", "interval_ms": 100, "samples": [{"t": 0, "pitch": -2.86, "roll": 0.39, "yaw": 154.09, "altitude_ft": 38845.68, "speed_kts": 477.23, "vspeed_fpm": -38.38, "g_force": 0.96}, {"t": 100, "pitch": -2.81, "roll": 0.14, "yaw": 154.59, "altitude_ft": 38778.06, "speed_kts": 474.21, "vspeed_fpm": -97.34, "g_force": 1.03}, {"t": 200, "pitch": -3.05, "roll": -0.23, "yaw": 154.89, "altitude_ft": 38795.13, "speed_kts": 476.05, "vspeed_fpm": 65.38, "g_force": 0.96}, {"t": 300, "pitch": -3.12, "roll": -0.84, "yaw": 154.41, "altitude_ft": 38877.59, "speed_kts": 473.22, "vspeed_fpm": -35.21, "g_force": 1.01}, {"t": 400, "pitch": -3.3, "roll": 0.06, "yaw": 155.27, "altitude_ft": 38934.25, "speed_kts": 470.06, "vspeed_fpm": -1.27, "g_force": 1.08}, {"t": 500, "pitch": -3.56, "roll": -0.49, "yaw": 154.43, "altitude_ft": 39025.69, "speed_kts": 466.73, "vspeed_fpm": -158.51, "g_force": 1.12}, {"t": 600, "pitch": -3.5, "roll": -0.57, "yaw": 154.52, "altitude_ft": 39080.38, "speed_kts": 462.57, "vspeed_fpm": -323.91, "g_force": 1.12}, {"t": 700, "pitch": -3.85, "roll": -0.86, "yaw": 154.01, "altitude_ft": 39078.1, "speed_kts": 458.36, "vspeed_fpm": -479.64, "g_force": 1.11}, {"t": 800, "pitch": -3.46, "roll": -1.19, "yaw": 153.29, "altitude_ft": 39101.89, "speed_kts": 457.93, "vspeed_fpm": -356.06, "g_force": 1.03}, {"t": 900, "pitch": -3.59, "roll": -0.65, "yaw": 153.05, "altitude_ft": 39150.01, "speed_kts": 460.45, "vspeed_fpm": -225.65, "g_force": 1.06}, {"t": 1000, "pitch": -3.92, "roll": -1.2, "yaw": 152.56, "altitude_ft": 39229.33, "speed_kts": 461.94, "vspeed_fpm": -160.64, "g_force": 1.13}, {"t": 1100, "pitch": -3.71, "roll": -1.0, "yaw": 152.14, "altitude_ft": 39280.99, "speed_kts": 459.66, "vspeed_fpm": -327.29, "g_force": 1.16}, {"t": 1200, "pitch": -3.23, "roll": -0.52, "yaw": 152.7, "altitude_ft": 39212.13, "speed_kts": 460.22, "vspeed_fpm": -383.11, "g_force": 1.2}, {"t": 1300, "pitch": -3.37, "roll": -1.3, "yaw": 153.12, "altitude_ft": 39248.41, "speed_kts": 464.39, "vspeed_fpm": -524.9, "g_force": 1.17}, {"t": 1400, "pitch": -3.2, "roll": -0.6, "yaw": 153.88, "altitude_ft": 39186.62, "speed_kts": 463.13, "vspeed_fpm": -560.01, "g_force": 1.13}, {"t": 1500, "pitch": -3.08, "roll": 0.38, "yaw": 154.67, "altitude_ft": 39173.99, "speed_kts": 465.92, "vspeed_fpm": -748.59, "g_force": 1.18}, {"t": 1600, "pitch": -3.09, "roll": 1.01, "yaw": 155.52, "altitude_ft": 39202.65, "speed_kts": 467.93, "vspeed_fpm": -571.37, "g_force": 1.22}, {"t": 1700, "pitch": -3.09, "roll": 2.01, "yaw": 155.34, "altitude_ft": 39229.41, "speed_kts": 464.54, "vspeed_fpm": -679.12, "g_force": 1.2}, {"t": 1800, "pitch": -2.7, "roll": 1.19, "yaw": 155.24, "altitude_ft": 39322.65, "speed_kts": 463.17, "vspeed_fpm": -508.01, "g_force": 1.19}, {"t": 1900, "pitch": -2.69, "roll": 0.69, "yaw": 156.01, "altitude_ft": 39386.15, "speed_kts": 460.06, "vspeed_fpm": -335.08, "g_force": 1.1}, {"t": 2000, "pitch": -3.13, "roll": 0.33, "yaw": 156.37, "altitude_ft": 39422.53, "speed_kts": 456.23, "vspeed_fpm": -177.57, "g_force": 1.02}, {"t": 2100, "pitch": -3.35, "roll": -0.48, "yaw": 157.14, "altitude_ft": 39455.65, "speed_kts": 460.41, "vspeed_fpm": -47.21, "g_force": 1.07}, {"t": 2200, "pitch": -3.62, "roll": -0.07, "yaw": 157.51, "altitude_ft": 39486.63, "speed_kts": 459.46, "vspeed_fpm": -205.72, "g_force": 1.02}, {"t": 2300, "pitch": -3.86, "roll": 0.37, "yaw": 157.91, "altitude_ft": 39528.56, "speed_kts": 460.59, "vspeed_fpm": -37.04, "g_force": 1.11}, {"t": 2400, "pitch": -3.8, "roll": 0.45, "yaw": 158.73, "altitude_ft": 39618.28, "speed_kts": 460.01, "vspeed_fpm": -42.38, "g_force": 1.13}, {"t": 2500, "pitch": -3.39, "roll": -0.12, "yaw": 159.54, "altitude_ft": 39610.76, "speed_kts": 461.36, "vspeed_fpm": 141.5, "g_force": 1.12}, {"t": 2600, "pitch": -3.21, "roll": -1.02, "yaw": 158.65, "altitude_ft": 39686.17, "speed_kts": 464.46, "vspeed_fpm": 78.85, "g_force": 1.04}, {"t": 2700, "pitch": -3.27, "roll": -0.82, "yaw": 157.7, "altitude_ft": 39651.17, "speed_kts": 465.43, "vspeed_fpm": 159.59, "g_force": 1.08}]}

Правила валидации

Другие языки