Jump to content

lvb

Members
  • Posts

    209
  • Joined

  • Days Won

    7

Posts posted by lvb

  1. I take it you can't include the plugins themselves on disk as VIs (BD-stripped, if you like) and just build the plugin architecture into the executable?

    I would like to keep everything in an EXE. The goal is to make adding new "plugins" as simple as possible.
    How are the LAVA members working around this issue?
    It seems that a source distribution is the most common approach. Removing block diagrams is used for code protection.
    Is it possible to list files contained, but not loaded inside of an executable?
    It seems like the official way to do this now is using constants generated at build time as described in my first post.

    • So there is no way to list items not in memory inside of an EXE in LabVIEW 2010+??? It would be nice if this was possible (at least with a VI that exists within the EXE)...

  2. You're going to have to recompile to add them inside the executable; why not add the new object to a VI as well? You're other option would be to use a plugin structure.

    Adding the class constant to a VI would load that class into memory. In addition, I do not want the user to modify some of the framework. It would also be nice to simplify what is required of the framework user (i.e. eliminating the need to add a pre-build VI).
  3. I am hoping you can clarify the end goal of this task a bit better. I think you are trying to get a list of suitable objects in the step you show. Later you will load an object of the type the user selects, in a sort of factory (not shown)? So this is an effort to use a plug-in architecture? Or am I missing this entirely?

    Paul

    I am building a hardware abstraction layer (HAL) framework with hardware plugins. For now, the plugins will be contained within the LabVIEW executable. Using the framework in the development environment, a developer can drop their plugin class within the project folder and it will be detected using the above VI snippet.

    For example, the HAL layer has a Power Supply.lvclass (interface). The developer places the "NI DC Power Supply.lvclass in the project (which inherits from the Power Supply.lvlcass). The application settings screen uses the VI snippet from above to search the project (or EXE) and populates a ComboBox or Ring Control with the available Power Supplies on the system.

    • My goal is to list files (.lvclass) contained, but not loaded inside of an executable...

  4. Just wondering how everyone is handling the factory pattern inside of executables?

    Some Background

    A "bug fix" in LabVIEW 2010 broke the ability to list files inside of an executable: 201140 — Extracting or Unzipping LabVIEW built applications using Winrar or Winzip

    I use the "Recursive File List.vi" to obtain a list of children for a class and populate ring controls:

    post-4274-0-42281900-1328714301_thumb.pn

    This VI no longer works in a LabVIEW 2010+ executable. The proposed "work-around" has been to manually generate a string constant with the contents of the executable.

    Work-Around

    The best work-around seems to be the following: (which I don't like because of the manual Build Specifications step)

    • In the snippet above, check if the environment is run-time or development
      • Development -> Call Recursive File List.vi
      • Run-Time -> Call EXE Recursive File List.vi

      [*]Use scripting in a Pre-Build Action VI to generate the Call EXE Recursive File List.vi

      [*]Remember to add the Pre-Build Action VI to every new build created

    So...

    • How are the LAVA members working around this issue?
    • Is it possible to list files contained, but not loaded inside of an executable?

    Looking forward to your comments...

  5. Mark,

    Have you found a solution to this? I haven't heard of "memory space" in relation to TestStand or LabVIEW. My best guess is that TestStand and LabVIEW are not running in the same Application Instance as Asbo previously mentioned.

    If this occurs on a deployment with a LabVIEW EXE only, then there is a work-around for code sharing between the OI and TestStand.

    A few questions regarding your framework:

    • What process model are you using?
    • Is the LabVIEW GUI LabVIEW Development or an EXE (Run-Time Engine)?
    • What TestStand LabVIEW Adapter (LabVIEW Development or Run-Time Engine)
    • Does this occur on both development AND deployment systems?
    • Did you verify that your LabVIEW GUI and TestStand LabVIEW Adapter match?

    The following snippet should list all the Application Instances (Contexts):

    post-4274-0-49633100-1326391064.png

    There is a good thread regarding Accessing VIs across contexts here on LAVA. That thread has a VI Server method that can be used to obtain a VIs Application Instance.

    If it turns out the Application Instance is the same, I would be very curious to find out more details from you.

  6. I spent a lot of time trying to use Bluetooth functions from LabVIEW. My solution was not to use the built-in nodes, but to use CLNs to call the Windows API to accomplish functionality.

    What functionality are you looking for?

    More stability than a Microsoft driver. :oops:

  7. well lots of comments thanks all.

    Though some of the comments almost tempted me down the netbook route, I stepped back from that. If I really want to do some work I will just use my PC at my study desk or maybe get a powerfull laptop, for any real work I do like a big screen, old age so sight going :( and I also like a good keyboard.

    If you love keyboards, you should really check out the Asus EEE Pad transformer. It has a docking station that turns it into a "netbook".

    http://www.amazon.co...r/dp/B004U78J1G

    TF101-A1_tablet_S.jpg

    Breaking the mold, an optional keyboard docking station designed especially for the Eee Pad Transformer transforms your tablet into PC mode with a 92% sized QWERTY keyboard with unique Android Function (Fn) keys for added convenience.

    Featuring all of the connectivity you'd expect in your notebook, the Eee Pad Transformer comes complete with 2 USB 2.0 ports, a headphone audio jack and a 4-in-1 card reader when used with the optional docking station. Also to keep you unplugged longer without interruption, the optional keyboard docking station adds an additional 6.5 hours of battery life, allowing the Eee Pad Transformer to last up to an astounding 16 hours.2

    As I mentioned before with Android, I would check with the vendor to see how long they will support the OS and tablet with updates. Motorola is coming out with the Xoom 2 soon. Updates for the Xoom might be dead after that...

    -Brian

  8. One thing the page does not mention: TestStand cannot directly invoke dynamic dispatch VIs. You must create a static dispatch VI as a wrapper for the dynamic dispatch call. This limitation is expected to be eliminated in the next version of TestStand.

    According to the post here, TestStand 2010 SP1 (released August 2011) supports dynamic dispatching. Is there a KB entry regarding this? I could not find anything. It would be useful to summarize the LVOOP features and limitations by version of TestStand.

    • Like 1
  9. I do not agree with several things you have said.

    In closing don't take this as a personal attack I am just trying to counter point an argument for any iOS device on the merit that it has more functionality than a PC.

    No offense taken, we are all entitled to express our opinions!

    I should start by saying that I have a bias against the Intel Atom chipset (netbooks) because I am a Linux user at home. Hardware drivers for Linux Netbooks have been of very poor quality usually with an incomplete feature set. When there is no hardware acceleration, the Atom chip is a SLOOOOW... This applies to both Windows and Linux.

    If you are going for productivity, definitely use a desktop PC or a laptop. Battery life aside, why not just spend a few more dollars than a netbook and get a laptop/ultrabook with a "real" processor (sandy bridge) or an old laptop on eBay?

    I do not believe the iOS to have more support for games than a PC. I would suspect that the number of games I can play or emulator and play on a Netbook likely outnumbers the number of total apps in the app store (which is over 600,000)

    I was comparing Android vs iOS here.

    However, both iOS and Android can support the majority of emulators. Tablets are much easier to game with and device drivers are not a worry. My 3 year old can fully navigate and play any game on our Android tablet. She has no idea how to play games on our PC.

    As a side note, how do you game on a netbook? Since there is no touch screen, do you use the touchpad for the mouse or just the keyboard?

    Why is the iOS good for texting? Why can't teens text with GoogleTalk? Or Skype? Or a web browser? I would say that a PC would have more accessibility with communication through voice, video, images, and text than a iOS device.

    iMessage is built into the OS and provides instant notification of a message. It behaves exactly like a text message. Both Android and iOS have applications that allow free texting. I haven't found an equivalent messaging system that is always running on Windows/Linux, can text message mobile phones, and doesn't require a resource intensive application running. Is there a way to get desktop notifications through Windows/Linux from a cell phone text?

    What makes a tablet with bluetooth a better option than a netbook? A tablet will still cost more and have less features than a netbook won't it?

    I believe tablets range from $200-$600 which is the same price range as a netbook. Neither are "better", but I prefer to use tablets as a consumption device. I am also not worried about our children dropping and pounding on the tablet as they are pretty rugged.

    What makes an Ultra book a better option? Does it not have less features and cost more than a netbook?

    An ultrabook has more features than a netbook. It is a fully featured laptop optimized for weight and battery life.

    Hopefully that explains my opinions (and bias) better. I am curious why you prefer a netbook over a tablet/laptop?

  10. Everyone has their own preferences for portable devices, but I would suggest the following ranking for most people:

    1. Smartphone

    2. Laptop

    3. Tablet

    My general advice for portables/tablets/netbooks:

    • iOS
      • Average user OR gamer
        • iOS has by far the most support for gaming (including kids games)

        [*]If you already own Apple products

        [*]For teens since iMessage allows "texting" their friends

      [*]Android

      • Technical people who want to tweak their system: "power users"
      • If you use a lot of Google or Amazon services
      • If you really need flash
      • If you want full USB root hub support

      [*]Netbooks

      • Tablets with a Bluetooth keyboard are a better option
      • Ultra books are a better option

    One warning about Android devices: *support generally stinks*

    I currently own a ViewSonic gTablet that I purchased last February. This tablet was built upon the same chipset as the Motorola Xoom but with 512MB or RAM (the Xoom had 1GB). When I purchased this, there were rumors of official Honeycomb support since Android is Open Source. Well, the Honeycomb source was not released and the vendor stopped product support 6 months after the product release. I am running Honeycomb using a "ROM" from XDA Developers, but it is very slow and buggy. I am surprised if the Tablet functions normally as things only work 80% of the time.

    If you are going the Android route, I suggest you do a lot of research and purchase a product that has "guaranteed" upgrades to Ice Cream Sandwich. Usually Samsung, Motorola, and Acer have good support...

  11. Do you have GOOP Development Suite installed?

    No.

    Do you have more than one target in your project? A class that is loaded on more than one target is also locked due to the same reason, i.e. due to "multiple application instances".

    There is more than one target in the project but all of the classes are under "My Computer". In addition, when I look at the LabVIEW Class Hierarchy, everything is listed under the "Project.lvproj/My Computer" application instance.

  12. I am experiencing a very frustrating issue with a project that has multiple LVOOP classes. When I open my project and ONLY my project (i.e. no other application instances), multiple classes are locked. The funny thing is when I select the "Why is this library locked?" menu item the dialog states the following:

    The library is locked for the following reason(s):

    This LabVIEW class is loaded in multiple application instances. Classes must be in only a single application instance to be edited.

    I started experiencing this issue after editing the inheritance hierarchy of a few classes and have not been able to find the root cause. A lot of the classes are currently broken because they are missing some required overrides, so I am not sure if this is causing the issue. The problem is I cannot resolve these issues because the libraries are locked! If I open all of the project classes in the Main Application Instance, I get the same locking issues. I can open each class individually, but I don't want to spend more time and effort on development if the locking issue will persist.

    Is there anything other than a class being loaded in more than one application instance that will cause it to lock? Because I definitely do not have this situation... Will a broken class cause another to lock?

    Any advice would be greatly appreciated as this is quite a serious issue.

  13. It seems this thread is picking up momentum. It is great to see LAVA members working together.

    Friends, let me please get a lock on these VIs for a couple of hours. I am working on merging AQ's work and all that I did yesterday.

    Earlier I was working on the Task Manager and the Simultaneous Breakpoint Manager separately, but it is probably better done as a single tool. So let me merge all our work so far and see where we get.

    Since we don't have any SCC, let's just do it the old fashion way :)

    Ravi, thank you for sharing your work.

    drjdpowell: Your post unwittingly highlights something VERY interesting. You're working with the older version of the AF, where we used the "Run VI" method. In the 2011 NI Week release, we're using the Asynch Call By Reference because it makes it much simpler and faster to launch copies. But the speed improvement is marginal, and ACBR makes us lose the ability to abort the subVIs. Going back to the Run VI method would make them open as top-level. That's something worth considering!

    Everyone: The checking for clones problem gets worse the more times you run your application. Statically allocated clones will generally keep their number. Dynamically allocated clones will move further down the number line. That poses a problem for the "test a few" idea.

    Thanks for sharing your work also. I was just confirming the re-entrant numbering with a few test VIs. It appears the Async call does not use sequential numbering:

    post-4274-0-07930500-1316615213.pngpost-4274-0-39954900-1316615209_thumb.pn

    Background_Task.vi

    Launch Background Tasks.vi

  14. Yes, it has prims you can drop onto your VIs from the palette (once you install the toolkit of course).

    I have the DETT installed on my system and only see the "Generate User-Defined Trace Event" under the palette "Desktop Execution Trace Toolkit" menu. I don't see any other VIs or an API that will allow for interaction with the DETT. Where are these other prims you are referring to located?

  15. One feature request is a drop-down VI, that sends a message to the taskmessenger, with info about the owning VI and perhaps a custom string, so we can track start-stop and runtime

    Ton

    Ton, are you asking for the LabVIEW Task Manager to provide a "pipe" for User Defined Trace events? This is already a feature of the LabVIEW Desktop Execution Trace Toolkit that is now included with LabVIEW 2011 Professional:

    post-4274-0-88814500-1316113447.png

  16. Are there any existing task managers specific to LabVIEW? I am looking for a task manager that is capable of:

    • Listing running VIs along with memory usage and refnum
    • Aborting a running VI
    • Showing or hiding a block diagram or front panel

    I have searched on google and the NI forums with no luck.

     

    Update:

    Bitbucket Repository - https://bitbucket.org/lavag/labview-task-manager

    Code Repository Page - http://lavag.org/files/file/245-labview-task-manager/

  17. This looks like a very nice tool. It appears to have better integration into LabVIEW (Source Code Control menu, integration into the Project Explorer, VI Dashboard).

    Has anyone got experience with the TSVN Toolbar for LabVIEW from ViewPoint Systems? The features seem pretty neat (user manual here), but I'm wondering why I hadn't heard of it before now...

    A google search does not bring up many results, with only one mention on the NI site. A search on the NI site for TSVN Toolbar brings up no results! Odd for an application that was last released over a year ago.

    Even more odd is the google code project with an empty repository: http://code.google.com/p/vsi-tsvn-toolbar/

×
×
  • Create New...

Important Information

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