What is the recommended way to do multiple channel, single point sampling for control with an NI PCI-6255 in RLP?

Hello,
I am writing a driver for the M-series NI PCI-6255 for QNX. I have downloaded the MHDDK and have all the examples working. I have also enhanced the examples to do interrupt handling (e.g. on AI_FIFO interrupt or DMA Ring Buffer interrupt). My ultimate goal is to write a driver that I can use for closed-loop control at 500 Hz using all 80 channels of the NI PCI-6255. I may also need to synchronize each scan with a NI PCIe-7841R card for which I've already written a driver. I want an interrupt-driven solution (be it programmed I/O on an interrupt or DMA that generates an interrupt) so that the CPU is available to other threads while the 80 analog inputs are being read (since it takes quite a while). I also want to minimize the number of interrupts. Basically, I will need to collect one sample from all 80 channels every 2 milliseconds.
There are many different options available to do so, but what is the recommended technique for the NI PCI-6255 card? I tried using the AI FIFO interrupt without DMA, but it seems to interrupt as soon as any data is in the AI FIFO (i.e. not empty condition), rather than when all 80 channels are in the FIFO, so more interrupts are generated than necessary. I tried using DMA in Ring Buffer mode to collect a single sample of 80 channels and interrupting on the DMA Ring Buffer interrupt, which appears to work better except that this technique runs into problems if I cannot copy all the data out of the DMA buffer before the next AI scan begins (because the DMA will start overwriting the buffer as it is in ring buffer mode). If the DMA is not in ring buffer mode or I make the ring buffer larger than one 80-channel sample then I don't have a way to generate an interrupt when one sample has been acquired (which I need, because I'm doing control).
I saw something in the documentation about a DMA Continue mode in which it looks like you can switch between two different buffers (by programming the Base Count/Address with a different address than the current address) automatically and thereby double-buffer the DMA but there is no real documentation or examples on this capability. However, I think it would work better than the Ring Buffer because I could interrupt on the DMA CONT flag presumably and be copying data out of one buffer while it is filling the other buffer.
Another option would be DMA chaining, but again, I cannot find any information on these features specific to the NI DAQs.
I tried interrupting on AI STOP figuring that I could get a single interrupt for each scan, but that doesn't appear to work as expected.
I know that DAQmx on Windows has the ability to do such single sample, multiple channel tasks at a fixed rate so the hardware must support it.
Any suggestions would be appreciated.
Thanks.
Daniel Madill

Hello,
The interrupt that will happen nearest the times that you need is the AI_Start_Interrupt in the Interrupt_A group. This interrupt will occur with each sample clock. By the second time this interrupt fires, the AI FIFO should have the samples from the first conversion. If it is easier to use programmed IO, you can read the samples out of the FIFO until you get all 80.
Additionally, you can set the DMA to send samples as soon as the FIFO is no longer empty...instead of waiting for half full or full. This change will reduce latency for your control loop. You can set AI_FIFO_Mode in AI_Mode_3_Register to 0. By the second time this interrupt fires, you should be able to check how much data is in the DMA ring buffer and read the 80 samples when they are available. You can make the ring buffer larger than 80 samples if you see data getting overwritten.
There is no interrupt associated with 80 samples being available in the FIFO or 80 samples being available/transferred by DMA to the host. X Series has much more flexibility with these interrupts.
I hope this helps!
Steven T.

Similar Messages

  • What is the best way to sync multiple collections of contacts among multiple users?

    (I originally submitted this question under the "Mac OS X Technologies" section, but got no response. I'm submitting a duplicate here because this is where all the smart folks are! My apologies that my question is only partially related to OS X Server . . . )
    What is the best way to sync multiple collections of contacts among multiple users on iOS and OS X?
    For example, suppose I have three collections of contacts: Bob's, Sally's, and Common. I want Bob to be able to access and sync Bob's contacts and Common contacts, and Sally to access and sync Sally's contacts and Common contacts. Bob and Sally never need to access or sync each other's contacts. Bob and Sally would both sync and share contacts in Common.
    How would I best implement this? It's my understanding I have three options for managing contacts across iOS and OS X: 1. iCloud accounts, 2. Install OS X server, or 3. Install and manage Darwin CardDAV directly. Which method would best support what I wish to do?
    I am a seasoned Unix geek well versed in the terminal, so I am prepared to get my hands dirty as much as necessary to achieve what I want. Also, it is sufficient if syncing takes place over WiFi on the local network, in fact, that is desirable versus syncing over the cloud.

    Thanks for your reply Nick101. I see my example was oversimplified. When I say "multiple groups of contacts over multiple users" I'm really referring to N groups of contacts over N users.
    So I need to add Fred, who can access and sync Bob's contacts, Sally's contacts, and Common contacts, as well as Fred's contacts. Can I do it with OS X server?
    You mention you keep your and your partner's contacts administered locally. What keeps you from administering them through OS X server as well?
    I am guessing this can all somehow be accomplished with multiple contact accounts, but I can't find any information on the web explicitly describing this.

  • What is the recommended way to upgrade system ruby and python binaries and their libraries?

    I'd like to upgrade my system ruby to 1.9.2 instead of old 1.8.7. Also was wondering what's the recommended way of upgrading any scripting languages installed on system?

    Hi Sogaard,
    see below:
    How does SAP recommend to integrate Webi-report in the SAP Portal? Is it through an URL iview, the iview templates (thumbnail, folder and alert) or through the Master Iview?
    The sample iViews are just samples for a particular case. The iView template allows you to use any application on the BusinessObjects system - including the viewing of content. What you are looking for is the creation process for WebI. So you have 2 options: you can use the KM integration and you can build a java application that offers the workflow you looking for and integrate it with the iView template
    Depending on what method should be used, I'd like to know which settings to be focused on. For instance, if the Master Iview is to be used, should opendocument be used instead of reports? And what other customizations will have to be done in order to integrate a Webi-report instead of a Crystal-Report?
    OpenDocument is for viewing reports. The Installation Guide outlines the integration of the iView template and the KM part.
    What is the intended use for the BOBJ repositoy manager? Would that be the way to integrate the Info-view?
    This is the integration into the KM repository which provides a richer functionality then just an iView.
    Ingo

  • What is the recommended way for persisting JMS messages?

    What is the recommended way for persisting JMS messages?. As per the IMQ admin documentation , using the default built-in persistence type which is through unix flat files is much efficient and faster, compared to the database persistence .
    Tried setting up the jdbc stuff for database persistence on iAS 6.5 . I am getting the following
    error .
    [24/Apr/2002:16:09:20 PDT] [B1060]: Loading persistent data...
    [24/Apr/2002:16:09:21 PDT] Using plugged in persistent store: database connection
    url=jdbc:oracle:thin:@dbatool.mygazoo.com:1521:qa1 brokerid=ias01
    [24/Apr/2002:16:09:23 PDT] [B1039]: Broker "jmqbroker" ready.
    [24/Apr/2002:16:11:56 PDT] ERROR [B4012]: Failed to persist interest
    SystemManager%3ASystemManagerEngine%2BiMQ+Destination%0AgetName%28%29%3A%09%09SM_Response%0AClass%3A%09%09%09com.sun.messaging.Topic%0AgetVERSION%28%29%3A%09%092.0%0AisReadonly%28%29%3A%09%09false%0AgetProperties%28%29%3A%09%7BJMQDestinationName%3DSM_Response%2C+JMQDestinationDescription%3DA+Description+for+the+Destination+Object%7D:
    java.sql.SQLException: ORA-01401: inserted value too large for column
    [24/Apr/2002:16:11:56 PDT] WARNING [B2009]: Creation of consumer SM_Response to destination 1
    failed:com.sun.messaging.jmq.jmsserver.util.BrokerException: Failed to persist interest
    SystemManager%3ASystemManagerEngine%2BiMQ+Destination%0AgetName%28%29%3A%09%09SM_Response%0AClass%3A%09%09%09com.sun.messaging.Topic%0AgetVERSION%28%29%3A%09%092.0%0AisReadonly%28%29%3A%09%09false%0AgetProperties%28%29%3A%09%7BJMQDestinationName%3DSM_Response%2C+JMQDestinationDescription%3DA+Description+for+the+Destination+Object%7D:
    java.sql.SQLException: ORA-01401: inserted value too large for column
    Any thoughts?

    From the output, you are using imq 2.0. In that release
    the key used to persist a durable subscriber in the database
    table has a limit of 100 characters. The output shows that
    your value is:
    SystemManager%3ASystemManagerEngine%2BiMQ+Destination%0AgetName%28%29%3A%09%09SM_Res
    ponse%0AClass%3A%09%09%09com.sun.messaging.Topic%0AgetVERSION%28%29%3A%09%092.0%0Ais
    Readonly%28%29%3A%09%09false%0AgetProperties%28%29%3A%09%7BJMQDestinationName%3DSM_R
    esponse%2C+JMQDestinationDescription%3DA+Description+for+the+Destination+Object%7D:
    which is much longer than 100 characters.
    You might want to shorten the string you use for the
    durable name.
    And yes, the default file-based persistence store is
    more efficient when compared to the plugged-in persistence
    through a database.

  • What is the recommended way to truncate tables in ODI?

    I want to create a separate step to truncate the result tables, before the start of the actual job. What is the recommended way of doing this?
    I am currently putting the truncate statements in the ODI procedure, but that has a lot of typing. Is there a odi command in the toolbox that I can use?
    Thanks.

    Ok,
    If the table will be loaded by interfaces, you have the "Truncate" option at the IKM's, just change it to "Yes".
    If you need to Truncate but they won't be loaded by Interfaces a possible way is:
    - requirements: it will be necessary to have some common "string" at tables names.
    1) create a procedure
    2) create an step
    3) at source tab put:
    Select table_name from user_tables where table_name in '%THE_STRING%'
    4) at target tab put:
    Truncate table #table_name
    If you don't have a common "string" you, instead, can create a table with all table names that you need to truncate and change the select command at 3).
    Does it help you?
    Message was edited by:
    Cezar_Santos

  • What is the recommended way of connecting to repository out of WebDAV, RMI, JNDI and JCA connector ?

    What is the recommended way of connecting to repository out of WebDAV, RMI, JNDI, and JCA connector possibilities provided by CQ 5.5?

    Hi dp_adusumalli,
    I recognized your list of ~8 questions you posted at around the same time, as I received that same list in our customer implementation from Arif A., from the India team, visiting San Jose. :-)
    I provided him feedback for most of the questions, so please check back with Arif for that info.
    For this particular question, can you provide specifics for the types of interactions you are interested in?
    Understanding the kinds of things you need to achieve will help determine which of the CQ/CRX interfaces is best suited for the task(s).
    I've collated a few points on this subject on this page:
    Manipulating the Adobe WEM/CQ JCR
    Regards,
    Paul

  • What is the best way to manage multiple ipods using the same itunes?

    Hi Everyone
    i am trying to manage three different ipods through the one Itunes, all with very different tastes, not sure if I am doing it the best or easiest way so does anybody have a simple solution on what you're supposed to do, to keep it all simple!
    Cheers
    Liv

    If you have created a new Windows user account you need to log out and then log back in with your original user name. By default each Windows profile will have an independent iTunes library.
    If instead you managed to create a new library within the same profile. click the icon to start iTunes and immediately press and hold down the shift key, keep holding until asked to create or choose a library. Click Choose and navigte back to your original which should be at <User's Music>\iTunes.
    Your question as posed was:
    What is the best way to manage multiple iPods using the same iTunes {library}?
    in which case Selected Playlists is probably the best approach. Simply create a playlist for each device, Alice's iPod, Bob's iPhone etc. and sync the device with the appropriate list.
    tt2

  • What is the easiest way to transfer multiple photos attached to a TEXT message to my MAC?

    What is the easiest way to transfer multiple photos attached to a TEXT message to my MAC?

    @randers4
    That is exactly what I've been doing.
    I get dozens of photos from a job site every day and it just takes forever.
    I had hoped there was an easier - or at least more direct and simpler way.
    Thanks anyway.

  • What is the easiest way to delete multiple duplicate songs?

    What is the easiest way to delete multiple duplicate songs?

    1. Google it. You may find third party applications that do what you want.
    2. Here is the link to an Apple discussion thread.
    https://discussions.apple.com/thread/3721976?start=0&tstart=0
    3. Backup before you do anything.

  • HT4796 I want to transfer my itunes from a Windows 7 machine to a new Mac, iTunes on Windows has all content on an external hard drive.  What is the recommended way to set up iTunes on my Mac so I don't lose access to my content

    I want to transfer my itunes from a Windows 7 machine to a new Mac, iTunes on Windows has all content on an external hard drive.  What is the recommended way to set up iTunes on my Mac so I don't lose access to my content

    iTunes: How to move your music to a new computer

  • I finally was successful in burning a CD of a slideshow I created in iPhoto, however, it is blurry. What is the best way to burn to a CD or DVD for clarity. Also, I realize if burned in iPhoto it will only be playable in iPhoto. Help! This is needed soon!

    I finally was successful in burning a CD of a slideshow I created in iPhoto, however, it is blurry. What is the best way to burn to a CD or DVD for clarity. Also, I realize if burned in iPhoto it will only be playable in iPhoto. Help! This is needed soon for a wedding reception!

    What version of iPhoto are you using?  How do you plan to view the slideshow at the wedding reception, on a TV screen?  If so then you will need to send the slideshow to iDVD and burn a disk from there.
    If you're in iPhoto 11 and the slideshow was created in the slideshow mode and not from an album, then go to the Share menu and select iDVD.  That will create a QT movie of the slideshow and import it into iDVD.
    In iDVD select your theme and setup the menu as you'd like.  If you want the movie to begin plahying immediately when the disk is inserted into the DVD player go into the Gallery mode and drag the movie into the Autostart  bin at the left.
    Click to view full size
    If you want the movie to loop continuously go to the Advanced menu and select Loop.
    Click to view full size
    When you're finished setting upb the iDVD project save it as a disk image via the File ➙ Save as Disk Image menu option. This will allow you to check it with DVD Player before tryingto burn to disk.  Mount the disk imnage by double clicking on it and launch DVD Player and play.  If the movie plays as you want and everything is good you can  burn to disk with Disk Utility at the slowest speed available to assure the best burn quality.  Always use top quality media:  Verbatium, Maxell or Taiyo Yuden DVD-R are the most recommended in these forums.
    OT

  • What is the recommended ratio of publish nodes to dispatcher web servers for CQ5.5?

    What is the recommended ratio of publish nodes to dispatcher web servers for CQ5.5?
    We are getting conflicting opinions on this form the field. I realize this is a loaded question. I'd like to see how Adobe presents this opinion. In the past scaling at the webserver level was only loosely tied to the publishing layer. Now it seems as dynamic functionality increases the ratio is getting closer to 1:1.
    Also,I'd like to know in what use cases this load on publisher increases dramatically.

    Hello, this is an evergreen. Just call setPickOnBounds(false) on the CustomHexagon.
    An issue tracking this problem is open here: https://javafx-jira.kenai.com/browse/RT-17024

  • What is the best way to get a tune created in GB for iPad into iMovie for iPad?

    What is the best way to get a tune created in GB for iPad into iMovie for iPad?

    Haven't done it myself, but seems like the correct workflow would be:
    From GarageBand (iOS), My Songs -> select song -> Send to iTunes
    From iMovie HD (iOS), My Project -> Insert Media -> select by song name
    I'm not sure if GB creates its own playlist for tagging exported songs in your iTunes library so selecting by name would be the next-best method.
    Have you tried this?

  • What is the best way to query planned orders or work orders for make items and identify the buy component that is short for supply and vice versa?

    What is the best way to query planned orders or work orders for make items and identify the buy component that is short for supply and vice versa?

    What is the best way to query planned orders or work orders for make items and identify the buy component that is short for supply and vice versa?

  • What is the best way to have multiple devices on the same account so we can still share the same library.  Right now I have 7 and I believe it's causing them to malfunction.

    I have multiple devices on the same itunes library and they all starting to have the same issues.  Not recognizing numbers previously stored, not sending/receiving tests.  Do I need to get everyone separate itunes accounts? 

    What is the best way to set up itunes on our home network? 
    One iTunes library per person.  One iTunes account per person.
    If people wish to share songs, they can make copies.
    When the inevitable day comes when the kids get older, you will not have to come back here and post asking how all that stuff can get separated!

Maybe you are looking for

  • Which Adaptors/Cords do I need to hook my  mid-2010 Macbook Pro into my new HDTV?

    I heard they changed the port (to include audio as well as video) after my model and I want to make sure I order the right adaptors so I can hook my macbook into my new HDTVs HDMI port. Can someone point me in the right direction? Thanks, Jake

  • Acrobat 9 Pro extended 64-bit add-on uninstall crashes

    My windows 7 64 bit computer seems to reboot itself. I've located the problem to possibly be with Acrobat. When I then tried to unistall "Accrobat 9 Pro extended 64-bit add-on" the computer crashes--straight to black screen and rebooting. I tried to

  • Call print apex_util.get_print_document() with page item values

    Hi all I ran into an issue that very frustrated as it sounds so simple. I'm in Apex 3.1. My database has table TAB_CLASSES, TAB_STUDENT My application has page 1 with P1_SID is student_ID I had an simple report query name Class_query, show all classe

  • How do you disable postscript pass-through using Mac OSX 10.6

         My Phaser 4600DN prints quite slowly when printing a PDF, a 28 page documents takes nearly 7 minutes to print. On Windows 7 PC the same document takes 6 minutes to print. If I disable Postscript Pass-Through option on the driver the 28 page docu

  • No sound in multiple applications with 5.1 upmix

    Hello, I already did some research about my problem but I did not find a solution for my problem yet. I configured my .asoundrc so that I have a permanent upmix from 2.0 to 5.1. But with the current configuration I cannot have multiple applications p