Jump to content

Tomi Maila

Members
  • Posts

    849
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by Tomi Maila

  1. Regarding the confidentiality clause of the Active VI Toolkit alpha/beta test agreement for pre-release products.

    Active VI Toolkit is now public and you can freely discuss the Active VI Toolkit related issues on these forums. However the source code of the Active VI Toolkit is not public and you are not allowed to share the source code publicly. You can freely post examples using Active VI Toolkit to ExpressionFlow forums, however you are not allowed to redistribute the toolkit itself.

  2. A few weeks has passes since ExpressionFlow released Active VI Toolkit for public alpha testing. Many of you have probably already tested the toolkit and have some opinions and experience on it. As I'd like to develop this toolkit to meet user needs, I'd really appreciate all your feedback.

    • So what are you initial experiences with the Active VI Toolkit?
    • What did you like and what didn't you like?
    • Was the toolkit usage clear or did you understand nothing at all?
    • Do you think you would have a use case for something like Active VI Toolkit?
    • Were the examples clear?
    • Are you experiencing bugs and problems with the toolkit?

    If you have not yet downloaded the Active VI Toolkit, please click the downloads tab above on the menu bar under the ExpressionFlow logo.

    Regarding the confidentiality clause of the alpha/beta test agreement for pre-release products. Active VI Toolkit is now public and you can freely discuss the Active VI Toolkit related issues on these forums. However the source code of the Active VI Toolkit is not public and you are not allowed to share the source code publicly. You can freely post examples using Active VI Toolkit to ExpressionFlow forums, however you are not allowed to redistribute the toolkit itself.

    p.s. Eastern is an excellent time to spend with your loved ones like your family and interesting LabVIEW stuff.... :rolleyes:

  3. To celebrate its first anniversary, ExpressionFlow has opened these brand new discussion forums in affiliation with LAVA. For more details, check out the blog post

    ExpressionFlow opens discussion forums in affiliation with LAVA

    I'd like to give my very special thanks to LAVA and especially to Michael Aivaliotis for all the efforts he has made to get the ExpressionFlow forums launched today. Thank you Michael!

  4. This is the support and discussion forum for Active VI Toolkit.

    Active VI Toolkit is an Erlang style message passing library for development of concurrent LabVIEW applications. The toolkit provides easy-to-use LabVIEW language abstractions for writing concurrent applications based on message passing between parallelly executing VIs. ExpressionFlow Active VI Toolkit greatly simplifies the authoring of highly concurrenct LabVIEW applications.

    The Active VI toolkit is currently at alpha pre-release version targeted for mainly for concept testing and public discussion. Feel free to discuss anything related to Active VI Toolkit usage and software development using Active VI Toolkit. Should you require Active VI Toolkit support you can post your questions here. Also should you have found bugs in the toolkit, you can publish them here.

  5. Please follow the forum guidelines when posting to ExpressionFlow Forums.

    To summarize the most important guidelines

    • Use descriptive post titles
    • Write questions so that others can clearly understand them
    • Don't use personal messages for help requests
    • Post to single most suitable category, don't cross-post the same post to multiple categories
    • Use images and attached code examples to clarify your post

    When following the guidelines, you will be likely to receive positive feedback.

  6. Welcome to ExpressionFlow Forums!

    I welcome all ExpressionFlow readers to lively participate the discussions on ExpressionFlow forums, the ExpressionFlow blog related discussion forums. The forums are provided to you by ExpressionFlow in affiliation with the world's number one independent LabVIEW community LAVA (LabVIEW Advanced Virtual Architects). The ExpressionFlow Forums provide ExpressionFlow readers a rich environment for lively discussions and a convenient channel for ExpressionFlow products related support requests. All ExpressionFlow readers can participate discussions on ExpressionFlow forums, only a free LAVA user account registration is required. Anyone with existing LAVA user account can directly participate the discussions on ExpressionFlow Forums.

    To navigate between ExpressionFlow forums and rest of the ExpressionFlow web site, click the tabs on the top menu just below the ExpressionFlow logo.

  7. QUOTE (Aristos Queue @ Mar 14 2008, 07:36 PM)

    The red/black pattern is just the random pen that happens to get selected when nothing has been specified

    No it's not very random. I've seen it so many times before, only most on block diagram. ;) I must confess I've not tried to put methods to palette. It's simply so easy to use LV project to drag and drop items on the blog diagram.

  8. I prefer getting Scala style traits and mixin class composition instead of Java style interfaces. Practically traits are similar to interfaces but they can have private data of their own and method implementations as well. In mixin class composition the traits are included into some class in very much the same way as in multiple inheritance, however avoiding most of the problems of multiple inheritance.

  9. Norm,

    Thanks for fixing the problems, I was able to open the code in LabVIEW 8.5 without errors and run it. :)

    Then for the feedback. The code architecture was not completely clear to me by just inspecting the code. Some description of all parallelly executing instances and the communication channels between the instances would help together with the class diagram. I figured out that you seem to be using the command design pattern to pass commands to remote application instance. The idea of using LVOOP to pass commands to remotely executing LabVIEW instance is good and I'm happy that you've come up with a functional application taking advantage of the method.

    However you seem not to use the command design pattern in a pure form but you have mixed the command pattern with some other functionality. For example your command parent class LVx.lvclass contains the command method itself Dyn - ExecuteEvent.vi but in addition it contains state selecting method Dyn - State To Execute.vi. Your command is then specified as a combination of these two methods which is somewhat confusing to me. I would myself choose differently so that the developer of new commands didn't need to know the exact implementation of the execution loop as a state machine with states of certain names. Either I would write a few build in Commands such as Close and would test if the received command is one of these build in commands or I would add some methods to the command parent class such as Close?.vi that would indicate if the remote instance should be closed after executing the command. Both alternatives have their own benefits and drawbacks. The latter is perhaps more suitable for LabVIEW which doesn't have pattern matching functionality built-in.

    Is there some specific reason you have separated the Event Handling loop and the Primary Execution loop from one another? I don't see any benefit in this particular application to have two separate loops as the Event handling loop doesn't seem to do anything but feed the Primary Execution loop.

    You use named queues and named notifiers both in your example which makes the code hard to follow as at least I didn't find out all the places where the named references are used. Are you using named queues and named notifiers to allow communication between different top-level VIs of the same application instance?

    Now I've to go back with my real work :)

  10. Thanks for reporting the bug! I was able to reproduce it and I can try to fix it.

    QUOTE(jlokanis @ Mar 5 2008, 07:15 PM)

    I was under them impression that Xnodes were not available to devs outside of NI after 8.0. I guess you are one of the lucky ones...

    No I'm not lucky one in this respect.

  11. QUOTE(waxler1 @ Mar 4 2008, 09:23 PM)

    Hi all. Just wanted to introduce my self. I am new to LAVA, and LabVIEW. I have heard great things about the site. Hope to deal with some of you soon. Take care. Tim

    You are very welcome Tim :) Remember that by posting clearly described questions you are like to get good answers... Enjoy LAVA!

  12. Hey,

    Funny that you came with your WORM just now as I also wrote a Write-Once-Read-Many variable called One-Time Store and released it last week as a library that ships with the Active VI Toolkit. Unlike your example One-Time Store must be referred with a valid refnum so it cannot be used as a global directly, although the refnum itself can be stored to any of the globals available. The image below illustrates how the One-Time Store library functions.

    post-4014-1204614102.png?width=400

    Anybody who is interested in playing around with the One-Time Store library is more than welcome to download the Active VI Toolkit.

    Cheers,

    Tomi

  13. Hey,

    Now that I've got the alpha version of Active VI Toolkit released, I've had some time to do some real work once again ;) So I started to play around with LabVIEW 3D picture control released with LabVIEW 8.2, although I'm using it with LV 8.5. I'm trying to get two colored 3D triangle meshes to be displayed one top of another so that the lower mesh would be visible trough the upper mesh. If I understood the 3D picture control documentation correctly, setting the alpha value of a triangle color to below 1.0 should set the primitive to be partially transparent. However this is not what I've experienced with my simple test code.

    Does anyone have any experience on transparency with 3d picture control? How does one achieve partially transparent surfaces? An example VI (LV 8.2) is attached that presents the failing method I'm using.

    post-4014-1204553875.png?width=400

    Cheers,

    Tomi

  14. Hei Janne!

    I guess most of this is already covered in the thread but as I wanted to reply to my Finnish colleague I decided to answer you anyway :)

    As it was said there is not a zoom functionality in LabVIEW, though you could write such by yourself if you wanted. However from user experience point of view I think this is not optimal solution as zooming user interfaces are not very good to use. They may be mandatory in mobile phone web browsers where the target web page is large and the screen is small. However if you are able to modify the user interface then you definitely should make the interface proper for the screen size and not use zooming. It will save user nerves.

    Well, what methods are there in LabVIEW to make user interfaces for various screen sizes. There are several things you can do.

    - You can set selected controls to resize when your screen gets larger

    - You can divide your FP into panes, some of which resize and some of which do not resize when the panel is resized, this is what I ususally do.

    - If the screen is too small to fit all your controls, you can place them into a tab control.

    - You can use a tab control to make a wizard user interface. This doesn't suit all use cases but wizards generally use less front panel space.

    - You can write multiple user interfaces for your application and select programmatically appropriate user interface at runtime. Isolate each user interface into a single VI. Because you are using LabVIEW 8.20, you have access to LabVIEW Object-Oriented Programming, you can isolate each user interface as a LabVIEW class. However I recommend using LabVIEW 8.5. with LVOOP. If you are interested in this option, I can give you some details or blog on it.

    Cheers,

    Tomi

    p.s. Are you coming to NI Days in Helsinki May 7, 2008?

×
×
  • Create New...

Important Information

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