>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-09-01_10-45-49

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- _openPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._openPlayer (package:flutter_sound/public/flutter_sound_player.dart:780:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- openPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.openPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:296:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:84:21)
INFO [console] [DIO] null
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] headers:
INFO [console] [DIO] Authorization: Bearer 716|qgmIJ9Fg1faOaGLr0a8sixtgnEaUVyO3FaUoxXnee8837f04
INFO [console] [DIO] data:
INFO [console] [DIO] transformTimeout: null
INFO [console] [DIO] receiveDataWhenStatusError: true
INFO [console] [DIO] extra: {}
INFO [console] [DIO] connectTimeout: 0:00:10.000000
INFO [console] [DIO] sendTimeout: null
INFO [console] [DIO] receiveTimeout: 0:00:10.000000
INFO [console] [DIO] responseType: ResponseType.json
INFO [console] [DIO] followRedirects: true
INFO [console] [DIO] persistentConnection: true
INFO [console] [DIO] *** Request ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=1015&rehabilitation_day_id=2829&workout_id=132
INFO [console] [DIO] method: GET
INFO [console] position_message: Теперь поднимите правую ногу вверх до комфортной вам рабочей высоты, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}, {id: 99, command_side: left, position_number: 2, position_message: Теперь поднимите левую ногу вверх до комфортной вам рабочей высоты, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}]}]}]}}
INFO [console] [DIO]
INFO [console] r: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 207, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 82, component_side: left, segment_type: null, parts: [{id: 208, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 209, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 94, command_side: right, position_number: 1, position_message: Лягте на левый бок, левую ногу согните для устойчивости. Правая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}, {id: 95, command_side: left, position_number: 1, position_message: Лягте на правый бок, правую ногу согните для устойчивост
INFO [console] и. Левая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}]}, {id: 56, name: Калибровка рабочего угла (угол между прямой таза и ногой), sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 83, component_side: right, segment_type: null, parts: [{id: 210, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 211, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 212, sequence_number: 3, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}]}, {id: 84, component_s
INFO [console] ide: left, segment_type: null, parts: [{id: 213, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 214, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 215, sequence_number: 3, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}]}], commands: [{id: 96, command_side: right, position_number: 1, position_message: Оставайтесь лежать на боку, правая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 97, command_side: left, position_number: 1, position_message: Оставайтесь лежать на боку, левая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 98, command_side: right, position_number: 2,
INFO [console] елайте движения в нужной амплитуде}]}]}, {id: 42, sequence_number: 5, is_monitored: true, name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC78495HZ7HDF3FGQ104G16.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC78499GQQ5WEFZWRN07YFK.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id
INFO [console] : 42, sequence_number: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 42, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 42, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 42, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 42, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед собой для равновесия}, {exercise_id: 42, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 42, sequence_number: 7, step_
INFO [console] text: В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 42, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 42, sequence_number: 9, step_text: Повторите необходимое количество раз }]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Поднимайте и опускайте правую ногу, left_main_command: null, calibration_parameters: [{id: 55, name: Калибровка сегмента ноги, sequence_number: 1, calibration_parameter_type: one_segment, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 81, component_side: right, segment_type: null, parts: [{id: 206, sequence_numbe
INFO [console] лжна находиться под углом от 90 до 45 градусов относительно пола. Для удобства и стабильности можно опираться не на прямые руки, а на предплечья, согнув руки в локтях}, {exercise_id: 41, sequence_number: 3, step_text: Приподнимите рабочую ногу на 5-10 см }, {exercise_id: 41, sequence_number: 4, step_text: На выдохе отведите рабочую ногу в сторону (наружу) на максимально возможную амплитуду, которую позволяет ваша подвижность и физическое состояние. Движение должно происходить за счёт работы мышц бедра}, {exercise_id: 41, sequence_number: 5, step_text: На вдохе так же плавно верните ногу в исходное положение (перед собой), но не кладите её на пол до окончания подхода. Нога остаётся на весу}, {exercise_id: 41, sequence_number: 6, step_text: Повторите движение ногой заданное количество раз}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Отводите правую ногу, left_main_command: null, calibration_parameters: [{id: 54, name: Калибровка амплитуды сегмент
INFO [console] а, sequence_number: 1, calibration_parameter_type: segment_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 79, component_side: right, segment_type: null, parts: [{id: 202, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 203, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}, {id: 80, component_side: left, segment_type: null, parts: [{id: 204, sequence_number: 1, body_point: {id: 30, mediapipe_index: 29, movenet_index: null}, line_type: null, part_type: point}, {id: 205, sequence_number: 2, body_point: {id: 31, mediapipe_index: 30, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 90, command_side: right, position_number: 1, position_message: Сядьт
INFO [console] е на пол лицом к камере. Ноги выпрямите перед собой, держите их вместе. Приподнимите правую ногу на 5-10 см, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Делайте движения в нужной амплитуде}, {id: 91, command_side: left, position_number: 1, position_message: Сядьте на пол лицом к камере. Ноги выпрямите перед собой, держите их вместе. Приподнимите левую ногу на 5-10 см, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Делайте движения в нужной амплитуде}, {id: 92, command_side: right, position_number: 2, position_message: Теперь отведите правую ногу в сторону до комфортного рабочего положения, fixation_message: Фиксируем значение, не отпускайте ногу, error_message: Делайте движения в нужной амплитуде}, {id: 93, command_side: left, position_number: 2, position_message: Теперь отведите левую ногу в сторону до комфортного рабочего положения, fixation_message: Фиксируем значение, не отпускайте ногу, error_message: Д
INFO [console] e: point}, {id: 198, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 78, component_side: left, segment_type: null, parts: [{id: 199, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 200, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 201, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 86, command_side: right, position_number: 1, position_message: Оставайтесь лежать на спине правым боком к камере, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 87, command_side: left, position_number: 1, position_message: Оставайтесь лежать на спине левым боком к камере, fixation_message: Фиксируем значение, ост
INFO [console] авайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 88, command_side: right, position_number: 2, position_message: Теперь поднимите правую ногу в вверх до комфортного положения, примерный уровень: 15°-40° градусов от пола, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}, {id: 89, command_side: left, position_number: 2, position_message: Теперь поднимите левую ногу в вверх до комфортного положения, примерный уровень: 15°-40° градусов от пола, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}]}]}, {id: 41, sequence_number: 4, is_monitored: true, name: Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, image: https://rehabilitation.most.team/storage/exercise/photos/01KQC6319E6D4MPZ50SGTNW1Q6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_c
INFO [console] ount: 6, execution_time: null, instruction: {exercise_name: Отведение прямой ноги в сторону - В и.п. сидя с прямыми ногами с опорой руками назад за спиной, video: https://rehabilitation.most.team/storage/exercise/videos/01KQC6319HS0NS6B4PRV3WH9FT.mov, inventory: null, warning: Следить за тем, чтобы бедро не ротировалось (вращалось) наружу, носок стопы отведённой ноги должен “смотреть вверх”, general_description: Спина относительно поверхности может находиться от 90 до 45 градусов к полу (например, упираясь не прямыми руками, а предплечьями, отклонившись больше назад). Приподнять прямую рабочую ногу от поверхности и отвести её в сторону на сколько возможно, не опуская ногу, и вернуться в исходное положение. Можно выполнять без пауз между повторениями. Цель – тренировка мышц абдукторов бедра., steps: [{exercise_id: 41, sequence_number: 1, step_text: Сядьте на пол лицом к камере. Ноги выпрямите перед собой}, {exercise_id: 41, sequence_number: 2, step_text: Корпус отклоните назад. Спина до
INFO [console] mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 82, command_side: right, position_number: 1, position_message: Лягте на спину правым боком к камере. Ноги должны лежать на полу прямыми, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}, {id: 83, command_side: left, position_number: 1, position_message: Лягте на спину левым боком к камере. Ноги должны лежать на полу прямыми, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}]}, {id: 52, name: Калибровка угла в голеностопе, sequence_number: 2, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 75, component_side: right, segment_type: null, parts: [{id: 190, s
INFO [console] equence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 191, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 192, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 76, component_side: left, segment_type: null, parts: [{id: 193, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 194, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 195, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 84, command_side: right, position_number: 1, position_message: Потяните носок правой ноги на себя до комфортного рабочего положения, fixation_message: Фиксируе
INFO [console] м угол в голеностопе, оставайтесь в нужном положении, error_message: Стопа должна быть повернута на себя}, {id: 85, command_side: left, position_number: 1, position_message: Потяните носок левой ноги на себя до комфортного рабочего положения, fixation_message: Фиксируем угол в голеностопе, оставайтесь в нужном положении, error_message: Стопа должна быть повернута на себя}]}, {id: 53, name: Калибровка амплитуды рабочего угла, sequence_number: 3, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: max_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 77, component_side: right, segment_type: null, parts: [{id: 196, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 197, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_typ
INFO [console] d: true, name: Круговые движения ногой - в и.п. лежа на спине, image: https://rehabilitation.most.team/storage/exercise/photos/01KQA5HT9XV5G51WZS4TZJVDQ6.png, by_body_side: by_side, execution_order_type: symmetric, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Круговые движения ногой - в и.п. лежа на спине, video: https://rehabilitation.most.team/storage/exercise/videos/01KQA5HTA1S14HGRG0J5HK6SYP.mov, inventory: null, warning: Не допускайте сильного напряжения или переразгиба в пояснице, general_description: В и.п. лежа на спине. Ноги максимально выпрямлены в коленных суставах, стопы "на себя", выполнить движения по часовой стрелке, далее против часовой стрелки. Цель - тренировка четырехглавых мышц, абдукторов/аддукторов, steps: [{exercise_id: 40, sequence_number: 1, step_text: Лягте на спину, расположитесь боком рабочей ноги к камере}, {exercise_id: 40, sequence_number: 2, step_text: Руки расположите вдоль туловища ладонями вниз или в стор
INFO [console] оны для устойчивости}, {exercise_id: 40, sequence_number: 3, step_text: Ноги полностью выпрямите в коленных суставах}, {exercise_id: 40, sequence_number: 4, step_text: Стопы потяните на себя (тыльное сгибание в голеностопном суставе)}, {exercise_id: 40, sequence_number: 5, step_text: Поясницу прижмите к полу, живот слегка подтяните, чтобы избежать излишнего прогиба в пояснице}, {exercise_id: 40, sequence_number: 6, step_text: Начните выполнять круговое движение рабочей выпрямленной ногой. Нога в верхней точке должна подниматься на уровень 30°-45° градусов от пола}, {exercise_id: 40, sequence_number: 7, step_text: Направление ноги (по часовой стрелке / против часовой стрелки) меняйте после каждого повторения}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Выполняйте круговые движения правой ногой, left_main_command: null, calibration_parameters: [{id: 51, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixatio
INFO [console] n_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 73, component_side: right, segment_type: null, parts: [{id: 184, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 185, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 186, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 74, component_side: left, segment_type: null, parts: [{id: 187, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 188, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 189, sequence_number: 3, body_point: {id: 28,
INFO [console] e: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, position_number: 1, position_message: Лягте на спину правым боком к камере, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}, {id: 55, command_side: left, position_number: 1, position_message: Лягте на спину левым боком к камере, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}]}, {id: 42, name: Калибровка амплитуды рабочего угла, sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_sid
INFO [console] e: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts: [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, position_number: 1, p
INFO [console] osition_message: Оставайтесь лежать правым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 57, command_side: left, position_number: 1, position_message: Оставайтесь лежать левым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 58, command_side: right, position_number: 2, position_message: Теперь потяните носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}, {id: 59, command_side: left, position_number: 2, position_message: Теперь потяните носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}]}]}, {id: 40, sequence_number: 3, is_monitore
INFO [console] y_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 6, execution_time: null, instruction: {exercise_name: Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text: Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, seq
INFO [console] uence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах}, {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка
INFO [console] угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_typ
INFO [console] PoseEstimator: worker isolate up (gpu=false, fallback=none, model=pose_landmarks_detector_heavy.tflite (27055 KB), cores=cores=[4, 5, 6, 7]@2707MHz ok, on cpu7)
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=394x853
INFO [console] PASSPORT_STATE: phase=waitingReady hint=searching
INFO [console] CameraVideoRecorder: Начат сбор кадров в буфер (720 x 480)
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=19(16.0fps) processed=4(3.4fps) replaced=13(11.0fps) buildMs=3.55 estimatorMs=297.32 (pre=2.1 infer=188.5 det=0.0) totalMs=303.28 lagMs=355.1 predLatMs=80.0 actualFps=3.4
INFO [console] POSE_LM: [0 frame=(231,85)] [11 frame=(306,91)] [12 frame=(263,134)] [23 frame=(271,348)] [24 frame=(251,369)] frameSize=480 x 720 screenSize=394x853
INFO [console] POSE_MAP: [0 norm=(0.528,0.118)] [11 norm=(0.301,0.127)] [12 norm=(0.430,0.186)] [23 norm=(0.408,0.484)] [24 norm=(0.466,0.513)]
INFO [console] BODY_POINT_ENGINE: first geometry event — points=33 isCalibrated=false
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=14(13.6fps) processed=5(4.9fps) replaced=9(8.7fps) buildMs=0.98 estimatorMs=203.36 (pre=3.4 infer=200.0 det=0.0) totalMs=205.14 lagMs=259.6 predLatMs=80.0 actualFps=4.9
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=14(12.6fps) processed=5(4.5fps) replaced=9(8.1fps) buildMs=1.36 estimatorMs=220.79 (pre=8.1 infer=229.1 det=0.0) totalMs=222.38 lagMs=279.5 predLatMs=87.1 actualFps=4.5
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=14(11.9fps) processed=5(4.3fps) replaced=9(7.7fps) buildMs=2.09 estimatorMs=233.52 (pre=26.2 infer=201.2 det=0.0) totalMs=234.35 lagMs=266.8 predLatMs=96.8 actualFps=4.3
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.63(min 0.4) lean=2.8deg(max 20.0) speed=0.063(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=15(12.7fps) processed=5(4.2fps) replaced=11(9.3fps) buildMs=1.53 estimatorMs=233.43 (pre=4.4 infer=215.6 det=0.0) totalMs=235.61 lagMs=272.6 predLatMs=104.3 actualFps=4.2
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.65(min 0.4) lean=2.7deg(max 20.0) speed=0.074(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=14(13.8fps) processed=4(3.9fps) replaced=9(8.9fps) buildMs=1.56 estimatorMs=221.26 (pre=4.8 infer=208.4 det=0.0) totalMs=222.97 lagMs=248.9 predLatMs=109.1 actualFps=3.9
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=1.1deg(max 20.0) speed=0.041(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(11.1fps) processed=5(4.3fps) replaced=8(6.8fps) buildMs=1.13 estimatorMs=225.25 (pre=5.8 infer=200.3 det=0.0) totalMs=226.84 lagMs=265.0 predLatMs=113.8 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.66(min 0.4) lean=0.3deg(max 20.0) speed=0.042(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(10.6fps) processed=5(4.1fps) replaced=8(6.5fps) buildMs=1.24 estimatorMs=227.57 (pre=4.3 infer=220.1 det=0.0) totalMs=228.52 lagMs=278.7 predLatMs=117.5 actualFps=4.1
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.65(min 0.4) lean=3.9deg(max 20.0) speed=0.052(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=15(12.0fps) processed=5(4.0fps) replaced=10(8.0fps) buildMs=1.26 estimatorMs=232.96 (pre=5.8 infer=235.7 det=0.0) totalMs=235.78 lagMs=259.7 predLatMs=120.3 actualFps=4.0
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] PASSPORT_WHY: hint=ready frontal=0.71(min 0.4) lean=0.6deg(max 20.0) speed=0.047(max 0.06) armsDown=true armsAside=true(2.37 of min 1.15)
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] POSE_METRICS: received=15(13.0fps) processed=5(4.3fps) replaced=10(8.7fps) buildMs=1.56 estimatorMs=228.49 (pre=4.0 infer=216.7 det=0.0) totalMs=230.74 lagMs=274.4 predLatMs=122.5 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.71(min 0.4) lean=1.5deg(max 20.0) speed=0.022(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] POSE_METRICS: received=17(15.6fps) processed=5(4.6fps) replaced=12(11.0fps) buildMs=1.26 estimatorMs=217.03 (pre=4.4 infer=195.5 det=0.0) totalMs=218.07 lagMs=280.9 predLatMs=124.2 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.73(min 0.4) lean=0.8deg(max 20.0) speed=0.056(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=20(17.5fps) processed=5(4.4fps) replaced=15(13.1fps) buildMs=1.96 estimatorMs=226.77 (pre=4.4 infer=200.8 det=0.0) totalMs=227.91 lagMs=309.3 predLatMs=125.5 actualFps=4.4
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.69(min 0.4) lean=2.5deg(max 20.0) speed=0.037(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=17(14.6fps) processed=5(4.3fps) replaced=12(10.3fps) buildMs=1.93 estimatorMs=232.11 (pre=4.7 infer=215.0 det=0.0) totalMs=233.33 lagMs=273.8 predLatMs=126.5 actualFps=4.3
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] PASSPORT_WHY: hint=ready frontal=0.68(min 0.4) lean=1.7deg(max 20.0) speed=0.030(max 0.06) armsDown=true armsAside=true(2.36 of min 1.15)
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] POSE_METRICS: received=19(16.3fps) processed=5(4.3fps) replaced=14(12.0fps) buildMs=1.97 estimatorMs=230.12 (pre=4.7 infer=211.2 det=0.0) totalMs=232.74 lagMs=262.4 predLatMs=127.3 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=ready frontal=0.65(min 0.4) lean=1.6deg(max 20.0) speed=0.024(max 0.06) armsDown=true armsAside=true(2.31 of min 1.15)
INFO [console] POSE_METRICS: received=15(12.8fps) processed=5(4.3fps) replaced=10(8.5fps) buildMs=2.14 estimatorMs=232.93 (pre=4.2 infer=212.7 det=0.0) totalMs=234.07 lagMs=266.5 predLatMs=127.9 actualFps=4.3
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.65(min 0.4) lean=1.2deg(max 20.0) speed=0.022(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=collecting hint=lowerArms
INFO [console] POSE_METRICS: received=15(13.7fps) processed=5(4.6fps) replaced=10(9.1fps) buildMs=4.70 estimatorMs=218.08 (pre=4.3 infer=218.1 det=0.0) totalMs=218.83 lagMs=285.0 predLatMs=128.4 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=ready frontal=0.66(min 0.4) lean=1.3deg(max 20.0) speed=0.012(max 0.06) armsDown=true armsAside=true(2.23 of min 1.15)
INFO [console] POSE_METRICS: received=12(10.8fps) processed=5(4.5fps) replaced=7(6.3fps) buildMs=4.13 estimatorMs=222.07 (pre=4.0 infer=200.9 det=0.0) totalMs=223.03 lagMs=283.0 predLatMs=128.8 actualFps=4.5
INFO [console] PASSPORT_WHY: hint=ready frontal=0.66(min 0.4) lean=1.4deg(max 20.0) speed=0.004(max 0.06) armsDown=true armsAside=true(2.19 of min 1.15)
INFO [console] POSE_METRICS: received=16(14.4fps) processed=5(4.5fps) replaced=11(9.9fps) buildMs=2.35 estimatorMs=220.37 (pre=5.8 infer=205.1 det=0.0) totalMs=221.98 lagMs=302.8 predLatMs=129.0 actualFps=4.5
INFO [console] PASSPORT_STATE: phase=collecting hint=lowerArms
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.62(min 0.4) lean=3.1deg(max 20.0) speed=0.015(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] POSE_METRICS: received=16(14.1fps) processed=5(4.4fps) replaced=11(9.7fps) buildMs=1.39 estimatorMs=217.80 (pre=4.7 infer=198.5 det=0.0) totalMs=219.05 lagMs=255.1 predLatMs=129.3 actualFps=4.4
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.59(min 0.4) lean=3.4deg(max 20.0) speed=0.032(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=17(16.9fps) processed=4(4.0fps) replaced=13(13.0fps) buildMs=1.53 estimatorMs=249.23 (pre=4.2 infer=198.1 det=0.0) totalMs=250.40 lagMs=283.7 predLatMs=129.4 actualFps=4.0
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.58(min 0.4) lean=1.5deg(max 20.0) speed=0.011(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=18(15.2fps) processed=5(4.2fps) replaced=13(11.0fps) buildMs=2.98 estimatorMs=235.48 (pre=3.8 infer=207.2 det=0.0) totalMs=236.49 lagMs=293.9 predLatMs=129.5 actualFps=4.2
INFO [console] BODY_POINT_ENGINE: isCalibrated → true (event #103)
INFO [console] LEG_SKEL_L: i23=(0.094,0.008,0.018) v=1.000 p=1.000 i25=(0.127,0.368,0.019) v=0.957 p=1.000 i27=(0.154,0.676,0.195) v=0.972 p=1.000
INFO [console] LEG_SKEL_R: i24=(-0.092,-0.011,-0.016) v=1.000 p=1.000 i26=(-0.062,0.287,0.047) v=0.877 p=1.000 i28=(-0.112,0.614,0.263) v=0.954 p=1.000
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.58(min 0.4) lean=1.7deg(max 20.0) speed=0.028(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=13(11.0fps) processed=5(4.2fps) replaced=8(6.8fps) buildMs=3.40 estimatorMs=222.14 (pre=4.7 infer=229.3 det=0.0) totalMs=236.43 lagMs=289.6 predLatMs=129.6 actualFps=4.2
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.59(min 0.4) lean=0.6deg(max 20.0) speed=0.008(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] AML_EXE: 166.4331871027171
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1078:13)
INFO [console] │ #1 FlutterSoundPlayer.startPlayer.<anonymous closure> (package:flutter_sound/public/flutter_sound_player.dart:1058:17)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> startPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._stop (package:flutter_sound/public/flutter_sound_player.dart:1826:13)
INFO [console] │ #1 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1113:11)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> _stop
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] CameraVideoRecorder: Сбор завершен. Всего кадров: 337
INFO [console] PoseCameraView Auto-Record: Видео собрано по пути: /data/user/0/team.most.rehabilitation.app/code_cache/training_video.mp4
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.stopPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:360:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:98:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ---> stopPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.stopPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:375:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:98:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- stopPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._stop (package:flutter_sound/public/flutter_sound_player.dart:1885:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- _stop
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] POSE_METRICS: received=10(8.6fps) processed=4(3.4fps) replaced=6(5.2fps) buildMs=2.98 estimatorMs=288.42 (pre=8.8 infer=195.3 det=0.0) totalMs=290.72 lagMs=333.2 predLatMs=129.7 actualFps=3.4
INFO [console] AML_EXE: 166.94306162261557
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer._startPlayer (package:flutter_sound/public/flutter_sound_player.dart:1156:13)
INFO [console] │ #1 <asynchronous suspension>
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- startPlayer
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.log (package:flutter_sound/public/flutter_sound_player.dart:418:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:118:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 [android]: mediaPlayer prepared and started
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.startPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:341:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:91:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 ---> startPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.startPlayerCompleted (package:flutter_sound/public/flutter_sound_player.dart:353:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:91:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 <--- startPlayerCompleted: true
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] AML_EXE: 167.40325390162133
INFO [console] AML_EXE: 167.85191733221637
INFO [console] AML_EXE: 167.9214628553368
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.60(min 0.4) lean=0.9deg(max 20.0) speed=0.006(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] AML_EXE: 167.9554602519667
INFO [console] POSE_METRICS: received=15(13.5fps) processed=5(4.5fps) replaced=10(9.0fps) buildMs=1.93 estimatorMs=220.24 (pre=4.4 infer=206.9 det=0.0) totalMs=221.78 lagMs=297.3 predLatMs=129.8 actualFps=4.5
INFO [console] AML_EXE: 168.01893543218836
INFO [console] AML_EXE: 165.76893543218836
INFO [console] AML_EXE: 163.51893543218836
INFO [console] AML_EXE: 161.26893543218836
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=fullBodyNotVisible
INFO [console] AML_EXE: 159.01893543218836
INFO [console] POSE_METRICS: received=11(9.0fps) processed=5(4.1fps) replaced=6(4.9fps) buildMs=1.96 estimatorMs=241.72 (pre=4.0 infer=288.1 det=0.0) totalMs=245.25 lagMs=315.5 predLatMs=129.8 actualFps=4.1
INFO [console] AML_EXE: 156.76893543218836
INFO [console] AML_EXE: 158.10642140114038
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] AML_EXE: 155.85642140114038
INFO [console] POSE_METRICS: received=20(18.1fps) processed=5(4.5fps) replaced=15(13.6fps) buildMs=1.92 estimatorMs=219.89 (pre=2.8 infer=205.4 det=0.0) totalMs=221.13 lagMs=266.4 predLatMs=129.9 actualFps=4.5
INFO [console] AML_EXE: 153.60642140114038
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] AML_EXE: null
INFO [console] POSE_METRICS: received=16(14.0fps) processed=5(4.4fps) replaced=11(9.6fps) buildMs=2.18 estimatorMs=227.21 (pre=2.9 infer=207.8 det=0.0) totalMs=228.11 lagMs=268.8 predLatMs=129.9 actualFps=4.4
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.log (package:flutter_sound/public/flutter_sound_player.dart:418:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:118:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 [android]: Playback completed.
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.audioPlayerFinished (package:flutter_sound/public/flutter_sound_player.dart:256:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:72:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:---> audioPlayerFinished
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] │ #0 FlutterSoundPlayer.audioPlayerFinished (package:flutter_sound/public/flutter_sound_player.dart:274:13)
INFO [console] │ #1 MethodChannelFlutterSoundPlayer.channelMethodCallHandler.<anonymous closure> (package:flutter_sound_platform_interface/method_channel_flutter_sound_player.dart:72:21)
INFO [console] ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
INFO [console] │ 🐛 FS:<--- audioPlayerFinished
INFO [console] └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
INFO [console] AML_EXE: null
INFO [console] LEG_SKEL_L: i23=(0.068,0.034,0.049) v=0.999 p=1.000 i25=(0.046,0.259,-0.130) v=0.293 p=0.999 i27=(-0.129,0.602,-0.074) v=0.256 p=0.994
INFO [console] LEG_SKEL_R: i24=(-0.064,-0.036,-0.047) v=0.999 p=1.000 i26=(-0.039,0.116,-0.178) v=0.291 p=0.999 i28=(-0.281,0.462,-0.081) v=0.326 p=0.991
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=fullBodyNotVisible frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=11(11.0fps) processed=4(4.0fps) replaced=7(7.0fps) buildMs=1.84 estimatorMs=233.74 (pre=4.7 infer=212.5 det=0.0) totalMs=235.71 lagMs=280.2 predLatMs=129.9 actualFps=4.0
INFO [console] AML_EXE: 151.35642140114038
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] AML_EXE: null
INFO [console] PASSPORT_WHY: hint=searching frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=searching
INFO [console] POSE_METRICS: received=17(15.5fps) processed=5(4.6fps) replaced=13(11.9fps) buildMs=1.90 estimatorMs=217.50 (pre=4.0 infer=216.0 det=0.0) totalMs=218.84 lagMs=274.5 predLatMs=129.9 actualFps=4.6
INFO [console] PASSPORT_WHY: hint=searching frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=fullBodyNotVisible
INFO [console] POSE_METRICS: received=23(19.4fps) processed=12(10.1fps) replaced=10(8.4fps) buildMs=1.75 estimatorMs=85.02 (pre=5.0 infer=197.9 det=57.0) totalMs=85.81 lagMs=102.1 predLatMs=130.0 actualFps=10.1
INFO [console] AML_EXE: null
INFO [console] AML_EXE: 149.10642140114038
INFO [console] AML_EXE: 146.85642140114038
INFO [console] PASSPORT_WHY: hint=searching frontal=n/a(min 0.4) lean=n/adeg(max 20.0) speed=n/a(max 0.06) armsDown=n/a armsAside=n/a(n/a of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=searching
INFO [console] POSE_METRICS: received=18(17.7fps) processed=6(5.9fps) replaced=12(11.8fps) buildMs=2.59 estimatorMs=168.63 (pre=4.9 infer=200.3 det=0.0) totalMs=169.66 lagMs=206.9 predLatMs=130.0 actualFps=5.9
$
250 строкUTF-8LIVE