Сейчас на форуме: (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Расшифровка файла осциллографа |
Посл.ответ | Сообщение |
|
Создано: 07 апреля 2014 22:12 · Поправил: Mavlyudov · Личное сообщение · #1 Тестирую осциллограф на предмет сохранения данных. Записывает осциллограммы в два формата: стандартный (.DAT) и расширенный (.SAV). Пробую читать эти файлы из своей программы. Code:
Есть предположение, что в начале файла идёт заголовок, в котором может быть указатель на начало и размер блока данных. Но как этот указатель найти?? Результаты(графики) и сами файлы в прикрепленном архиве. А вот, какие я делал действия. Подал на каждый из входов сигнал с внутреннего генератора. Далее записал картинки и осциллограммы. Картинка MAP001.BMP - для тех уровней сигналов, которые получились после подключения щупов и нажатия "авто_установки". MAP002.BMP - это в режиме "set to zero", т.е. осциллограф сдвинул автоматом сигналы в ноль. Видно, что по синему каналу прямоугольник искажен (из-за расстройки щупа, наверное). Для каждой из картинок Осциллограммы записал в двух режимах: стандартный (.DAT) и расширенный (.SAV). Сначала глянул файл .SAV. Оказалось, обе осциллограммы(при том виде считывания, что вы предложили в паскале) записаны в одном столбце. Указатель на начало брал ($BC). На графике по середине всплеск (разделение каналов?), а второй канал С2 { read(f1, c1, c2) } отсутствует, но тоже виден всплеск по центру. По выходному файлу получается, что на первый канал отводится от 1 до 5999 (5998 точек), а на второй 6031..12354 (6323 точки). Как бороться с этими проблемами? Потом посмотрел файл .DAT. Указатель на начало брал ($12). Записался только один канал, да и то какой-то искаженный. Другого Канала нету. Вместо него два всплеска (см картинку). [Edited] P.S. Возможно, не в ту ветку форума тему создал. Может надо было в электронику или программирование? ![]() ![]() |
|
Создано: 07 апреля 2014 23:19 · Личное сообщение · #2 Mavlyudov пишет: На графике по середине всплеск(разделение каналов?), Эти "всплески" - это заголовки каналов: Code:
![]() |
|
Создано: 07 апреля 2014 23:45 · Личное сообщение · #3 |
|
Создано: 08 апреля 2014 02:04 · Личное сообщение · #4 Здорово видеть такие темы на этом форуме, спасибо! Не удержался, извините. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
Создано: 08 апреля 2014 14:45 · Личное сообщение · #5 rmn Судя по блокам данных каналов 0 и 1 получается, что на первый канал (0x2F98 - 0xBA)/2 = 5999dec отсчетов, на второй (0x613F - 0x2FD8)/2 = 6323dec отсчетов Хотя размер на оба блока одинаковый 70170000 (Как пользоваться этим размером с учетом того, что у осциллографа 16-ти разрядный процессор?) По графикам также видно, что размер второго канала болше первого. ![]() |
|
Создано: 08 апреля 2014 18:09 · Поправил: rmn · Личное сообщение · #6 Mavlyudov Нам нужно больше ![]() С каналами в разных масштабах, с одним/двумя/тремя графиками (два канала и функция, к примеру), со смещением фаз, с числовыми значениями Vmin/Vmax... Еще осцил обычно можно подключить к компу и через софт, идущий в комплекте, смотреть картинку. Логично предположить, что обмен между девайсом и компом идет не битмапами и пореверсить софт. ![]() |
|
Создано: 13 апреля 2014 02:59 · Личное сообщение · #7 rmn Сделал еще 8 файлов. По одному независимому сигналу на каждый из канал. Один сигнал с генератора Г5-54, второй сигнал с внутреннего генератора осциллографа. Как и раннее записывал короткие осциллограммы(файл .DAV) и длинные (.SAV). Также записывал скриншоты в bmp. Потом повторил все тоже самое, но с функцие MATH (сложение канал1+канал2). В осциллографе каждый из каналов сохраняется отдельно(при сохранении надо выбирать вручную, какой сохранить). Не знаю, сохраняется при этом math или нет. Развертки такие: канал1 = 10в/дел, канал 2 = 2в/дел. Временная = 200 мкс/дел Архив прилагается ![]() ![]() |
|
Создано: 14 апреля 2014 19:29 · Личное сообщение · #8 Mavlyudov пишет: Судя по блокам данных каналов 0 и 1 получается, что на первый канал (0x2F98 - 0xBA)/2 = 5999dec отсчетов, на второй (0x613F - 0x2FD8)/2 = 6323dec отсчетов Хотя размер на оба блока одинаковый 70170000 (Как пользоваться этим размером с учетом того, что у осциллографа 16-ти разрядный процессор?) По графикам также видно, что размер второго канала болше первого. читать столько же значений, сколько в первом канале, остальные игнорить. В этом случае график больше похож на то, что на картинках (есть небольшой баг в конце графика, но он не существенный). В dat файлах только один канал, но два массива значений для него (хз, для чего. Может графики с разным усреднением). Счетчика длины в заголовке нет, конец массива определяется по последовательности 0xffff..0xfffe (20 значений). Code:
В принципе, в софте, который идет с осцилом всю работу по парсингу файлов и отрисовке выполняет библиотека от LabVIEW, можно в эту сторону покопать Но код там тот еще адов пиздец... ![]() ![]() |
|
Создано: 15 апреля 2014 01:48 · Личное сообщение · #9 Спасибо! rmn пишет: В dat файлах только один канал, но два массива значений для него Это ты про эти два массива? (0x26a-0x12)/2 и (0x4ea-0x292)/2. Каждый по 300 отсчетов. На 31-ом байте от начала файла .SAV есть указатель на конец заголовка (или размер заголовка), значение 7B. Или это просто совпадение... ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Расшифровка файла осциллографа |