Innovative Integration
 
Log inUsernamePassword
Log me on automatically each visit    
Register
Register
Log in to check your private messages
Log in to check your private messages
integrity warning in the data logger application

 
Post new topic   Reply to topic    II Support Forum Index -> Delfin
View previous topic :: View next topic  
Author Message
uhamid80



Joined: 10 Jul 2007
Posts: 7

PostPosted: Tue Jan 15, 2008 5:10 am    Post subject: integrity warning in the data logger application Reply with quote

hello,

if we use all the 32 channels of the delfin card for daq with sampling
rates upto 48 kHz, sometimes the integrity warning led turns on after
acquiring a certain number of data chunks (that is not fixed). we
are using the data logger application provided with the delfin card.

so what is the purpose of this integrity warning when its led gets on
and what is the way to handle this problem to avoid any data loss?

hoping to have your reply soon.

regards.
Back to top
View user's profile Send private message Send e-mail
jhenderson
Site Admin


Joined: 07 Mar 2006
Posts: 1178
Location: So. Cal. USA

PostPosted: Sat Jan 19, 2008 6:20 am    Post subject: Integrity warnings and errors Reply with quote

The Delfin buffering scheme is as follows;

Data is acquired on the baseboard and stored into DSP memory. Typically, a substantial portion of target memory is allocated as a FIFO - this is under DSP program control. Use of a larger portion of target memory provides greater instantaneous load-carrying capacity.

The DSP transfers data to the PC via bus-mastering through use of PciOutStream.Put() commands. EDMA is used to flow data from the target to the Host.

Data flows into a designated region of Host memory partitioned for use as bus-master memory - typically 2 MB. One-half of this region is reserved for data received from the DSP, the other half for data sent to the DSP.

During data flow, when the bus master data fills, this implies that the Host software is not responding to requests by the target to drain the bus master region. This can be the result of a host program that is performing too many calculations on each received buffer, or to a Host whose disk subsystem is too slow to sustain the current data flow rate. If the bus master region fills, the integrity warning error is displayed in the logger example. This is a warning, not an error, since the filling of the BM region does not imply that data loss has occurred; Rather, it suggests that data loss is imminent.

By contrast, the target alert mechanism is capable of monitoring the A/D FIFO within the hardware and sending an overrun message to the DSP application whenever the FIFO overflows. This is a hard error, which implies that the user application code, has not been able to keep up with the data flow rate; Data has backed up into the BM region; All DSP buffer memory has filled and the A/D FIFOs overran as a consequence.

To fix the problem, identify which of the elements in the system are at fault. If using a disk subsystem, measure its peformance to insure that it can sustain transfers at the desired sample rate continuously. For example, on a Delfin running 32-channels at 192 kHz, the max data rate is 32 * 4 * 192000 = 24 MB/s. You'll probably need a striped RAID array to handle this rate.

_________________
Jim
Back to top
View user's profile Send private message Visit poster's website
uhamid80



Joined: 10 Jul 2007
Posts: 7

PostPosted: Tue Jan 22, 2008 7:20 am    Post subject: integrity warning problems Reply with quote

hello,

thank you for your technical support.

i am using Logger6x host application in Borland C++.

i am acquiring data from 32 channels with 25.6 kHz sampling rate.

i am getting the data using the following function:-

//------------------------------------------------------------------------------
// TMain::BlockFilterFilterData() -- Maintain tally of blocks received
//------------------------------------------------------------------------------
void __fastcall TMain::BlockFilterFilterData(TIIBlockFilter *Sender,
TIIBlockBuffer InBuffer, TIIBlockBuffer &OutBuffer,bool &SendOutputData)
{
// using function OutBuffer.ConstInt();
// taking data into an integer array of size 32*1024

// doing some data arrangements on the array
// doing some mathematical manipulations on the array

// Keep track of blocks read
BlocksReceived++;
}
//-------------------------------------------------------------------------------

please note: i am not using the file writing option and binview.

when i sent you the previous email i was 2MB BM region.

after going through your reply i increased the BM region to 4 MB.

now logger6x application runs fine for a longer period but still the

integrity warning LED turns on.

i have un-installed the heavy softwares on my PC.

i have disabled the startup windows services as well.

even then i am experiencing the same problem.

please provide help in this context.

hoping to have your reply soon.

with regards.
Back to top
View user's profile Send private message Send e-mail
jhenderson
Site Admin


Joined: 07 Mar 2006
Posts: 1178
Location: So. Cal. USA

PostPosted: Tue Jan 22, 2008 12:24 pm    Post subject: Integrity warning Reply with quote

As mentioned in my previous post, an integrity warning signifies that the Host is not processing buffers at a fast enough rate. Consequently, the system is on the brink of data loss.

Try commenting out the processing code within the block filter data handler. If the system runs without any integrity warning, you must optimize your analysis code to improve performance, so that the application meets the real-time requirements.

_________________
Jim
Back to top
View user's profile Send private message Visit poster's website
uhamid80



Joined: 10 Jul 2007
Posts: 7

PostPosted: Tue Jan 22, 2008 11:19 pm    Post subject: integrity problem with data transfer Reply with quote

hello,

thank you for your suggestion.

i have analysed my processing code step by step and

i have optimized it as well.

the next step is that i am transfering the data to another computer

using tcp socket.

the data sending code is also in the block filter handler function.

now the situation is as follows:-

1. my code runs fine if i dont use the data sending code i.e. integrity

warning LED remains OFF.

2. but when i run my code along with data sending code using tcp socket

the integrity warning LED turns on.

data transfer to another computer is an essetial requirement for me.

kindly provide support in this context as well.

hope to have your reply soon.

with regards.
Back to top
View user's profile Send private message Send e-mail
jhenderson
Site Admin


Joined: 07 Mar 2006
Posts: 1178
Location: So. Cal. USA

PostPosted: Wed Jan 23, 2008 6:27 am    Post subject: Logging via ethernet Reply with quote

From your previous post, you are attempting to transfer 32-channels at 25.6 kHz. This equates to 32 * 25600 * 4 bytes/s = 3.39 MB/s. This is within the capacity of a 100 Mbit Ethernet if the system is on an isolated node. In the context of a busy WAN, you may encounter too many collisions to sustain this rate. Use of jumbo frames may also help.

You should copy the data received from the board within the BlockFilter handler into a queue, then increment a semaphore.

A background thread should be used to awaken on the semaphore, then drain the data in the queue and send packets to the ethernet interface. This will perform the critical function of decoupling the transmission from the reception, allowing reception to run at full rate unimpeded by the vagaries ethernet data flow.

Jim

_________________
Jim
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    II Support Forum Index -> Delfin (GMT - 8 Hours)
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

© Copyright 2006-2008 Innovative Integration
Powered by phpBB © 2001, 2002 phpBB Group
Based on iCGstation v1.0 Template By Ray © 2003, 2004 iOptional