orko Posted February 21, 2009 Report Share Posted February 21, 2009 Hey all, Well, I finally did it. I'm deep into the bowels of NI-VISA and trying to understand it's USB RAW functionality. I have a device with one interface, and three endpoints (EP2 & 4 are BULK IN and EP3 is BULK OUT), not including the default Control EP(0) of course. I set NI's USB RAW driver up by creating an INF file through the driver wizard, and can send BULK OUT requests and request BULK IN transfers just fine over EPs 2&3. My troubles start when I try and set the BULK IN pipe to 84, and read from the other pipe. I'm using a protocol analyzer to see the traffic, and see that everything looks good before I set the "BULK-IN Pipe" VISA property node to 84. As soon as I try and switch over, though...I see a CLEAR_FEATURE HALT_ENDPOINT setup request go to EP0... and I never see the BULK-IN requests from EP4...the VI just sits there and times out repeatedly and I see no traffic after that point to the device. I was hoping that someone else had tried to perform BULK IN transfers on more than one pipe. The finished app will be reading from 2 or more pipes asynchronously, so I want to get this figured out... This is a pretty simple program, although I don't have it here at home. If it would help in solving this, I could upload a sample tomorrow. Basically, I'm opening up a VISA USB RAW session, setting the VISA BULK-IN pipe to 82 and the BULK-OUT pipe to 3. Then I do some transfers using VISA WRITE/READ (which work). Then set the VISA BULK-IN pipe to 84...and try to read again. That's when I see the weirdness I described above. Oh, and just for clarity...the device works with the native device driver on all endpoints. And no, just using that driver is not going to be good enough Thanks for any pointers or suggestions! Quote Link to comment
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.