Driver Development Kit (DDK)

cancel
Showing results for 
Search instead for 
Did you mean: 

Has anyone used DDK with Mac OS X?

Hi IanC,

My mistake.  I misread something, and the information you received from other NI contacts is actually correct. 
The Measurement Hardware DDK requires register level programming (RLP) of the hardware. Since M Series cards do not currently support RLP, they cannot currently be used with the Measurement Hardware DDK.  It is possible this will be added in the future, but there is no guarantee.  As of now, the NI-DAQmx Base is the only officially supported driver in Mac OSX for the M Series boards.

Thaison V

0 Kudos
Message 11 of 32
(6,531 Views)
Actually, M Series devices are currently supported by the Measurement Hardware Driver Development Kit (MHDDK).  See the "Hardware Support" link in this KnowledgeBase:  Measurement Hardware Driver Development Kit Register Level Programming Architecture.  It can be downloaded from this link:  NI Measurement Hardware DDK (Driver Development Kit).  Additionally, here is a MHDDK FAQ page.
-Alan A.
0 Kudos
Message 12 of 32
(6,514 Views)
thank you for the information. I read the linked items though, and it is not clear that DDK would actually be a simpler option in our case anyway. Since there is no available iBus for Mac it looks like we would have to rewrite the functions acquireBoard( ) and releaseBoard( ), and define this *osSpecific pointer which--if I am understanding the document correctly--is beyond my ability. I think my current problems getting NI-VISA functions to recognize my DAQs' is a result of my lack of experience with the structure of Mac OS--it looks like running DDK on a non-suported OS requires an even more through understanding of the inner workings of the OS than does simply using the NI-VISA functions directly. Again though I may be misunderstanding the documentation. Out of curiosity what is the reason for the relative scarcity of Mac products/support at NI. I know compaired to Windows it is a low market share OS, but I thought it would be at least as big as Linux, and certainly bigger than RTX both of which seem to have standard DDK implimentations. Just curious. Thanks again.
0 Kudos
Message 13 of 32
(6,499 Views)
Alright a slightly more specific question this time: is there any way (other than runing a NI-VISA program) to trouble shoot the Driver Wizard program that comes with NI-VISA. I run the Driver Wizard and it does make the .inf file as advertized, but when I run the example code to find resources the function call to viFindRsrc come back with the error VI_ERROR_RSRC_NFOUND--it can't find my boards. The program compiles cleanly, I know the PCI functions in the header file are being included, and the viOpenDefaultRM call comes back with no errors so I assume it is linking to the functions alright. I can't think of any other potential problems save that the Driver Wizard is not generating the drivers correctly. Sorry to keep hitting the discussion board with this, but I have been stuck on this step for a while and the frustration level is getting up there a bit. I'm sure my specifics are in this thread somwhere but I am running NI-VISA from Xcode on a Mac G5 (OS X) trying to controll two NI-PCI-6259 cards. Hopefully someone can help me out here. Thanks in advance.

Ian
0 Kudos
Message 14 of 32
(6,483 Views)
Hello Ian,
Hopefully I can clarify a few things for you.  First, is there a particular reason that you would want to use the MHDDK?  NI-DAQmx Base supports M Series Devices on OS X.  So you could simply use that driver and not have to worry about writing your own :).
 
As to your DDK questions.  To use it with OS X you shouldn't have to re-write anything.  You can use the acquireBoard and releaseBoard functions from the osiUserCode.cpp file in the VISA folder.  That does require that you have VISA installed, but it looks like you do. 
 
-Alan A.
0 Kudos
Message 15 of 32
(6,475 Views)
Thank you for the tip Allen A.. It does look like I will be able to MHDDK with out rewriting those functions. Unfortunatly though that doesn't help me since, DDK or no, I still need to get a VISA-recognizable driver running. Actually acting on the advice you gave cfiene in a different thread here, I looked over the code for aquireBoard, and as I should have perhaps expected it tries to call the same visa functions I was trying to call. Basically my problem is that viOpen(...,PXI-bus_number-::-device_number-::INSTR,...) fails wih any combination of bus, and device number, if I call viOpen directly or if I call aquireBoard, which then calls viOpen. I could be wrong on this, but again I think the problem is that no driver is gets created when I run the Driver Wizard. I can find no evidence in the Mac literature that these .inf files that Driver Wizard creates have anything to do with driver creation, and after rebooting there is no record of any new driver in the system log. I'm sure whoever wrote the Driver Wizard tested it on OS X (and presumably it worked since NI sales was happy to take a few hundred dollars off our purchase card for the instalation CD), but the directions are really quite strait forward, and I still can't get it to work. Anyway I'm sure it's some novice mistake on my part.

As for why we aren't using NI-DAQmx base, I have to admit I'm not 100% clear on the answer, but I think there was either some functonality that we need missing from NI-DAQmx base, or my boss wanted to avoid the software overhead of NI-DAQmx base (if I recall correctly some of her complaints can be found earlier in this thread). Either way--yes--to answer your question--it does seem that I have to do the most abstruse type of programming, on the least supported operating system. A-well that's why they pay me the big bucks.....well compared to the english literature grad students at least.

Thanks again, and as always I would be appreciative of any advice.

Ian Clark

Message Edited by IanC on 02-27-2006 06:36 PM

0 Kudos
Message 16 of 32
(6,422 Views)
Hello Ian,
Couple questions:  What version of NI-VISA do you have installed?  Does your device show up in the NI-VISA Configuration Utility (here:  Applications/National Instruments/NI-VISA)?  It should show up under the PXI/PCI folder as something like this:  "PXI6::2::INSTR"
-Alan A.
0 Kudos
Message 17 of 32
(6,400 Views)
We are using version 3.4 of the NI-VISA libraries. I assume it is the latest distro since we just ordered it ~one month ago. As for the NI-VISA configuration utility, the only thing I get is "My Computer" (with the page icon--not the file folder icon). Sorry--I probably should have mentioned that a couple of posts back. Hopefully that helps. Thanks again.
0 Kudos
Message 18 of 32
(6,381 Views)

Ok, if the device doesn't show up in the VISA Config Util, then the inf file was either not created correctly or is in the wrong place.  I'm guessing that is it just in the wrong directory.  It needs to be here:  Library/Application Support/National Instruments/nipal/inf
You might need to change the permissions on that directory before you are allowed to put anything in it (which might be the reason the Driver Wizard didn't put it there in the first place).  Let me know if this works.
-Alan A.

0 Kudos
Message 19 of 32
(6,375 Views)
There is actually some kind of strange behavior there. If I tell it to "Install generated files on this computer" at that location (Library/Application Support/National Instruments/nipal/inf/), I can see an .inf file in a finder window when I get to the last screen, but as soon as I hit Finish on the wizard it disapears. If I let it install the files at the default location though (Library/Application Support/National Instruments/) it does generate the .inf file and I have no trouble copying it to the correct directory (Library/Application Support/National Instruments/nipal/inf/). I don't think it is a permissions issue, because the .ini file that also gets created stays at Library/Application Support/National Instruments/nipal/inf even after the wizard is finished. Also I have claimed ownership of everything in the tree, and I (appear to at least) have read write permission to everything. Anyway copying the .inf to Library/Application Support/National Instruments/nipal/inf/ doesn't seem to work. The file copies over with no problem, but it does not result in the cards being recognized after a restart.

I'm curious about a couple of things. One--what does the .inf file do? Is it used by the operating system to generate a driver for the card, or is there some VISA function that generates the driver based on the .inf file? Second--I'm curious as to how the wizard works. I only give it information about the kind of cards I have (vendor number = 1092, device number = 70AB). Does it poll the PCI bus to see that I have two identical cards? Do I need to run it once for each card? or is that not necessary? Finaly when you are running the wizard what pieces of information are critical. I assume the vendor and device numbers have to be right, but what about things like interupt information and the name of the .inf file. Is there a wrong value for any of these things that will cause the instalation to fail?

Alright that is probably more than enough questions. Thank you.
0 Kudos
Message 20 of 32
(6,371 Views)