Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2017, 05:57   #1
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию gnuradio, Может есть у кого код который записывает циклично семплы ?

Привет, Может есть у кого код который записывает циклично семплы ?

Что бы можно было записывать последнии 100 - 300 метров.
Ато место на харде просто мгновенно сжирается.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 25.03.2017, 18:21   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Хотел добавить, что не обязательно это должно быть gnu-radio.

Любой код, на любом языке. Главное что бы он семблы не дробил.

Работа с usb.
Да нужно наверное сказать что это не дляпродажи или еще что.
Я радио любитель, дак что это просто хобби!
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 25.03.2017, 21:31   #3
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

...циклично-то без проблем, достаточно писать в tfilestream и position переставлять на размер сэмпла, проверять сколько до конца. Бяка в том, что в RAW вы не узнаете потом, где же был конец и продолжение записи.

Более оптимальный путь - писать с эфира кусками с новой датой-временем создания в имени файлов и удалять самые старые записи по двум признакам:
1- либо контролировать превышение размера заданного каталога
2- либо контролировать оставшееся место на диске

прямой доступ к SDR из Delphi
kutani вне форума Ответить с цитированием
Старый 25.03.2017, 22:41   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

А можно по подробнее про "tfilestream и position" ?

Так как не не важно знать начало и конец, по сути я и не знаю начало и конец.

Время от времени есть некоторые сигналы, но они очень редие, и мне нужно из записать.
Если бы их мог писать в рам циклично, к примеру 1 Гб это дас мне примерно 10 секунд по 100 мб/с. И я смогу уже по неким признакам программно или вручную тормазнуть запись. У не прервать на половине запись!
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 26.03.2017, 12:32   #5
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

1.PNG
2.PNG
3.PNG
kutani вне форума Ответить с цитированием
Старый 26.03.2017, 18:41   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Да, спасибо это я видел. Это не совсем то что я имел введу.

днный код просто затирает все что есть, при таком раскладе можно потерять данные.
я же имел введу циклический сдвиг всего Гб если буфер переполнен

Наверное такое ни кому не нужно было еще.
Буду писать сам. Если тоже интересно, выложу тут. Правда чип у меня другой.
Спасибо за помощь.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 26.03.2017, 21:47   #7
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

Данный код затирает данные, что после (выше) текущей позиции в файле и обеспечивает циклическую непрерывную запись плавающим окном размерностью буфера по файлу, обеспечивая сохранность последнего записанного "гигабайта".

Если же нужно обеспечить сохранность данных при перезапуске программы с предыдущей сессии, то достаточно три первых строки создания файла по fmcreate обернуть условием проверки существования файла - fileexists() и выработать критерий сохранения и восстановления позиции записи mem.position из предыдущей сессии (допустим в имени файла или создавать сразу файл со своей заданной структурой - шапкой-заголовком и данными). Такие пироги.

Цитата:
я же имел введу циклический сдвиг всего Гб если буфер переполнен
сами поняли, что сказали? Если файл фиксированного размера 1ГБ и он переполнен, то куда сдвигать данные? Самые старые данные нужно уничтожать и перезаписывать новыми, что и делает вышеприведенный код.
kutani вне форума Ответить с цитированием
Старый 27.03.2017, 00:41   #8
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Цитата:
Сообщение от kutani Посмотреть сообщение
сами поняли, что сказали? Если файл фиксированного размера 1ГБ и он переполнен, то куда сдвигать данные? Самые старые данные нужно уничтожать и перезаписывать новыми, что и делает вышеприведенный код.
Если бы не понимал, то как бы я выразил свою мысь ?

Как уже сказал, мне нужет сдвиг данных а не перезапись.
И соотвестственно только в памяти напряму, без файлов, так как не имею в наличии супер быстрых hdd/ssd.

Цитата:
Если файл фиксированного размера 1ГБ и он переполнен, то куда сдвигать данные?
В лево, куда же еще

если ежесекундно я молучаю 20 миллионов семплево а в памяти помещается 200 миллионов семплов, то двигать по 20 лямов в лево, а новый ставить в перед.

Да, проблем то нет. Просто я думал можт кто уже писал такое, что бы не тратить время на то что уже написано и отлажено.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 27.03.2017, 07:26   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Я одного не понял - зачем эти данные двигать?
Что мешает их читать в нужном порядке?
Гляньте для интереса: https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx
waleri вне форума Ответить с цитированием
Старый 27.03.2017, 07:59   #10
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Если в 3х словах. Каждую секунду я получаю 100-120 МБ.

В какой момент я увижу что получил инфу кторая мне нужна, я не знаю.
Это может быть 10 секунд, а можут быть 4 часа.
Само собой не одного харда не хватит. Да и не правильно, просто так гонять так хард, для это есть быстрая рам.

На мониторе я вижу текущую секунду и предидущие 9. Это как пример.

И в тот момент когда я увидел что есть инфа которую я жду, я выхожу и программы,
и у меня есть 9 секунд на это, прежде чем "моя нужная секунда" не сдвинется окончательно ха "горизонт событий".
И все 10 секунд по 120 МБ каждая, сохраняются один раз на хард, для последующей обработки.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблицы Юнга, может у кого есть код? nikcr7 Помощь студентам 0 01.02.2012 18:37
Может у кого есть исходники Slimmi C# (си шарп) 3 29.03.2011 13:54
Исправить код , который записывает реквизиты заполненого документа в реестр ХочуЗнать Microsoft Office Excel 0 03.12.2009 21:30