
strovinati (Normal User)
Newbie
    
Messaggi: 4
Iscritto: 04/11/2009
|
Salve ragazzi. Premetto che non sono un mostro in programmazionee mi scuso anticipatamente per la mia ignoranza.
Il problema è il seguente:
Devo sviluppare un tool in visual c++ che data una funzione selezionata sull'oscilloscopio mi acquisisca e memorizzi i campioni della forma d'onda. Vorrei sapere gentilmente se esiste qualche funzione che mi permetta di far ciò.
Grazie anticipatamente
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Non credo che i programmatori del framework siano stati così lungimiranti da inserire una classe per questo scopo. Non conosco librerie al riguardo. E non so cosa usi per collegare l'oscilloscopio al computer.
Qualche dettaglio in più, magari...
|
|

lorenzo (Normal User)
Guru
    
Messaggi: 1178
Iscritto: 15/04/2008
|
tanto per intenderci.....per Visual C++ intendi C++/CLI oppure C++ standard?
perché se è come penso(cioè ti colleghi all'oscilloscopio con la seriale) usando il .NET è moooolto più facile
|
|

strovinati (Normal User)
Newbie
    
Messaggi: 4
Iscritto: 04/11/2009
|
Inizio col ringraziarvi per la considerazione.
Io uso il C++ di visual studio, e mi collego all'oscilloscopio lecroy. Sono riuscito ad acquisire campioni mediante la funzione GetScaledWaveform che mi ritorna un array di campioni.
La domanda è la seguente: come faccio a memorizzarli senza esser sicuro di non perderne nessuno?
Grazie Grazie
|
|

Thejuster (Admin)
Guru^2
    
Messaggi: 2338
Iscritto: 04/05/2008
|
scusa la domanda strovinati.
Che lib usi?
l'array di ritorno di che tipo è?
magari potresti mostrarci qualche porzione del codice?
senza uno straccio di informazione e impossibile aiutarti.
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Basta scriverli in un file wave. Ho scritto una classe apposita per gestire i wave, che supporta un metodo per aggiungere direttamente campioni all'onda:
http://www.pierotofy.it/pages/sorgenti/browse/18027/
Il metodo accetta un array di array di interi, dato che ci possono essere più canali.
|
|

strovinati (Normal User)
Newbie
    
Messaggi: 4
Iscritto: 04/11/2009
|
Ecco il codice con cui prendo i campioni dall'oscilloscopio:
CActiveDSO dso;
RECT dummyRect;
dso.Create(_T("LeCroy.ActiveDSOCtrl.1"), _T("ActiveDSOTest"), 0, dummyRect, this, 0);
// connect to the DSO
dso.MakeConnection(_T("IP: 172.25.1.2"));
dso.SetRemoteLocal(1);
// retrieve a binary waveform from the DSO (retrieves an array of single-precision floating point values.)
COleVariant waveform;
waveform.Attach(dso.GetScaledWaveform(_T("F1"), MAX_POINTS, 0));
// transfer each point into the array 'waveData'
long index = 0;
long lowerBounds = 0;
long upperBounds = 0;
float data;
SafeArrayGetLBound(waveform.parray, 1, &lowerBounds);
SafeArrayGetUBound(waveform.parray, 1, &upperBounds);
for(index = lowerBounds; index <= upperBounds; ++index)
{
SafeArrayGetElement(waveform.parray, &index, &data);
// store each element in a global array
waveData[index] = data;
}
InvalidateRect(NULL, 1);
// show any error that may have occurred
if(dso.GetErrorFlag())
AfxMessageBox(dso.GetErrorString());
Il problema è che così leggo solo i campioni visualizzati sullo schermo dell'oscilloscopio in quel momento. Ho settato un timer di 5 secondi così da richiamare questa funzione periodicamente, ma mi è stato chiesto di essere sicuro di non perdere nessun campione.
Totem mi spieghi cosa sono i file wave? Dal nome sebra prorpio il tipo di file che serve a me, me non ne ho mai sentito parlare.
Grazie a tutti della disponibilità.
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Mi pare strano che tu non abbia mai sentito (gioco di parole) dei file wave, dato che sono il formato base e più immediato per memorizzare i suoni. Per di più hai a che fare con le onde, quindi mi pare ancora più strano. Comunque:
http://it.wikipedia.org/wiki/WAV
Mai sei sicuro di star usando Visual C++ .NET? Perchè in caso contrario non potresti usare la mia libreria, e avresti anche sbagliato sezione.
|
|

strovinati (Normal User)
Newbie
    
Messaggi: 4
Iscritto: 04/11/2009
|
Si in effetti li conosco ma non avevo pensato ai file audio che si usano di solito.
Comunque si sto usando c++, il tuo link invece mi manda a tutti listati di codice in visual basic.
|
|