rolin, 240*43=10320 двойных отсчётов ~=20 кГц полосу можно вывести в виде гистограммы. А в прилагаемом ПО есть эта картинка, может и с водопадом?
Этот топик читают: Гость
Ответов: 8930
Рейтинг: 823
|
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
Ну так вы всё правильно посчитали, +/- 24 кГц можно отобразить. Только скорость выдачи пакетов зависит только от скорости заполнения буфера, скорость пакетов может меняться, но данные корректны только как сэмплы 48кГц. В родном ПО Quisk есть и водопад, и гистограммы и осциллограф. Написано на Питоне, есть исходники.http://www.youtube.com/watch?v=rID16EqIR64
------------ Дoбавленo в 20.45: Описание железа.https://docs.google.com/open?id=0BzuiSb2tJSbzc2ktVXlVX3ZZcms |
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
rolin писал(а): В родном ПО Quisk есть и водопад, и гистограммы и осциллограф |
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
rolin, тогда непонятно, что ещё нужно сделать с этими данными (можно средствами HiAsm сделать то же самое: развернуть по частоте, водопад, выделение полосы для воспроизведения и т. д., но нужно-ли )
|
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
Вот и я думаю что не нужно. Тем более что существует большое количество отличных программ где все это уже сделано.
Можно сделать: 1) Передать данные через виртуальную звуковуху любой другой программе обработки. Минус - управлять настройкой придется через стороннюю программу что очень неудобно. 2) Сделать конвертор протокола в железо SDR-IP и тогда лучшая на сегодняшний день программа SDR-Radio сможет полноценно работать с HIQSDR. Минусы - надо делать эмулятор , Nesco вроде знает как но молчит. Я тут потихоньку сделал обработку кадра, подаю полученные цифры на график и вижу фигню. Нужно как-то преобразовать данные? И если ставлю участок на выполнение по таймеру, то участок не выполняется полностью. Что делать? code_29822.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_29822.txt [6.8KB] [98] |
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
rolin писал(а): Nesco вроде знает как но молчитНе, не знаю. Я предлагал просто сетевой эмулятор сделать, чтобы сделать программный, надо досконально знать аппаратную часть. Увы, у меня ее нет. Да и как-то мне это не шибко интересно |
|||
карма: 22 |
|
Ответов: 91
Рейтинг: 1
|
|||
Вот-вот, сетевой эмулятор надо. Чтобы прога думала что с железом разговаривает, а мы уж с протоколами обмена разберёмся.
Это можно сделать стандартными средствами HIASM ? |
|||
карма: 1 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
rolin писал(а): Это можно сделать стандартными средствами HIASM ?Да можно, если известно, как работает железо. Поставь UDP на прием и передачу с обратными портами и отвечай на запросы ПО согласно протокола обмена. IP адрес должен быть 127.0.0.1 у обоих UDP ------------ Дoбавленo в 14.57: Что-то типа такого
|
|||
карма: 22 |
|
Ответов: 8930
Рейтинг: 823
|
|||
rolin писал(а): Что делать? |
|||
карма: 19 |
| ||
файлы: 1 | code_29826.txt [982B] [134] |
Ответов: 91
Рейтинг: 1
|
|||
Леонид, Вы меня не поняли. По Ваше схеме ведь все работает, виден шум в середине графика. Вот я и спрашиваю как Вы данные обработали - для меня там не все понятно.Хотелось бы знать ,что конкретно мы имеем на выходе IC.
code_29828.txt Програмка для записи, похоже записывает только первый байт каждого фрейма, так как файл содержит только а б с д е ф......и далее все символы по кругу |
|||
карма: 1 |
| ||
файлы: 1 | code_29828.txt [8.9KB] [138] |
Ответов: 8930
Рейтинг: 823
|
|||
rolin писал(а): что конкретно мы имеем на выходе ICПервый (и все последующие) байт превращаем в беззнаковое число от "0" до "255" (функция ord(StrIn[1])), второй байт превращаем в строку из "0" и "1". Вывод их наружу через точку onError. Далее с шагом 6 читаем по три байта и вычисляем знаковое трёхбайтовое целое. После вычисления данные сразу выводятся наружу через точки onSignalI и onSignalQ на которых и имеем по 240 событий, содержащих эти данные. [quote=rolin] записывает только первый байт [/quote] Упустил :oops: Надо поставить конвертор
|
|||
карма: 19 |
|
Ответов: 91
Рейтинг: 1
|
|||
При использовании элемента RGB равно как и парсера %1 + %2 * 256 + %3 * 65536 для обьединения трех байтов, получается такая фигня.
https://docs.google.com/open?id=0BzuiSb2tJSbzUS1hSGdpY1JyV00 нужно формировать знаковое число на выходе. Леонид, Вы не могли бы добавить в свою IC события "запись кадра в массив окончен" и вывод первого и второго байта, я бы использовал его. |
|||
карма: 1 |
|
Ответов: 8930
Рейтинг: 823
|
|||
rolin писал(а): При использовании элемента RGB Первый байт и выводить не надо, полезной информации нет, запишите в IC строку 50 в виде: until (Value=0)and(j<=0);
if (k-k_old)<>1 then _hi_OnEvent(onError,'error'); k_old:=k; Биты второго байта информативны, но его надо выводить в виде строки из "0" и "1", что собственно и сделано. Оставте точку onBite2 и между end-ми допишите строчку вывода _hi_OnEvent(onSignalI,Channel_I);
Одновременно событие на этой точке и есть окончание обработки данных._hi_OnEvent(onSignalQ,Channel_Q); end; _hi_OnEvent(onBite2, Str); end; end. |
|||
карма: 19 |
| ||
файлы: 1 | code_29835.txt [598B] [106] |
Ответов: 91
Рейтинг: 1
|
|||
hiMainForm_14D04D0.pas(588,19) Error: Identifier not found "trVertical" hiMainForm_14D04D0.pas(598,25) Error: Identifier not found "orHorizontal" Подскажите, как мне определить где ошибка, что означают коды? |
|||
карма: 1 |
| ||
файлы: 1 | code_29836.txt [151B] [133] |