procedure TformMain.MMProcData(var Message: TMessage);
var
temp: pWaveHdr;
recorded: integer;
begin
temp:=address;
if address=@wh1 then address:=@wh2 else address:=@wh1;
// если не остановлено, ставим в очередь
if not stop then
waveInAddBuffer(hwi,address,sizeof(TWaveHdr));
recorded:=address.dwBytesRecorded;
// записываем блок
BlockWrite(fOut,(temp.lpData)^,recorded);
n:=n+recorded;
formMain.Label1.Caption:=IntToStr(n);
end;
Программа-осциллограф через звуковую карту
http://www.delphisources.ru/pages/faq/base/waveform_audio_win32_api.html -здесь есть программа, которая записывает данные в файл.
Код:
как я понял (temp.lpData)^ указывает на данные, и их тип строковый.
Как их преобразовать в числовой тип, что бы можно было отобразить на графике?
Или можно получить данные в виде двумерного массива сразу с двух каналов?
В реальном времени вряд ли получится: все размажется, т.е.
графики наложатся друг на друга как попало -нужна четкая синхронизация. Запомнить и вывести один блок вполне можно,
но это еще не осциллограф.
Еще хотел бы глянуть исходники такого осциллографа на С++ или Delphi.
дык. C++ Builder от Delphi отличается только синтаксисом. Библиотека у них одна - VCL. Так что код с билдера легко переделывается в дельфовый. Да по моему в дельфовые проекты даже можно включать билдеровские файлы.
да и плюс приставка фильтующая постонное и высокое напряжение на входе не помешает...
Нужен не полноценный осциллограф, а просто отобразить примернный сигнал с двух каналов звуковой карты. Звуковая карта будет использоваться для поиска сигнала в спектре, а уже найденный сигнал будет записываться более точным АЦП.
Вот здесь не смотрел?
Цитата: Svictor56
Вот здесь не смотрел?
Осциллограф на Delphi
Осциллограф на Delphi
Спасибо. Прога то что надо, осталось только убрать мерцания
Цитата: Svictor56
Вот здесь не смотрел?
Осциллограф на Delphi
Осциллограф на Delphi
почему не работает эта ссылка
http://articles.org.ru/cn/showdetail.php?cid=6595
Один хрен,но просто кто-то ленится скопировать её и вставить сами знаете куда :)