Структура файла bin такова (стандартная – по умолчанию) Состоит из блоков ЭКГ со вставками акселерометра. Идет блок ЭКГ потом вставка акселерометра потом опять блок ЭКГ потом опять вставка акселерометра и т.д. По умолчанию блок данных с ЭКГ занимает 480 байт после чего идет 4 байтовое значение акселерометра. 480 байт блока ЭКГ состоят из 20 циклов по 24 байта. Цикл 24 байта состоит из 8 раз (8 каналов) по 3 байта (отсчет АЦП для одного канала). 3 байта отсчета 24 битного значения идут по порядку старший, средний, младший байты. Но это стандартно, по умолчанию. Структура может меняться. Данные о структуре надо брать в файле crd В файле crd надо прочитать 50-й байт - это количество каналов (по умолчанию будет 8) 51-й байт - если 1 то есть акселерометр если 0 то нет акселерометра. 52-й байт - количество «слов» в блоке ЭКГ (по умолчанию будет 20). (если же нет акселерометра то читать данные ЭКГ гораздо проще и быстрее) Таким образом стандартный (с акселерометром) файл читается так: Первые 3 байта – 1й отсчет 1го канала Далее 3 байта – 1й отсчет 2го канала Далее 3 байта – 1й отсчет 3го канала Далее 3 байта – 1й отсчет 4го канала Далее 3 байта – 1й отсчет 5го канала Далее 3 байта – 1й отсчет 6го канала Далее 3 байта – 1й отсчет 7го канала Далее 3 байта – 1й отсчет 8го канала Это первый как бы общий отсчет по всем 8 каналам. Далее 25й-26й-27й байт – 2й отсчет 1го канала Далее 3 байта – 2й отсчет 2го канала Далее 3 байта – 2й отсчет 3го канала Далее 3 байта – 2й отсчет 4го канала Далее 3 байта – 2й отсчет 5го канала Далее 3 байта – 2й отсчет 6го канала Далее 3 байта – 2й отсчет 7го канала Далее 3 байта – 2й отсчет 8го канала Это второй как бы общий отсчет по всем 8 каналам. И так 20 раз до 480 байта включительно Потом 4 байта акселерометра и так по кругу до конца файла. Есть еще один нюанс связанный с интерпретацией 3 байт (24 бит) каждого отсчета. Проблема как я понимаю связана с тем что микропроцессор прибора и процессор настольного компьютера хранят и интерпретируют 24 битные значения по разному. В настольном компьютере нет стандартного 24 битного представления а есть 32 битное. То есть 24 битное загружается в 32 битную переменную (целое со знаком). И для того чтобы корректно загрузить значение надо для каждого 24 битного значения проверять старший бит старшего байта. Если он равен 1 то требуется дополнительно в самый старший 4-й байт 4-х байтовой переменной (целое со знаком) загрузить максимальное значение 255.