Jump to content

LAVA 1.0 Content

Members
  • Posts

    2,739
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by LAVA 1.0 Content

  1. I have a specific VI (reentrant) that I load dynamically (with options = 8). I open a VI reference, set the front panel properties to "Standard", then run the vi with "Wait Until Done" set to FALSE and "Auto dispose Ref" = TRUE. (The VI's default Window options "Show Front Panel When Opened" is set to FALSE. I'm going change it to Hidden after Open Reference when I'm done; I need to see it for now for debug...) The VI runs in a loop that receives notifiers, reduces some data and plots data to a chart (for debug). The VI stops running when a "Wait On Notification" call returns an error (the Notifier was destroyed in the Data Source VI) or the operator presses a "Quit" boolean. It's been working for over a week without problems, but now OCCASIONALLY I see the dialog box below when closing the VI. If I place a CD in the tray (drive D:) and click continue, the VI closes. When I try to load the VI again dynamically, LabVIEW crashes. What could be going on that would cause this? Has anyone seen this before? I've forced a recompile of the VI and all associated VIs. I'm ready to toss the whole VI out and write it from scratch!
  2. No. Flow is an output, and requires an interrupt routine in my example
  3. Flat Sequence Structures RULE! ( Flat :beer: does not... ) (LV 8.0) Download File:post-949-1161689245.llb I can't wait to learn LVOOP so I can develop CLASSES of beer! (Aussie, British, Thai, etc...)
  4. Now thats what I would call GOBS of posts Congrats, mate!
  5. Are you trying to bait "Aristos" into sharing code developed out of boredom?
  6. Any chance we can get him to object to the absence of associative labels for wires?
  7. Either a group project due, or bad form by creating multiple new accounts (both one-hit wonders...) See this thread... Homework Hustlers (plural?!)...
  8. Bad User/Operator - Go away! emoticon... Bad Operator... Homework Hustler HH Alert! Alt HH Alert
  9. Here is my check list: If you program with LabVIEW on that laptop, get 1920x1200 or 1600x1050 display depending on how good eyes you have (1920x1200 on laptop screen means pretty small pixels). The screen size should be at least 15". Choose your DAQ device first and then verify the laptop you buy has a communication support such as PCMCIA or USB 2.0 for the DAQ device. If you use your laptop on the go, get a Pentium M or Pentium Core Duo processor or AMD Turion processor, these consume less power and battery lasts longer. On the other hand, if you do not use your laptop on the go, you save money if you stick with some non-mobile processor. If you expect very high data acquisition rates, get a Pentium Core 2 Duo, that's the best processor, but only few laptops with that processor are on the market (it's brand new). Buy an external mouse. If you write with the laptop, verify that the keyboard is good. IBM/Lenovo has best keyboard to my opinion. If you intend to use external display, verify that laptop has a DVI-I connector since that works with both DVI and VGA displays. Get a three year long support contract that convers repair. If you use laptop a lot on the go, you may also consider getting a contract that also covers accidents. If you cannot afford you computer being in service for weeks, verify that the service really is onsite and that they always replace broken parts onsite. I have bad experience on Acer and HP service. If you are going to use the laptop as a personal device, get a bluetooth connector, since then you can synchronize your bluetooth devices such as your phone. If you expect to acquire a lot of data, get a 100-120 GB hard drive and verify that the USB 2.0 connector is fast (USB 2.0 standard allows different speed connections). Buy a external USB 2.0 hard drive for data storage. If you expect very very high data amounts, get an external RAID drive stack, there are alternatives up to 2-4 TB. Get a DVD+RW drive or DVD+/-RW drive. Verify that there are many enough USB 2.0 connectors. I think four is fine. If you use Wifi, get a laptop with Wifi a/b/g card integrated. If you use the laptop on the go, verify that the weight is less than 3kg (what ever in pounds). 1-2 GB central memory is fine depending on your use, do not go with less than 1 GB. Be sure there are two memory units and not only one, since present processors work faster with two units. I think that's it. I hope this helps. Dell D810, Dell D820, Lenovo 3000 N100, ThinkPad T60 and ThinkPad T61 are probably pretty close to these specs if you just configure it correctly. According to recent study in U.S. IBM/Lenovo laptops are most reliable followed by Apple.
  10. Maybe a VI that could do THIS would help ...
  11. Try the Variant Set and Get Attribute functions Download File:post-949-1161273727.vi
  12. Off Topic, Hijacked emoticons Off Topic Hijacked
  13. Ah... ok. Sounds stupid if you cannot unload a class. If you can accept changing the plugin class name, try adding version number directly to the class name. As an example MyPlugin.10.lvlcass. There are also some methods in Application that you may try: Application.LVClass.Open Application.Library.Deploy/Undeploy (Class "Class" is a child of class "Library")
  14. Dynamic VIs can be declared of Subroutine priority and these even seem to work properly. However if one has dynamic VI of subroutine priority, file browser context menu New -> Override VI doesn't work. If Override VI menu item is selected from child class, nothing happens. Override VI can still be created manually, but automatic creation doesn't work. The attatchments has a simple sample project. Download File:post-4014-1161250719.zip
  15. Hi, I wrote a plugin system with classes that works fine. Each plugin has a class deriving from a parent interface class. Each plugin class has a dynamic create method. In addition each class has a VI that simply returns a plugin class constant that is outside the class. If you dynamically open reference to correct plugin class constant VI, you get the correct plugin for you program. I search the directory structure for these plugin contant VIs so that I can at runtime search all available plugins and allow user to select which plugin shall be used. -jimi-
  16. Ideas for future coding challenges Ways to Improve Submission Participation Keep the scope of the problem small enough to allow someone to work on it "during lunch" Create some sort of teams and a private place for them to collaborate. Ways to Improve Voting participation See Ideas above. If the solution to be voted on affects me in some way, I might be more inclined to look at it (and learn from it) Ways to make the challenge more fun See all above Example: If I was a UI expert and you were a pattern expert, we could combine our talents, address the challenge "during lunch" and give a gift to OUR community.
  17. Perhaps this tool already exists, not for LabVIEW though Checkout I-Logics Statemate . Does anyone have knowledge about this company/product? //Lars-G
  18. I've been running three instances of a single vi (reentrantly) in three separate subpanels for a while. Each subpanel is on it's own tab in a tab control, and each contains a stripchart and XControl that is updated at ~ 20Hz. :thumbup: I can stop individual instances without affecting the other threads.
  19. I don't want to start an I too am a (long time ) lava, not a fighta...
  20. This discussion is important and it relates to very important general issues, namely code reuse and LabVIEW compile time safety mechanisms. I think there is an issue in this discussion that nobody has yet mentioned. During the development time the developer doesn't know in which circumstances his/her module is used. Only in projects where there is only one developer, all the code reusage situations are somehow predictable. If the developer writes code that may be used by other as part of some software, notifiers are risky due to the possible program hang feature. So even though the notifiers function well in the case the uses them, the code reuse may lead to mysterious program hang in later times. Especially if one writes a library that may be used by third parties totally independet of the developer, one should not use notifiers due to the fact the library may mysteriously hang. Then a second issue that is not discussed here yet. It's more general and not related to notifiers directly. I think one of the best features of LabVIEW is strong typing. I am not fan of variants, I'd prefer polymorphic types instead of variants. Strong typing guarantees that it is hard to create bugs as one cannot connect a wire of wrong type to the node. With W4N node it is possible to connect incompatible wire to the node as the developer gets no warning when he connects different notifiers to the same node. As a general issue, I think LabVIEW should be designed in the way that no node can accept wires that are of incompatible type. I would appreciate if NI would try to avoid this kind of primitives which could be easily used incorrectly. It's not even matter of documentation as most users don't read the documentation very well. The primitives should be intuitive and safe. I do not say that this safety should always override performance, there could be a right-click-menu option that would change the behaviour of the node. The default behaviour however should always be the safe behaviour and the non-safe high performance behaviour should be the non-default one. What I suggest is not adding a new primitive to the language. I suggest modifying the existing primitive so that it has two possible compile time modes: the present mode and a new safe mode. When upgrading VIs to newer version of LabVIEW, the existing nodes would transform into this non-safe mode nodes. The default behaviour in LabVIEW 9.0 would however be the new safe-mode. There could be a red 8.2 watermark in the non-safe node to indicate the difference in behaviour and to encourage developers to check the help for the differences between the safe and non-safe modes. -jimi-
  21. Which one of these sync tools is the best for the task? It needs to be able to handle multiple different messages, it needs to be able to send a single message to multiple places. It's weird that nobody has complained about this before. It only tells that LV is not used to large scale application development very much.
×
×
  • Create New...

Important Information

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