Trying to understand how the DDK works

Hi,
1.)  If I wanted to be able to use a wide variety of NI DAQ cards
under the QNX RTOS, would the NI Measurement Hardware DDK be able to
faciliate this?
2.)  From looking at the web-page describing the DDK, it looks to
me that the driver code written by NI is done in a platform indepedant
way, using only ANSI C/C++ function, and when it needs
to do something platform specific, it calls out to functions that I can
provide.  Is this correct?  I am envisioning having to
provide code to get PCI resources, attach to interrupt, hw I/O.... am I
on the right track?
3.)  I've downloaded the NI HW DDK OTHER code, but it's not clear to me
how the platform-dependant code for QNX will integrate with this.  I
have the DAQ PCI_E_series Register Level Programming Manual
and STC manual, but I can't find any docs on how to use the code in
this archive.  What am I missing?
Thanks

Hi,
1.)  If I wanted to be able to use a wide variety of NI DAQ cards
under the QNX RTOS, would the NI Measurement Hardware DDK be able to
faciliate this?
Depends.  MHDDK provides register information for a number of NI
DAQ devices.  There isn't an API that abstracts the measurement
task form the hardware, like DAQmx does.
You would need to write the high level functions for each type of
device you what to use and provide an API to your application that
would select the appropriate device specific function.  I guess
something like
startDevice()
    // somehow get deviceTypeId
    switch (deviceTypeId)
    case kMSeries:
          mseries_startDevice();
    case ESeries
          eseries_startDevice();
or using function pointers, or c++ inheritance.  There are many possibilities...
2.) .... am I
on the right track?
Yes.  MHDDK only abstracts device access using the iBus and
tAddressSpace objects.  The iBus contains the address spaces of
the device.  You request address spaces from the bus and use it
write/read from the device.  For PCI devices the read/write
functions using pointer manipuilation.  For a PCMCIA device on a
x86 you would use the port io instructions.
iBus objects are created and destroy using the factory methods
acquireBoard() and releaseBoard().  This is where all the platform
dependent magic should occur.  Here are a couple of KBs with more info:
Measurement Hardware Driver Development Kit Register Level Programming Architecture
How to Make an iBus
3.)  I've downloaded the NI HW DDK OTHER code, but it's not clear to me
how the platform-dependant code for QNX will integrate with this.  I
have the DAQ PCI_E_series Register Level Programming Manual
and STC manual, but I can't find any docs on how to use the code in
this archive.  What am I missing?
In  osiUserCode.cpp, implement acquireBoard(tChar*) and
releaseBoard(iBus *&).   To acquire the board you usually
have to loacte the device, find bar0 and bar1 , and map them to the
current address space. 
This article shows exactly how to do that in QNX: Talking to hardware under QNX Neutrino
Also, create a QNX specific structure to
attach to the iBus where you can store any handles you need for
releaseBoard() to clean up.
Hope this helps.
Diego

Similar Messages

  • Trying to understand how the sync works

    So this is what i am trying to figure out.
    I know that if i create a document in pages on my mac that i need to upload the doc via icould for it to show in iwork.  I also know that if i access that file from my iphone or ipad and make changes to that document that it automatically updates it on icloud.
    This is my question, Is there a way when i make changes to that document on my mac that it automatically updates it like my iphone and ipad does on icloud.  Coz whats happening at the moment is every time i make a change to the doc on my mac its currently NOT updating it on icloud.  I am doing something wrong or does it just not update the document?
    Thanks for your help!

    If you change a document on your iOS device, then you need to download it from iCloud.com to make changes to it on your mac. Once you make changes on the mac, if you want to work on it on iOS devices again, you need to upload it again to iCloud.com.

  • Trying to understand how MIDI Clock works in Logic

    Hi,
    I'm syncing a Roland MC-909 Groove Box with Logic.  I'm also using a MOTU MIDI Express interface.  The MC-909 syncs to Logic, thus it is in Slave mode. Under Preferences->Sync->MIDI Sync Project Settings, I've discovered something odd, and I'm trying to understand it.  It could be just a lack of understanding regarding the MIDI Spec.
    Under MIDI Clock, I necessarily need to set the destination to the MC-909.  I cannot use 'All'  or else the MIDI Express starts playing back at 8x the tempo set in Logic.  Not sure why this happens but its probably something weird with the MOTO interface.  Anyway in Logic, MIDI Time Code (MTC) is disabled, Song Position Pointer (SPP) is disabled, and MMC is disabled.
    So basically I'm only sending MIDI Clock to the MC-909.  Here's what is wierd:  As I locate to different places in the Arrange window (not in play mode), the MC-909 is locating to the correct time offset within the pattern!  This basically guarantees that you can start the Logic song anywhere, and the MC-909 will start playing back the pattern at the right time.  I don't understand how this can be happening given that I've disabled SPP in Logic.  The only sync communication between Logic and the MC-909 is MIDI Clock, but I don't believe that MIDI Clock is even capable of transmitting offset information that specifies the time-offset into a drum machine pattern, Does it?  Or is Logic sending SPP info as I click on different locations in the Arrange window?
    Another point, is that if I select to transmit MIDI Clock to another device other than the MC-909, but still using the MOTU MIDI Express, then the MC-909 plays back synchronously (i.e. its getting MIDI Clock from Logic, even though Logic isn't sending MIDI Clock to the MIDI port connected to the MC-909), but it does not track the pattern offset described in the previous paragraph.  The only way I can get the pattern offset to work, is if I select the MIDI Clock to be sent to the MIDI port connected to the MC-909.
    I would like to figure this out because I'm thiinking about buying an external MIDI synchronizer, but I don't want to lose the ability to have logic specify the offset into the pattern on the MC-909
    Thanks,

    Hi,
    I'm syncing a Roland MC-909 Groove Box with Logic.  I'm also using a MOTU MIDI Express interface.  The MC-909 syncs to Logic, thus it is in Slave mode. Under Preferences->Sync->MIDI Sync Project Settings, I've discovered something odd, and I'm trying to understand it.  It could be just a lack of understanding regarding the MIDI Spec.
    Under MIDI Clock, I necessarily need to set the destination to the MC-909.  I cannot use 'All'  or else the MIDI Express starts playing back at 8x the tempo set in Logic.  Not sure why this happens but its probably something weird with the MOTO interface.  Anyway in Logic, MIDI Time Code (MTC) is disabled, Song Position Pointer (SPP) is disabled, and MMC is disabled.
    So basically I'm only sending MIDI Clock to the MC-909.  Here's what is wierd:  As I locate to different places in the Arrange window (not in play mode), the MC-909 is locating to the correct time offset within the pattern!  This basically guarantees that you can start the Logic song anywhere, and the MC-909 will start playing back the pattern at the right time.  I don't understand how this can be happening given that I've disabled SPP in Logic.  The only sync communication between Logic and the MC-909 is MIDI Clock, but I don't believe that MIDI Clock is even capable of transmitting offset information that specifies the time-offset into a drum machine pattern, Does it?  Or is Logic sending SPP info as I click on different locations in the Arrange window?
    Another point, is that if I select to transmit MIDI Clock to another device other than the MC-909, but still using the MOTU MIDI Express, then the MC-909 plays back synchronously (i.e. its getting MIDI Clock from Logic, even though Logic isn't sending MIDI Clock to the MIDI port connected to the MC-909), but it does not track the pattern offset described in the previous paragraph.  The only way I can get the pattern offset to work, is if I select the MIDI Clock to be sent to the MIDI port connected to the MC-909.
    I would like to figure this out because I'm thiinking about buying an external MIDI synchronizer, but I don't want to lose the ability to have logic specify the offset into the pattern on the MC-909
    Thanks,

  • Good resources for understanding how the internet works

    Hi everyone,
    I got quite a lot of spare time at my hands these days, so I thought I might learn about how the internet (and networking in general, after all I'm using the internet daily, and I've even programmed with Java sockets for ages)! Specifically, I'm probably talking about the OSI model and its components.
    Historically, reading Wikipedia entries doesn't quite cut it for me, I tend to get the hang of things a lot easier with a book. So, if you know a good book (though a good online guide / explanation is fine, too), please let me know!
    Cheers,
    - Allan

    At my uni, we use "Computer Networking: A Top-Down Approach" by James Kurose and Keith Ross for all our networking classes.  I wholeheartedly recommend it; it's clear, approachable, and something you'd want to read if you didn't have to read it.

  • Trying to understand how the AND and OR keywords works

    I read that the precedence of using AND and OR in the where clause can be determined by where you put the parenthesis. I tested it and it is true. How come .........
    THIS.....
    SELECT invoice_number, invoice_date, invoice_total
    FROM invoices
    WHERE (invoice_date > '01-MAY-2008' OR invoice_total > 500)
    AND invoice_total - payment_total - credit_total > 0
    Order By Invoice_Number; AND THIS....
    SELECT invoice_number, invoice_date, invoice_total
    From Invoices
    WHERE invoice_date > '01-MAY-2008' OR invoice_total > 500
    And Invoice_Total - Payment_Total - Credit_Total > 0
    ORDER BY invoice_number;GIVE ME DIFFERENT RESULTS BUT THIS..............
    Select distinct (Select Count(Invoices.Vendor_Id) From Invoices Where Invoices.Invoice_Date < '01-MAY-2008')  as Test_Column
    From Invoices
    Where (Invoice_Date > '01-MAY-2008' Or Invoice_Total > 500)
    And Invoice_Total - Payment_Total - Credit_Total > 0;AND THIS.............
    Select distinct (Select Count(Invoices.Vendor_Id) From Invoices Where Invoices.Invoice_Date < '01-MAY-2008')  as Test_Column
    From Invoices
    Where Invoice_Date > '01-MAY-2008' Or Invoice_Total > 500
    And Invoice_Total - Payment_Total - Credit_Total > 0;DONT GIVE ME DIFFERENT RESULTS.
    Edited by: mookjais on Feb 24, 2011 8:43 PM

    I tested the statements and the syntaxes (sp) are correct, here is the table. It's a sample table so I can give all the values that are in the table also.
    CREATE TABLE invoices
      invoice_id            NUMBER,
      vendor_id             NUMBER          NOT NULL,
      invoice_number        VARCHAR2(50)    NOT NULL,
      invoice_date          DATE            NOT NULL,
      invoice_total         NUMBER(9,2)     NOT NULL,
      payment_total         NUMBER(9,2)                 DEFAULT 0,
      credit_total          NUMBER(9,2)                 DEFAULT 0,
      terms_id              NUMBER          NOT NULL,
      invoice_due_date      DATE            NOT NULL,
      payment_date          DATE,
      CONSTRAINT invoices_pk
        PRIMARY KEY (invoice_id),
      CONSTRAINT invoices_fk_vendors
        FOREIGN KEY (vendor_id)
        REFERENCES vendors (vendor_id),
      CONSTRAINT invoices_fk_terms
        FOREIGN KEY (terms_id)
        REFERENCES terms (terms_id)
    );Edited by: mookjais on Feb 24, 2011 8:45 PM

  • Still Trying to Learn How the Thing Works

    I wrote the message below a couple of months ago, but have not had a reply. I decided to call Toshiba for help. I was told the drive only writes over files that have changed from previous saves and, therefore, has plenty of space for my meager files accumulated.
    I do two versions of saves: Files and Complete System Backup. The Files process works fine; but now I receive a message saying my drive is full when I try to do a Complete System Backup. I looked at the saved files through Windows Explorer and see many copies of Complete System Backup which are obviously filling my drive. I expected only a few. Can someone help me fix this problem? 
    PREVIOUS MESSAGE: I have a Canvio 500GB portable backup that works just fine. However, there are no instructions on how it works and how to optimize performance. For example, how many copies of backups are made? Or does the system simply over-write previous copies? When I do a backup, I now get an indication that my drive is 80% full. How can I eliminate what I don't need so I don't fill the entire thing up? Toshiba is silent on the matter.

    Not surprising you didn't get any response!
    We can't see you and your backup. So we haven't the faintest idea what you're doing.
    I know from reading messages here that some of Toshiba's external drives come with some version of NTI Backup Now EZ. Maybe you're using that. Or maybe you're using Windows' own backup. Or maybe you're using some third-party program. There are lots of backup programs out there.
    Just in case you're using that NTI program, I did a little googling for you and found a User's Guide (attached). With a little luck, it helps.
    -Jerry
    Attachments:
    BackupNowEZUserGuideENU.pdf ‏138 KB

  • Need to understand how the dataguard works in a RAC enviornment

    We had a dba just left, and I inherited the system now. I want to be sure I monitor right information on the dataguard.
    Help please.

    The DBA would have documented how DG is setup / monitored.
    Else, read the DataGuard Administration Guide for the version you are running.
    start at http://tahiti.oracle.com
    If you are not a DBA, you should be equally and more concerned about the Primary database !
    Hemant K Chitale

  • Need to understand how ioctl errors work.

    I'm trying to understand how ioctl errors work. Who is responsible for returning a -1 for an error and passing the actual error number in errno? Do the functions miocack and miocnak play any part in this? Where can I find a desciption of miocack, miocnak?

    Hi
    The return value of ioctl is dependent upon the called device
    control function. If for some reason the ioctl is not able to
    call the corresponding device control function then a return
    value of -1 is returned by the kernel and the errno set to
    indicate the type of error.
    -Manish Dixit
    Sun - dts

  • How the balance works for http/https in CSS?

    I want to understand how the balance works for http/https in the CSS.
    As per doc,
    - http/1.0=single URL per TCP connection
    - http/1.1=persistent connection.
    Q1. my understanding is http is stateless connection so needs TCP session for each URL. how the http/1.1 works with persistent. keep the same TCP session for a multiple URL request?
    Q2. https is using single URL and continue processing until terminate the https instead of open another URL in the middle of transaction. in this case, I think the client can stick into same service based on the assumption the CSS support persistent. if then, no advanced sticky(ex, srcip) required?
    Q3. looks below both are analogy. what's difference between them?
    - balance srcip(same src IP to the same service)
    - advanced-balance sticky-srcip
    Q4. what's balance decision mechanism for "balance roundrobin" to distribute evenly? ex, in case of multiple URL request coming from same client. evenly distribute URLs?
    Regards,

    Hello,
    first let me clarify 1 point.
    HTTP/HTTPS are standards that are defined in RFC.
    For HTTP/1.1 you can check the following RFC
    http://www.faqs.org/rfcs/rfc2616.html
    Therefore, the behavior of HTTP 1.1 is not defined by the CSS.
    Q1- HTTP/1.1 simply keeps 1 TCP connection to send a received mutiplie HTTP request/response.
    HTTP/1.0 will open 1 TCP connection for every HTTP request.
    Q2- HTTPS is just HTTP over SSL.
    So basically the same rule as above applies.
    HTTP/1.1 can use 1 SSL connection for many HTTP request/response while HTTP/1.0 will use 1 SSL connection for each HTTP request.
    Therefore, if you have customer using HTTP/1.0 you need some form of stickyness to guarantee that every connections will go to the same server.
    Even if only using HTTP/1.1 you may need stickyness.
    A user could disconnect and reconnect and require to be loadbalanced to the same server as before.
    Q3- There is a big different between balance srcip and sticky-srcip.
    The balance srcip simply hash the source ip address to find the destination server.
    The problem of this method is that the loadbalancing is not guarantee to be evenly distributed between the servers.
    With sticky-srcip, you use a normal balance method like round-robin, and then you create a sticky entry in a sticky table.
    Next time this user comes back we first check the sticky entry to find the destination server.
    The advantage is that it guarantess your users will be evenly distributed among the server.
    Q4- roundrobin is applied to connection - not url [by default].
    So if you have 2 users and they both open 1 connection, the CSS will send 1 connection to 2 different servers.
    So each server has 1 connection.
    If one user sens 10 URL and the other 1 sends only 1, one server will have 10 url to process while the other only one.
    That's if you are using HTTP/1.1 and use persistent mode on the CSS.
    You can break persistency and split the url.
    I run out of space and time to explain you everything.
    I suggest you go read the RFC or a book on HTTP.
    Also read the CSS configuration guide.
    There is much more you need to know if you want to take full advantage of the CSS like cookie, ssl offloading, L7 rules vs L3/4 rules, ...
    Regards,
    Gilles.

  • Help in understanding how the policy "SI-PerDiskAvgServiceTime-AT" work

    Hello Sir, I am trying to deploy  policy "SI-PerDiskAvgServiceTime-AT" on servers in my environment. And after deployment this policy is triggering so many alerts. I read some online forums and learnt that this is an auto-thresholding policy relying on historical data. Can you please help me understand how this policy works. Thank You

    I have decided to ditch Visual Communicator as an option.
    Apart from the poor support, I have tested the Trial version and it would not make sense to use the application in its cirrent form.
    In a ten minute period using 2 cameras as a test, the application froze and crashed four times. Not acceptable as reliability is crucial.
    The test was done on a Windows 7 64 bit machine with 4 physical Xeon Quad core 3GHZ processors and 32 GB RAM with a 2GB Graphics card, so performance was not the issue.
    the application is just not stable.
    I am getting better support and results from both Wirecast 4 and Cutfour.

  • I don't understand how the drop zone works in Title effects.

    I am having trouble understanding how the drop zone in the "Keynote" title effect works.  I added the title effect to my storyline.  In the inspector, Title tab, I selected the clip in the Event library, in this case a tiff photo.  The thumbnail and clip title display in the inspector, but the clip does not display in the Viewer when I play the storyline even after FCPX has rendered.
    Am I missing something in my understanding of this title effect or is there a problem in FCPX (10.0.6)?  Any ideas or suggestions would be appreciated.
    iMac, 3.4GHz Core i7, 16GB ram, OSX 10.8.2,

    There are two ways in which drop zones are available in the Keynote title template. What Luis has shown you is the normal way in which a title placed over a clip shows you the original clip with the title text. That is called a Final Cut placeholder type of drop zone. Keynote also offers a drop zone to be used as a background choice instead of a gradient or solid as you see in Luis's post. This makes a very nice title effect as you can use any clip for that background. That is what I thought you were refering to when you you said drop zone. Keynote is one of the nicer titles we have available in FCP because of this feature. Glad you got it sorted out.

  • Trying to understand how pics are stored

    I'm new to Mac (iMac Core i5 27") and trying to understand how pictures are stored. I've searched and found some posts that are relevant, but I really wanted to try and confirm a couple of things that still aren't clear to me.
    First question is: Are the pictures in Events, Photos and Albums all the same photos?
    Second question: If I import pictures from my external drive into iPhoto, are they stored on the iMac hard drive in the Pictures folder, and just viewed in iPhoto?
    Thanks!

    First question is: Are the pictures in Events, Photos and Albums all the same photos?
    Yes. Iphoto works on a Library bsis. Every photo is in the Library. Events and Photos are both views of the Library. Albums reference photos in the Library. A photo can be in many Albums and use no extra disk space.
    If I import pictures from my external drive into iPhoto, are they stored on the iMac hard drive in the Pictures folder, and just viewed in iPhoto?
    Yes, by default. There are other options - for instance, iPhoto integrates with almost every app on your Mac, you can store the Library on an external etc etc. If you tell us what you'd like to achieve we may be able to help you.
    Regards
    TD

  • I would like to understand how merging cells works

    I am trying to reduce nine fields, into three, but can't understand how merging cells works. Because sometimes it will allow me to merge cells, and at other times the word merge is greyed out
    Regards Lee

    The User Guide, which you can download using the link in the Help menu, explains merging cells pretty clearly.
    I suspect the relevant line to your problem is:
    "The group of cells you choose must form a rectangle, and they must be all body cells, all header cells, or all footer cells."
    The merge option is probably greyed out because your selection includes both header and body cells.
    I think there is a general feeling among users that merging cells should be avoided because it breaks some operations like sorting tables.

  • Hey i am unfamiliar with how to use icloud for storage. Can some one slowly( lol ) help me to understand how this thing works. I also need someone to help with how to transfer pics from your iphone to your flash drive.

    Hello i am needing some assistance as i am not very good at how the cloud works. I need to delete my account and start over.  I don't want to loose all of the things that i have on phone. Help!

    Slowly
    http://www.apple.com/icloud/features/
    but surely
    http://www.gottabemobile.com/2011/10/18/how-to-sync-email-contacts-and-calendar- with-icloud/
    we will come
    http://transfer-iphone-contacts.blogspot.com/p/iphone-contacts-sync-via-icloud.h tml
    to understanding
    http://support.apple.com/kb/PH12519
    on how icloud sync and backup work.
    http://www.apple.com/support/icloud/backup/
    http://support.apple.com/kb/ht1766
    And here we will find instructions on how to backup (import) pictures to computer, cause there is no direct transfer to flash drive.
    http://support.apple.com/kb/ht4083

  • I am new to mac and am trying to understand how to do something i did in Word. In Word you can set up document so that you have 2 pages per 8.5 x 11 landscape page. Each page is treated as a separate page. Can this be done in word for mac 2008?

    I am new to mac and am trying to understand how to do something i did in Word. In Word you can set up document so that you have 2 pages per 8.5 x 11 landscape page. Each page is treated as a separate page. Can this be done in word for mac 2008?

    Suggest you ask on the Microsoft Mac forums since it's their software you have a question about:
    http://answers.microsoft.com/en-us/mac

Maybe you are looking for

  • I still need help guys ... cannot sync....

    i understand that when i plug my ipod into the usb it is ment to come up with '''' do you want to sync your ipod'''''' THIS DOESNT HAPPEN NOTHING ABOUT SYNCING APPEARS  ALL THAT IT SAYS IS ''' DO YOU WANT TO IMPORT PICTURES FROM YOUR IPOD ''''       

  • Why RAM Preview 2x faster on Macbook Pro vs Desktop PC?

    Hello everyone, I RAM Previewed a few seconds of an AE CS6 project on a Desktop PC I recently had custom-built, and was distraught to discover it was twice as slow as previewing the exact clip on my Macbook Pro. The project involves simple 3D camera

  • Organzing Bookmarks - I can no longer find the option to organize unorganized bookmarks?

    I recently downloaded the latest version of FireFox. I have laptop: Samsung RV511 - latest version of Windows 64bit. There used to be option to organize or manage your bookmarks. You could move Bookmarks from folder to folder, create new folders and

  • Web Activity Monitoring Tool

    I admin an OS X 10.4.11 server for a small network of about 10 Macs & 10 Windows computers. It is running both DNS and DHCP. An Actiontec DSL router is running NAT. The owner & management of the company wants to keep a closer eye on a couple of naugh

  • Creating a cropped h.264 - 640x240 iPod compatable video from NTSC DV

    Question: Does anyone know how to crop a 720x480 DV, 23.98fps video from Final Cut, to a 640x240, h.264 QuickTime file that is compatible with the iPod and TV? I've been at this for two weeks, combing the forums for an answer to this problem, and ha