TDMS

Простейшие вопросы в области инженерной разработки
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

TDMS

Сообщение rushonda »

Добрый вечер!
Задумался, как писать логи программы - обычный одномерный массив и изображение (или 2-мерный массив).
Обычно отдельно в файл писал массив, отдельно картинку.
Наткнулся на TDMS в примерах.
Стоит ли для этих целей использовать?
Есть вариант еще hdf5...
Посоветуйте по опыту...
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: TDMS

Сообщение IvanLis »

rushonda писал(а): 20 апр 2021, 20:01 Добрый вечер!
Задумался, как писать логи программы - обычный одномерный массив и изображение (или 2-мерный массив).
Обычно отдельно в файл писал массив, отдельно картинку.
Наткнулся на TDMS в примерах.
Стоит ли для этих целей использовать?
Есть вариант еще hdf5...
Посоветуйте по опыту...
TDMS нормально структурируется и работает. С hdf5 не работал.
Но больше зависит от того, для чего этот лог создается и как Вы будите потом эти данные использовать.
Например поиск и выборку там делать не очень эффективно, я в таких случаях SQLite пишу, но это больше подходит для медленных процессов.
Хотя некоторые и данные с FPGA пишут со скоростью почти 300 т. строк в секунду (Increase SQLite Write Speed)
Если нужно сохранить быстрые данные для их просмотра или пост обработки, то лучше наверное Binary TDMS использовать.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: TDMS

Сообщение Artem.spb »

rushonda писал(а): 20 апр 2021, 20:01 Посоветуйте по опыту...
По опыту советую: нужно использовать то, что больше подходит для данной задачи. А ваша задача раскрыта не полностью.
Из вопроса совершенно непонятно, что за картинка и для чего, да и вообще, что вы в будущем планируете делать с этими файлами, и даже сколько их планируется?
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: TDMS

Сообщение rushonda »

Картинки с камеры, размер около 2000на 1000 пикселей. Частота записи 10 к/с. Остальные данные около 200-500 к/с. Все для постпросмотра и постобработки.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: TDMS

Сообщение Artem.spb »

Получается, что картинка не одна? А надо стримить данные?
для постпросмотра и постобработки.
это очень растяжимое понятие.
Если файл "один", то TDMS вполне пойдёт, хотя картинки туда впихивать ещё не пробовал.
Плюс, кто будет просматривать? Если только вы, то вообще без разницы как писать. А если кто-то другой, то нужно ещё учитывать его способности прочитать ваше творение.
Если файлов много и обработка, в том числе, заключается в сравнении многих файлов, то как сказал Иван, БД могут быть удобнее.
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: TDMS

Сообщение rushonda »

Да, стримить данные. Просмотр для себя используется.
Спасибо за комментарии. По БД где почитать лучше?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: TDMS

Сообщение Artem.spb »

rushonda писал(а): 20 апр 2021, 22:00 По БД где почитать лучше?
Я сейчас читаю. Но 1440 стр, наверно, для первого знакомства слишком фундаментально :)
1017754418.jpg
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: TDMS

Сообщение Borjomy_1 »

2мп х 3 байта это 6Мб. 60Мб/с или 216Гб/ч. Не слишком ли жирно?
Imaq dx есть инструмент записи и чтения avi файлов покадрово со сжатием кодеками, установленными в системе. Индекс кадра можно писать в тдмс.
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: TDMS

Сообщение rushonda »

Artem.spb, книга >1400 страниц, спасибо, но пожалуй откажусь))

Borjomy_1 , 2мп х 3 байта это 6Мб. 60Мб/с или 216Гб/ч. Не слишком ли жирно?
Imaq dx есть инструмент записи и чтения avi файлов покадрово со сжатием кодеками, установленными в системе. Индекс кадра можно писать в тдмс.
Жирновато, но по времени не много нужно, и потом удалить соответственно.

1) Нашел в примерах, что можно писать avi с атрибутами
2) Для tdms не нашел, как писать например кластеры, кроме библиотеки VariantDataToTDMS.llb - видимо самопальная.
Вопрос просто, если параметры разносортные, то как записывать, вначале в string например перевести?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: TDMS

Сообщение Artem.spb »

rushonda писал(а): 21 апр 2021, 21:28 2) Для tdms не нашел, как писать например кластеры, кроме библиотеки VariantDataToTDMS.llb - видимо самопальная.
tdms поддерживает конкртеные (и не все) типы данных, они в справке написаны. Кластеры само собой на составляющие разбивать.
Вопрос просто, если параметры разносортные, то как записывать, вначале в string например перевести?
сомнительное решение. Строки не должны содержать нулевой символ. А если что попало в строки переводить, то хватануть 0 запросто можно
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: TDMS

Сообщение IvanLis »

Если писать изображение именно в TDMS решите, то можно преобразовать в массив байт U8.
Если допустимо использовать сжатие с потерями качества, то можно в TDMS писать путь к файлу, а файл сохранять в отдельную папку с уникальным именем.

Я иногда делаю сохранение изображений в БД, но писать в чистом виде (массив U8 или String->BLOB) можно если изображений не много и они не большие. Обычно я сохраняю изображение в png или jpeg и пишу в BLOB уже сам файл. А когда нужно достать, то сохраняю данные во временный файл и открываю его как картинку png или jpeg.

Но тут нужно конкретно понимать обстоятельства, цели и задачу. Так что лучше Вас в этом ник-то не понимает, по этому и решать Вам :wink: .
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: TDMS

Сообщение rushonda »

А как насчёт avi с атрибутами?
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: TDMS

Сообщение Kosist »

TDMS более логично использовать для записи данных измерений, т.к. потом такие данные можно обрабатывать в Diadem например.
В Вашем случае записывать видео в TMDS особой выгоды не принесет, т.к. логично использовать TDMS структуру не получится (каналы, группы, и т.д.). Потом уже лучше писать в "чистый" бинарный файл, или же датабазу.
Мы делили апельсин - много наших полегло...
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: TDMS

Сообщение rushonda »

Kosist писал(а): 22 апр 2021, 07:56 данные можно обрабатывать в Diadem например
Диадем платная только есть, как я понял...
IvanLis писал(а): 21 апр 2021, 23:50 Но тут нужно конкретно понимать обстоятельства, цели и задачу. Так что лучше Вас в этом ник-то не понимает, по этому и решать Вам .


Задача простая: писать массив данных с частотой 100-200Гц - одномерный массив из 20-30 значений (разносортных) + изображение с частотой 10 например Гц.
Чтобы была потом возможность посмотреть картинки с данными.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: TDMS

Сообщение Borjomy_1 »

Для этого необязательно все данные хранить в одном файле. Также как их не хранят в одной таблице.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»