Вверх ↑
Этот топик читают: Гость
Ответов: 8930
Рейтинг: 823
#106: 2012-12-19 19:45:48 ЛС | профиль | цитата
rolin, 240*43=10320 двойных отсчётов ~=20 кГц полосу можно вывести в виде гистограммы. А в прилагаемом ПО есть эта картинка, может и с водопадом?
карма: 19

0
Ответов: 91
Рейтинг: 1
#107: 2012-12-19 20:45:49 ЛС | профиль | цитата
Ну так вы всё правильно посчитали, +/- 24 кГц можно отобразить. Только скорость выдачи пакетов зависит только от скорости заполнения буфера, скорость пакетов может меняться, но данные корректны только как сэмплы 48кГц. В родном ПО Quisk есть и водопад, и гистограммы и осциллограф. Написано на Питоне, есть исходники.http://www.youtube.com/watch?v=rID16EqIR64
------------ Дoбавленo в 20.45:
Описание железа.https://docs.google.com/open?id=0BzuiSb2tJSbzc2ktVXlVX3ZZcms
карма: 1

0
Ответов: 8930
Рейтинг: 823
#108: 2012-12-19 22:24:43 ЛС | профиль | цитата
rolin писал(а):
В родном ПО Quisk есть и водопад, и гистограммы и осциллограф
Конечно есть, а у Вас имеется этот пакет ПО ?
карма: 19

0
Ответов: 91
Рейтинг: 1
#109: 2012-12-20 10:34:23 ЛС | профиль | цитата
Оно ж общедоступно в интернете http://james.ahlstrom.name/quisk/
Успешно работает у меня на WIN8.
карма: 1

0
Ответов: 8930
Рейтинг: 823
#110: 2012-12-20 12:53:48 ЛС | профиль | цитата
rolin, тогда непонятно, что ещё нужно сделать с этими данными (можно средствами HiAsm сделать то же самое: развернуть по частоте, водопад, выделение полосы для воспроизведения и т. д., но нужно-ли )
карма: 19

0
Ответов: 91
Рейтинг: 1
#111: 2012-12-20 13:48:43 ЛС | профиль | цитата
Вот и я думаю что не нужно. Тем более что существует большое количество отличных программ где все это уже сделано.
Можно сделать:
1) Передать данные через виртуальную звуковуху любой другой программе обработки. Минус - управлять настройкой придется через стороннюю программу
что очень неудобно.
2) Сделать конвертор протокола в железо SDR-IP и тогда лучшая на сегодняшний день программа SDR-Radio сможет полноценно работать с HIQSDR.
Минусы - надо делать эмулятор , Nesco вроде знает как но молчит.


Я тут потихоньку сделал обработку кадра, подаю полученные цифры на график и вижу фигню. Нужно как-то преобразовать данные?
И если ставлю участок на выполнение по таймеру, то участок не выполняется полностью. Что делать?
code_29822.txt
карма: 1

0
файлы: 1code_29822.txt [6.8KB] [98]
Разработчик
Ответов: 26170
Рейтинг: 2127
#112: 2012-12-20 13:55:32 ЛС | профиль | цитата
rolin писал(а):
Nesco вроде знает как но молчит

Не, не знаю. Я предлагал просто сетевой эмулятор сделать, чтобы сделать программный, надо досконально знать аппаратную часть. Увы, у меня ее нет. Да и как-то мне это не шибко интересно
карма: 22

0
Ответов: 91
Рейтинг: 1
#113: 2012-12-20 14:34:35 ЛС | профиль | цитата
Вот-вот, сетевой эмулятор надо. Чтобы прога думала что с железом разговаривает, а мы уж с протоколами обмена разберёмся.
Это можно сделать стандартными средствами HIASM ?
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#114: 2012-12-20 14:57:02 ЛС | профиль | цитата
rolin писал(а):
Это можно сделать стандартными средствами HIASM ?

Да можно, если известно, как работает железо. Поставь UDP на прием и передачу с обратными портами и отвечай на запросы ПО согласно протокола обмена. IP адрес должен быть 127.0.0.1 у обоих UDP
------------ Дoбавленo в 14.57:
Что-то типа такого

Add(MainForm,2953706,175,280)
{
Width=338
Height=317
link(onCreate,3036022:doEvent1,[])
}
Add(Memo,11053265,357,231)
{
Left=15
Top=10
Width=140
Height=205
}
Add(Memo,3683332,357,336)
{
Left=170
Top=10
Width=140
Height=205
}
Add(Button,13063220,224,238)
{
Left=55
Top=250
TabOrder=-1
Caption="to1002"
link(onClick,3926629:doSend,[])
}
Add(Button,11849256,224,343)
{
Left=210
Top=250
TabOrder=-1
Caption="to1001"
link(onClick,1594543:doSend,[])
}
Add(Edit,490756,294,175)
{
Left=15
Top=220
Width=140
Text="Send to 1002"
}
Add(Edit,7321776,294,280)
{
Left=170
Top=220
Width=140
Text="Send to 1001"
}
Add(UDP,3926629,294,231)
{
LocalPort=1001
RemotePort=1002
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,11053265:doAdd,[])
link(Data,490756:Text,[])
}
Add(UDP,1594543,294,336)
{
LocalPort=1002
RemotePort=1001
LocalIP="127.0.0.1"
RemoteIP="127.0.0.1"
AutoConnect=0
link(onReceive,3683332:doAdd,[])
link(Data,7321776:Text,[])
}
Add(Hub,3036022,224,294)
{
link(onEvent1,3926629:doOpen,[(266,300)(266,237)])
link(onEvent2,1594543:doOpen,[(266,307)(266,342)])
}

карма: 22

0
Ответов: 8930
Рейтинг: 823
#115: 2012-12-20 15:02:08 ЛС | профиль | цитата
rolin писал(а):
Что делать?
Вечный вопрос Запишите по схемке code_29826.txt минуту приёма (желательно с присутствием CW) и выложите в архиве здесь ("в поликлинику для опытов" )
карма: 19

0
файлы: 1code_29826.txt [982B] [134]
Ответов: 91
Рейтинг: 1
#116: 2012-12-20 16:03:50 ЛС | профиль | цитата
Леонид, Вы меня не поняли. По Ваше схеме ведь все работает, виден шум в середине графика. Вот я и спрашиваю как Вы данные обработали - для меня там не все понятно.Хотелось бы знать ,что конкретно мы имеем на выходе IC.
code_29828.txt
Програмка для записи, похоже записывает только первый байт каждого фрейма, так как файл содержит только
а
б
с
д
е
ф......и далее все символы по кругу
карма: 1

0
файлы: 1code_29828.txt [8.9KB] [138]
Ответов: 8930
Рейтинг: 823
#117: 2012-12-20 17:53:41 ЛС | профиль | цитата
rolin писал(а):
что конкретно мы имеем на выходе IC

Первый (и все последующие) байт превращаем в беззнаковое число от "0" до "255" (функция ord(StrIn[1])), второй байт превращаем в строку из "0" и "1". Вывод их наружу через точку onError. Далее с шагом 6 читаем по три байта и вычисляем знаковое трёхбайтовое целое. После вычисления данные сразу выводятся наружу через точки onSignalI и onSignalQ на которых и имеем по 240 событий, содержащих эти данные.
[quote=rolin] записывает только первый байт [/quote] Упустил :oops: Надо поставить конвертор

Add(StreamConvertor,16358761,392,196)
{
Mode=6
}
карма: 19

0
Ответов: 91
Рейтинг: 1
#118: 2012-12-20 21:54:15 ЛС | профиль | цитата
При использовании элемента RGB равно как и парсера %1 + %2 * 256 + %3 * 65536 для обьединения трех байтов, получается такая фигня.
https://docs.google.com/open?id=0BzuiSb2tJSbzUS1hSGdpY1JyV00
нужно формировать знаковое число на выходе.
Леонид, Вы не могли бы добавить в свою IC события "запись кадра в массив окончен" и вывод первого и второго байта, я бы использовал его.
карма: 1

0
Ответов: 8930
Рейтинг: 823
#119: 2012-12-20 23:10:14 ЛС | профиль | цитата
rolin писал(а):
При использовании элемента RGB
Вы же видели в IC формулу перевода! В MathParse формула имеет вид: (%3>127)*(%1+%2*256+%3*65536-16777216)+(%3<=127)*(%1+%2*256+%3*65536), для RGB code_29835.txt. Ни то, ни другое не рекомендую, т. к. такая обработка не очень быстрая.
Первый байт и выводить не надо, полезной информации нет, запишите в 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

0
файлы: 1code_29835.txt [598B] [106]
Ответов: 91
Рейтинг: 1
#120: 2012-12-21 00:55:35 ЛС | профиль | цитата

hiMainForm_14D04D0.pas(588,19) Error: Identifier not found "trVertical"
hiMainForm_14D04D0.pas(598,25) Error: Identifier not found "orHorizontal"

Подскажите, как мне определить где ошибка, что означают коды?
карма: 1

0
файлы: 1code_29836.txt [151B] [133]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)