Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by orko

  1. QUOTE (andymatter @ Feb 20 2009, 01:33 PM)

    That's what I'm thinking. For some reason I'm seeing these odd HALT_ENDPOINT control msgs sent instead of the Bulk-In reads that I'm commanding from LabVIEW.

    QUOTE (andymatter @ Feb 20 2009, 01:33 PM)

    Have you tried opening duplicate VISA sessions, each dedicated to a single endpoint instead of switching between each of them in one session?

    Tried that today actually. Still the same problem.

    I'm actually forced to pursue other methods of Bulk transfers using a .NET driver I had lying around. It won't be easy to get it to fit my needs, but so far I'm getting nowhere with the native LabVIEW USB read/writes on more than one endpoint.

    Thanks for your comments!

  2. 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!

  3. This is the oddest service I think I have ever seen...

    I get charged $0.90 per drink to give a drink to my friend

    My friend gets the drink "gift", and then has to register their CC/debit card on the site (eh?)

    My friend then goes to any bar or restaurant...doesn't have to tell them anything (eh?), just uses their "registered" card as normal and...

    3-5 business days later, they somehow get credited the amount that they were gifted...

    Um. eh?

    So I get a gift of say, $50 for beers from a friend (they get charged $50.90), so I happily register my CC with them, and then go out to the bar and have five beers and some nachos. Afterward, I hit the Denny's for some late night hash browns and another couple of beers. The next day I eat the standard hangover breakfast at IHOP... The $50 goes...where again?

  4. QUOTE (BrokenArrow @ Dec 10 2008, 11:20 AM)

    "Does this subVI serve a defined purpose?"

    ...the first can almost always be answered "yes". Such as: "The sub-vi saves space on the wiring diagram", or, "the sub-vi makes the code more modular"

    Saving space on the block diagram is a defined purpose in my eyes. Whether or not it is worth it for a one-shot subVI is up to the designer. A lot of times I find that I really just needed to split a state machine up into more states...rather than have a bunch of sequential code in one loosely defined task.

    Making the code more modular seems to me to be a function of the design itself, not a result of turning a block of code into a subVI. It pays to think the design hierarchy through before the code is even written, which tends to flesh out the need for "modules".

    Then again, I've probably just drank too much of the OOP grape drink and am thinking that way inherently now... :D

  5. Yep, apples and oranges... estimators who don't know anything about LabVIEW won't care though.

    As far as complexity goes, it was once said to me that "complexity is a symptom of confusion, not the cause." I don't know how many times I've seen a huge, complex, beastly design reduced to beautiful, clean, precise simplicity by someone with more experience and wisdom. This is true for any language, and is one of the reasons I don't take much stock in assigning resources/value based on how large a project is estimated to be.

    Big is not always better.

  6. QUOTE (BobHamburger @ Dec 6 2008, 11:01 PM)

    And I can see why they chose "The Refrigerator" Perry for their spokesperson... if you want someone to proclaim deep, insightful comments (see video) like "What kind of beer?" and "Basket!", then Perry is your guy.

    As far as Jones BATR & S... I guess they could only afford a Chris Rock impersonator as their spokesperson. :laugh:

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.