How do I eliminate delays in transmitting buffered CAN data?

My application using the PCI-CAN Series 2 card is programming automotive modules in a time-critical environment using a MSVC++ application running on Win2000. We need to send about 1.4 Mb of data to the module as quickly as possible, preferably less than 70 seconds. We are communicating with the modules at 500 Kbaud using standard frames (not extended).
Looking at the CAN bus on a scope, we see that the frames themsevles are about 240 microseconds wide, but after each frame of data, there is roughly 300 microseconds of delay.
In my C++ implementation, I have created a transmit object with a transmit queue size of 225 frames. The transmit object is configured to transmit "by call" and the period att
ribute has been set to 0. Using this configuration, I would assume that data would be sent as fast as possible. I am certain that the transmit queue is being filled faster than it can send the data out. What is producing the delays between frames, and how do I eliminate them?
(Attached file contains transmit object configuration and frame writing routine.)
Attachments:
CAN_code.cpp ‏6 KB

Hey Glenn,
If all you want to do is transmit as fast as possible, I would recommend using the network interface object rather than a CAN object. This will reduce the overhead and should improve your performance. Use a large transmit queue length on the network interface object, and try to keep the queue full. This should maximize the output of the CAN card. Other things to be aware of: what is your total bus utilization? If other devices are transmitting on the bus and the CAN card is losing arbitration, you could see a big performance hit. Also, make sure you are using the latest NI-CAN driver (2.2). There have been performance increases over older drivers (1.6 and previous specifically).
NI-CAN v2.2: http://digital.ni.com/softlib.nsf/websearch/C
98C33F3DB0459BE86256EBD004B6ED0?opendocument&node=132070_US
Hope this helps.
Scott B.
Applications Engineer
National Instruments

Similar Messages

  • HT204053 I cannot access the app store because it wants to access an @me Apple ID that no longer works. How do I eliminate this ID so I can access apps?aid

    I cannot access the app store because the iPad is requesting a password to an Apple ID that does not exist. The app store seems to be using an @me iCloud address as the Apple ID. This is not my ID or email addresses. How can this be changed to my Apple ID?

    Easy, just sign out then back in again.
    iOS: Changing the signed-in iTunes Store account
              http://support.apple.com/kb/HT1311

  • In iWork Pages 5.1, how do I eliminate "text" in the Text Box?

    In iWork Pages 5.1, how do I eliminate the word "text" which appears in the Text Box, when I've used a color filler and no words?

    Select the text and delete.
    If you don't want text in the box, don't use a text box ie in Shapes there are various shapes. Select one without 'T'.

  • How do I eliminate duplicate email accounts on my Mac?

    how do I eliminate duplicate email accounts on my Mac?

    Go to Mail Preferences/Accounts.  Select the Account you want to remove and hit the minus button.

  • I have three Safari icons. Two in the dock and one on the desktop. How do I eliminate them?

    I have three Safari icons. Two in the dock and one on the desktop. How do I eliminate them?
    One from the dock and the one on the desktop.

    nezzer wrote:
    the desktop item will not delete or "move to trash"
    In Finder, select the item. Choose File > Get Info (or do ⌘I). Look under General > Kind. Does it read "Alias" or does it read "Application (Intel)"?
    If the latter, then it is likely that you're not allowed to delete because it's actually open. Quit Safari. Check if there is an item called Safari in your </Applications> folder. (In Finder, you can get directly to the Applications folder using ⇧⌘A -- that's Shift-Command-A.) Check if it's an application. If it is, then you have an unneeded copy of Safari. You can delete the one on your Desktop. If there isn't, them move the one on the Desktop to the Applications folder -- that's where it belongs.
    If you're new to the Mac, consult
    Mac 101
    <http://www.apple.com/support/mac101/>
    If you're coming in from the Dark Side, consult
    Switch 101: On Windows, I used to...
    <http://support.apple.com/kb/HT2514>

  • How do I eliminate the space above a spry menu bar?

    I made a table, set the CellPad and CellSpace to 0, and set
    the width to 800 pixels. Then, I inserted an image (with a width of
    800 pixels) into the table, and set the V and H of the image to 0,
    and aligned the image to the top. Then, I copied a spry menu bar
    (with a width of 800 pixels) above the table and pasted it in the
    table underneath the image. There is a vertical space of 16 pixels
    between the image and the spry menu bar. How do I eliminate this
    vertical gap?

    The Spry Updater is at:
    http://labs.adobe.com/technologies/spry/home.html
    If there is a spacing issue it is hard to tell without the
    code. By default the Spry menu bar has 0 for margin and padding.
    Make sure there is not a <p> tag within the table because the
    <p> tag has an inherit padding/margin to it and could be
    causing issues. The image and Spry should just be within the
    <td> </td> without any <p> tags inside.

  • How do I eliminate a computer login password on my macbook pro, Yosemite os?

    How do I eliminate a computer login password on my m/acbook pro, Yosemite os

    If you want to auto-login, use:
    System Preferences > Users & Groups > Login Options ...
    Automatic Login :   [ Username ]

  • How to I eliminate space in my start up file so I can increase more space to add onenote?

    how to I eliminate space in my start up file so I can increase more space to add one-note?

    Go step by step and test.
    1. Start up in Safe Mode.
        http://support.apple.com/kb/PH11212
    2. Backup your computer.
    3. Empty Trash.
       http://support.apple.com/kb/PH13806
    4. Disk space / Time Machine ?/ Local Snapshots
      Local backups
       http://support.apple.com/kb/ht4878
    5. Delete old iOS Devices Backup.
        iTunes > Preferences > Devices
        Highlight the old Backups , press “Delete Backup” and then “OK”.
        http://support.apple.com/kb/HT4946?viewlocale=en_US&locale=en_US
    6. Re-index Macintosh HD.
        This will take a while. Wait until it is finished.
        System Preferences > Spotlight > Privacy
        http://support.apple.com/kb/ht2409
    7.Try OmniDiskSweeper. This will show the storage size details of the items.
       https://www.omnigroup.com/more
       Select Macintosh HD and click  “Sweep Selected Drive” at the bottom.
       Delete the files you don’t want to keep.
       Be careful. Delete only the files that can be safely  deleted. If you are not sure about any file, don’t touch it.
    8. Move iTunes, iPhoto and iMovie media folders to an external drive.
        iTunes
        http://support.apple.com/en-us/HT201562
        iPhoto
        http://support.apple.com/kb/PH2506
        iMovie
        http://support.apple.com/kb/ph2289

  • How to solve delay in a program with data aquisition and processing

    Hello, I am a starter in Labview programing. I am working on a system which contains a roller, a piston and a A/D cart which is from Data Translation Inc (DT304). I am using labview to get speed data of the roller (which is voltage first then be converted into speed) from Analog Input Channels, and then using Analog Output Channels to control the friction force being appylied to the roller by using a piston.
    I am using a Waveform Chart to show the speed of roller. However, as I am adding more components to the program, I always get delay in the speed display and also the output control of the piston. Also, as I spent more time using the program eg. from morning to night, it became slower too.
    My question is, how does labview store data and how are the data been stored and released in the buffer.Is it because I am loading too much data in the buffer so that it became slower? And also how to solve these delays?
    I am using the "save to file" function to write data to a ".lvm" file, but I did some changes to the saving by using a button to enable and disable saving. So I don't think the problem is because I am always saving the data into a file.
    Thank you very much.
    Jessie

    I'm betting it's two things:
    1. Program Architecture
    and 2. Dynamically resizing arrays.
    With the program architecture... if you have one do-while loop that acquires data from teh DAQ, processes it, opens/indexes/writes/closes a file, then comes back around... as your arrays and files increase in size, the loop is going to take longer to execute.  A Producer-Consumer loop (a good tutorial on them can be found here) has one loop that acquires data and stuffs the data into a queue.  This will buffer the data while it's in transition between acquisition and processing.  A second loop in parallel takes data in from the queue, processes it, then comes back around.  The two loops operate independently of each other, so even if the consumer loop takes longer as the files or math gets more complex, the producer loop continues to run full speed.
    Second is the arrays.  Every time you append data into an array, LabVIEW has to make a copy of the data that's in the array.  If you append small amounts of data to an array over and over and over again, eventually LabVIEW is going to be copying very large amounts of data over and over and over again.  The producer-consumer architecture can alleviate this problem.

  • How do I eliminate text with black lines through the words

    I am using Firefox 14.0.1 on Linux Ubuntu 11.04.
    I am getting black lines through the text on some web sites. Mostly Google. How do I eliminate the lines.

    A few other basic trouble shooting things you can try is this:
    Run all Windows Updates, install all needed service packs, etc.
    Update your graphics driver (Firefox uses your graphics card for some rendering, and an out of date graphics card driver can cause problems. [[Upgrade your graphics drivers to use hardware acceleration and WebGL]]
    Update all your plugins (Flash, Java, etc.): [http://www.mozilla.org/plugincheck/ http://www.mozilla.org/plugincheck/].
    Download and Install MalwareBytes Anti-Malware, run a full Scan. [http://www.malwarebytes.org/ http://www.malwarebytes.org/]. This helps check that there are no viruses on your computer causing issues. You can uninstall this program after you clean off any infections.

  • How do I eliminate shaky text from scrolling credits?

    I have added scrolling credits to a video and the scroll is not smooth.  There is no stabilization or shutter roll mechanism to use with built-in, FCPX text and titles.  So, how do I eliminate the shake from scrolling credits?

    amee mk wrote:
    i also have a problem with scrolling credits !! they are shaking very badly and i can't find solution for it it doesn't look pro at all ! i'm working on HD 1080 p footage and my project need to be done very soon if anyone have a secret knowledge how to fix it - please let me know !
    What Karsten and Russ said.

  • When making a photo book in Aperture. How do you eliminate having the image numbers under the pictures?

    When making a photo book in Aperture. How do you eliminate having the image numbers under the pictures?

    Click the "Book Actions" cogwheel and select "Page Numbers " -> "Off"
    Regards
    Léonie

  • How to send a delayed notification email?

    How to send a delayed notification email?
    I have a requirement to send an email to the service requestor 2 days after the main fulfillment task is completed.  I know I can create a task that auto-completes using the Dummy adapter, but is there a way to make it auto complete after a certain amount of time has elapsed?  I was thinking about creating a second fulfillment task that would send this email upon completion, but I can't figure out how to delay its start or its end. 

    Hi Tylor,
    James is onto a potential approach here. However, the only way I know of that could work is to use the Scheduled Start feature. This would require that you compute/project the start date of the auto-complete task before the delivery moment begins.
    You would need to do a date calculation and then store the projected date in a hidden field. You could then have your auto-complete task fire on that computed date, using the Scheduled Start feature.
    The wrinkle here, of course, is t

  • How do I eliminate the message when starting up PC - Apple Sync Notifier.exe – Entry Point Not Found – The procedure entry point sqlite3_wal_checkpoint could not be located in the dynamic link library SQLite3.dll.

    Getting the massage when starting up PC - Apple Sync Notifier.exe - Entry Point Not Found - The procedure entry point sqlite_wal_checkpoint could not be located in the dynamic link library SQLite3.dll.  How do I eliminate this message?

    I'd first try uninstalling and reinstalling your MobileMe control panel, dc. Does that clear the message up?

  • How to set a delay on Autocomplete component?

    How to set a delay on Autocomplete component so that the completion method will only be invoked when users stop typing for some time. Otherwise, there are too many unnecessary server requests.

    Hi,
    You can use shortDesc property. Something like
    <af:commandToolbarButton text="Some Button"
          id="ctb1" shortDesc="This button does something.."/>-Arun

Maybe you are looking for