Bonjour à tous,
Voila une partie d'un programme que j'ai (j'ai enlevé beaucoup de chose pour pas encombrer le forum et garder juste ce qui est utile)
Ce programme trace sur un graph des courbes dont les valeurs sont récupées par une carte d'acquisition de signaux à 2 entrées (
ADC.ChannelList(0) et ADC.ChannelList(1))
Comme je débute en vb et que je n'est aucune notion des buffers je vous demande de l'aide car jaimerais bien avoir les valeurs des points que le programme trace dans le graph pour chaque entrée.
Dans le programme je pense que tout est stocké dans hbuf (plot1.Buffer = hbuf) mais je n'arrive pas a avoir accès aux données.
Si quelqu'un pourrait me guider sa serais le bienvenue.
merciConst BuffSize = 200 ' size of each buffer in samples
Const SampFreq = 400 ' sample frequency in Hz
Const NumBuffs = 4 ' the number of buffers
Private Sub Adc_BufferDone()
Dim hbuf As Long
'graph data and then recycle buffer
hbuf = ADC.Queue 'retrieve buffer from Done Queue
If hbuf = 0 Then Exit Sub
plot1.Buffer = hbuf 'graph data
ADC.Queue = plot1.Buffer 'recycle buffer
End Sub
'This example demonstrates the use of an A/D subsystem to continuously acquire data at a predefined frequency
'and buffer size. The data is then graphically displayed using the data plotting custom control.
Private Sub Form_Load()
Dim i As Integer
Dim SampleByteWidth As Integer
Dim hbuf As Long
Dim NL As String, Prompt As String, Title As String
Dim BoardName As String
Dim ech As Long
ADC.ListSize = 2 'two channels
ADC.ChannelList(0) = 0
ADC.ChannelList(1) = 1
plot1.Palette(0) = QBColor(9) 'plot in Light blue
plot1.Palette(1) = QBColor(13) 'plot in Light magenta
'Get Sample Byte Width
If ADC.Resolution <= 16 Then
SampleByteWidth = 2 ' 16 bits or less set to 2 bytes wide
Else
SampleByteWidth = 4 ' e.g. 24 bit ADC set to 4 bytes wide; Round up to 32 for math reasons...
End If
'allocate buffers and put on ADC's Ready Queue
For i = 1 To NumBuffs
hbuf = CallocBuffer(0, 0, BuffSize * ADC.ListSize, SampleByteWidth)
ADC.Queue = hbuf
Next i
Function CallocBuffer(ByVal WinFlags As Integer, ByVal ExFlags As Integer, ByVal samples As Long, ByVal Samplesize As Integer) As Long
Dim hbuf As Long
Dim ecode As Long
ecode = olDmCallocBuffer(WinFlags, ExFlags, samples, Samplesize, hbuf)
If ecode <> OLNOERROR Then
OLMEMTrap "CallocBuffer", ecode
Else
CallocBuffer = hbuf
End If
End Function