На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 46,
участников - 3 [ georgiy63, ra1amw, ГОРИЗОНТ]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Программное обеспечение —› Программы для работы с сигналами (как пишут?) 
Различные приборы, оборудование, спутниковые и радиотелефоны!


Усилители сигнала и мощности

Усилители сотовой связи

Металлоискатели

Радионяни и видеоняни

Измерители КСВ и мощности
 Страница:  ««  1  2Поиск в теме
Автор Сообщение
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 01 Янв 2009 22:19:57 #  

toksin Угу, ну и ладно, успехов в новом году.
Zmej
Участник
Offline3.1
с дек 2005
...
Сообщений: 10658

Дата: 01 Янв 2009 23:21:59 #  

toksin

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

+1 :-D Только вместо брата хороший приятель...
Реклама
Google
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 01 Янв 2009 23:25:10 #  

Mesh
Спасибо, и Вам успехов :)

Думаю стоит отталкиваться от статьи, на которую я дал ссылку.
Rulez Reloaded
Участник
Offline5.6
с янв 2005
Москва
Сообщений: 13752

Дата: 02 Янв 2009 01:12:10 · Поправил: Rulez Reloaded (02 Янв 2009 01:35:56) #  

= не туда =
antony
Участник
Offline3.1
с фев 2005
Санкт-Петербург
Сообщений: 4183

Дата: 02 Янв 2009 01:58:59 #  

toksin
а по вашей штуке вы вообще практически попали в рекурсию
procedure TForm1.Timer1Timer(Sender: TObject);
begin
....
Application.ProcessMessages;
....
end;

подумайте почему.

по поводу Рефреш, Апдейт, Репэйнт и не забывайте Invalidate ;) всё полностью описано в хелп, до кучи у вас же полностью есть исходный код VCL.
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 02 Янв 2009 12:43:25 #  

antony
Вот работает:

procedure TForm1.Button1Click(Sender: TObject);
begin
ZSpectrView1.Start;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var buffer: Pointer; size: Cardinal;
begin
DXAudioIn1.Flush;
DXAudioIn1.Init;
DXAudioIn1.GetData(buffer,size);
ZSpectrView1.BufferSize:=tBufferSizes(size);
ZSpectrView1.Process(buffer^);//здесь нужно писать указатель на буфер, а не сам буфер
end;

Таймер использовал для примера, буду переделывать по Вашему совету.
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 02 Янв 2009 19:59:49 #  

Что то я не могу разобраться с компонентом DXAudioIn

var buffer:Pointer; size: Cardinal; i:integer;
begin
DXAudioIn1.Flush;
DXAudioIn1.Init;
DXAudioIn1.GetData(buffer,size);
//одномерный массив buffer длинной в size с максимальным значением для 8 бит = 255
for i:=1 to size do
begin

buffer[i] //работа с буфером

end;

DXAudioIn1.GetData(buffer:Pointer size: Cardinal) - здесь buffer типа pointer, а в обработке он должен быть, как array[0..size] . Или компонент подразумевает другой вид обработки buffer, тога какой, или неправильно понял смысл обработки сигнала.
antony
Участник
Offline3.1
с фев 2005
Санкт-Петербург
Сообщений: 4183

Дата: 02 Янв 2009 22:18:37 · Поправил: antony (02 Янв 2009 22:24:47) #  

toksin
я смотрю вы решили с наскока...

1. во первых трудно вам что-то советовать не имея описание компонента
2. DXAudioIn1.GetData(buffer,size); - сам выделяет память?
3. где вы тогда эту память (buffer,size); освобождаете?
4. здесь buffer типа pointer, а в обработке он должен быть, как array[0..size] - какой тип данных каждого элемента получаемого buffer (длина элемента данных - байт, слово, двойное слово ...)?

если предположить, что возвращается байтовый массив длиной size, то скорее всего он от 0..size-1, а не 1..size
это не Си, поэтому buffer[i] в вашем варианте нет (Аrray type required - компилятор ругаться будет)
зато есть PByte(DWORD(buffer) + i)^ = значение (0-255) :)) не красиво правда? а чтоб было красиво надо знать нам ответы на вопросы выше.
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 02 Янв 2009 22:46:50 #  

DXAudioIn1.GetData(buffer,size); buffer и size достаются из GetData

Вот так работает ZSpectrView, графически отображает спектр

var buffer: Pointer; size: Cardinal; i:integer;
begin
while true do
begin
DXAudioIn1.Flush;
DXAudioIn1.Init;
DXAudioIn1.GetData(buffer,size);
ZSpectrView1.BufferSize:=tBufferSizes(size);
ZSpectrView1.Process(buffer^);
for i:=0 to size-1 do
begin
buffer[i];//как бы дальше работать с buffer как с array of integer
end;
end;
end;

Прошу прощения если, не правильно выражаюсь, просто не особо селен в данном вопросе, но разобраться хочется.
antony
Участник
Offline3.1
с фев 2005
Санкт-Петербург
Сообщений: 4183

Дата: 02 Янв 2009 22:52:38 #  

type
TByteA = array[0..0] of Byte;
PByteA = ^TByteA;

var buffer: PByteA; size: Cardinal; i:integer;
begin
for i:=0 to size-1 do
begin
buffer[i];//buffer как с array of BYTE (вы вообще не понимаете работу с указателями и с размерностью памяти?) но для вам это будет как с integer 0..255
end;
end;
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 02 Янв 2009 23:10:44 #  

antony
Спасибо большое, то что я хотел


type
TByteA = array[0..0] of Byte;
PByteA = ^TByteA;
...

var buffer: Pointer; size: Cardinal; i:integer; buf:PByteA;
begin
while true do
begin
DXAudioIn1.Flush;
DXAudioIn1.Init;
DXAudioIn1.GetData(buffer,size);
ZSpectrView1.BufferSize:=tBufferSizes(size);
ZSpectrView1.Process(buffer^);
buf:=buffer;
for i:=0 to size-1 do
begin
//buf[i] - теперь можно работать с массивом значений

end;
end;
end;
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 02 Янв 2009 23:13:27 #  

Компоненты использовал newac и ZSpectrView.
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 03 Янв 2009 16:40:25 #  

Выкладываю исходники и экзешник проги для работы с сигналами, хочу поблагодарить antony и моего брата, за помощь в написании данной программки. Она будет полезной для таких как я, мало, что понимающих но имеющих желание вникнуть в ЦОС. Архив весит 276 кбайт, в нем исходники на делфи 7 и ссылки на компоненты , которые использовались в проекте. проект
От ZSpectrView отказался, глучноватый он на мой взгляд, хотя скорее всего это от того, что в данном направлении у меня руки немного не оттуда растут.
toksin
Участник
Offline4.8
с июл 2007
Одесская обл.
Сообщений: 2045

Дата: 04 Янв 2009 13:24:10 #  

Кому интересно, нашел ресурс с литературой по ЦОС , очень много литературы. http://dsp-book.narod.ru/books.html
 Страница:  ««  1  2 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.051; miniBB ®