Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Posts posted by Phillip Brooks

  1. I Moved up to 1280x1024 with my new job.

    The Dell I received has a nice monitor and graphics card, and the legacy code I work with was done on a dual screen 1280x1024 setup (lots of scrolling made me give in). I had created a two tone background image that gave me a 1024x768 rectangle in the upper left of my screen so I could check my front panel size for use on the ATE computer. After attending the LabVIEW Intermediate I&II classes, I found a couple of similar backgrounds on the CD that also left room for the menu bar (assumed bottom) so I use this instead. (See attached)

    I don't maximize the diagram, I use the extra real estate for the control and tool palettes. The only time I find myself scrolling :unsure: is when I start getting into ActiveX calls and control references; the size of the property and method nodes don't make things easy.

    post-949-1129203583.jpg?width=400

  2. Hi, my work is to construct a automatic testing system of mobile phone. At first ,i must read the test parameters from an INI file that writen by Excel. but, the format and content of this file is changed frequently.so i have to change the reading file and write file module. it is worse that i was told to add the testing item in my work.so i have to add some new parameter into the INI file.but,the whole structure of the testing program must be changed totally!BTW,the program is so complexed, i don't wanna see some "insane object" appear in my vi,so ,changing the structure of the whole program is impossible.

    Is thers some good method to sovle this case? The interface of testing program had better to be fixed.

    Thanks .

    If your application is already built, it may take some work. Whenever I've needed to load parameters from an INI file, I:

    1. Create clusters that contain the variable elements that I need to read/write.

    2. Save these as typedef'd controls and use these in my sub-vis.

    3. Use the OpenG INI read and write functions to load and store the clusters in INI sections and variables.

    If a variable is added, you can edit the typedef'd control. This should update anywhere you've placed the control. Don't change the order of your cluster elements, just add elements to the end. By using simple typedefs instead of strict, you can move the elements around within the cluster frame on the front panel without breaking your code; you can even hide elements that you don't need.

    I generally try not to delete elements from my clusters once I've added them. If your software design process is working, you shouldn't need to make that many changes :)

  3. Well, "that country", at least to an extent, is part of the US, so I think you should be covered.

    Besides, many countries (with useful extensions like .tv or .to) allow outside companies to buy their domain names. I think you can even get a European Union (.eu) domain without being a European citizen.

    I THINK some countries have a requirement that the domain must be hosted in country. Example YOURDOMAIN.co.th (Thailand domain) must resolve to a server located within the borders of Thailand. Otherwise, they can't enforce laws (porn, political, etc). Don't know about the Virgin Islands.

    How about a domain name like "openg.vi" ?

  4. I say let them have it! People who've been programming in a bubble all their lives need to be shaken up.

    I agree. It doesn't have to be a blast from a shotgun with both barrels, though. I recently demonstrated the fact that you can expand the Index Array function to someone. He had 12 discreet Index Array functions connected to the same array, with one index input to each. They were indexing elements 0-11. I showed him a "trick" and he nearly fell out of his chair. This is someone who has been programming in LabVIEW for 6 years. He's also fond of globals and locals and sequences that nested 5 and six deep :nono: ; he blows up when he can't create a sequence local in my code to move data around.

    I feel like I've got a good handle on all the features/functions of LaBVIEW (5 years+ I just completed the Intermediate I & II classes) and now need to think at a higher level. Many LabVIEW users are just that; users. If you need to create sequence, then a sequence is what you must use! Sort of like an apprentice tradesman; if the only tool you have is a hammer, then everything looks like a nail!

  5. Wow.  That sounds complicated.

    Rolf!  Where's Rolf!?  He might know.

    So you want to use LabVIEW code as an interrupt handler and then pass along a pointer to that LabVIEW code so it will be executed on an interrupt??

    I have limited knowledge in this arena but I'm wondering if you can't implement your own interrupt handler in C using your own custom DLL or code interface node.  That would let you come up with a block of code to execute as the handler that you could get a pointer to and pass along to your DLL.  Then you could use that block of code in conjunction with some easier mechanism (Queue, Notifier, Occurence etc) to communicate back to LabVIEW that it needs to do something.  That way you wouldn't have to directly have a pointer to a chunk of LabVIEW code, but it would still do nearly the same thing.  You would also have the option of performing a poll then in LabVIEW which might even be easier than an interrupt driven chunk of code (but that might not be exactly what you need).

    Can you expand on how fast you need this to execute?  Do you think a dedicated parallel loop in LabVIEW that was polling at a certain rate would be adequate?  That sounds a lot lot easier than getting an interrupt handler to directly run LabVIEW code.

    5780[/snapback]

    I will have three A/D channels generating single WORD data running at 1200 Hz each. These will not be synchronized. The channels are enabled and disabled manually, this is a monitoring function I may need to switch hardware and DLL at some pint (this is a VME Single Board Computer), but the alternate DLL offers the same functionality (pointer to a ISH routine). I really don't want to write a wrapper DLL.

    I might be able to poll using timed loops, I'm evaluating this now...

  6. I have a DLL that monitors hardware. When an defined interrupt occurs, the DLL calls an interrupt handler by way of a pointer to the handler. I need to handle this from LabVIEW. Below is the API documentation for the function.

    The vmeConnectLM() hooks an interrupt handler when a location monitor is signaled (interrupt occurred).

    ULONG vmeConnectLM(

    BYTE LMNumber, // LM number 0-3.

    ULONG PtrToHandler. // Handler address for the LM INT.

    );

    Parameters

    LMNumber - The LM number range of 0-3.

    PtrToHandler - Pointer to a handler to be called when the INT occurs.

    Return Values

    Zero, if successful; otherwise an Error Code.

    Remarks

    A vmeAcquireInt() API call must be performed before any interrupt can be enabled or disabled. The handler suppose is to be declared as typedef void (*FUNC)(ULONG). If this command is successful, the Location Monitor interrupt specified by LMNumber will automatically be enabled. The parameter passed into the handler will be the LMNumber.

    How/what can I associate to this DLL function? :wacko:

  7. Hi guys.

    I'm a student at Cal Poly and our teacher gave us this Labview assignment without teaching us anything about Labview. Any useful tips would be appreciated. If anybody has any actual codes for things like this they are more than welcome to send them.

                                                                              -Thanks                :headbang:

    P.S. The actual Labview instructions are on the last page of the attached PDF.

    5425[/snapback]

    If you're just trying to understand LabVIEW, you might check out http://www.iit.edu/~labview/Dummies.html

    This will help guide you through things like the front panel, block diagram, etc.

    Good luck!

  8. I'm involved in a new project where I will be using templates. These templates make use of sub-vis referred to as Action Engines. I've searched various LabVIEW materials, Google and (most importantly) the LAVA Forums. I can't find any references to an Action Engine implementation.

    It appears that these action engines are passed references to front panel vis and contain uninitialized shift registers. the Actions are enumerated, and current states are returned as outputs. I understand how they work, but where does this term Action Engine com from?

    I did see a couple of posts on comp.lang.labview regarding action engines.

    4571[/snapback]

    :book: Well, after reading the comp.lang.labview threads a bit closer, then action engine is really just a "functional global". I've ONLY been using LabVIEW since 5.1, and never been exposed to the LV2 or functional global concept. I understood the concept, but the term "action engine" bothered me.

    The answer (for me) is here: http://forums.lavausergroup.org/index.php?showtopic=273

  9. I'm involved in a new project where I will be using templates. These templates make use of sub-vis referred to as Action Engines. I've searched various LabVIEW materials, Google and (most importantly) the LAVA Forums. I can't find any references to an Action Engine implementation.

    It appears that these action engines are passed references to front panel vis and contain uninitialized shift registers. the Actions are enumerated, and current states are returned as outputs. I understand how they work, but where does this term Action Engine com from?

    I did see a couple of posts on comp.lang.labview regarding action engines.

×
×
  • Create New...

Important Information

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