Jump to content

MikaelH

Members
  • Posts

    835
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by MikaelH

  1. QUOTE(orko @ Aug 23 2007, 07:19 AM)

    ... clicking the item(s) and dragging over the edge of the scroll list, then hovering while the list scrolls.

    I guess you're using 82(1)

    But it's better than my 8.5 version, because now the project tree list won't scroll when you get to thew edge with your dragged item.

    It worked perfectly in 821, anybody else got this problem?

    But maybe you sould upgrade to 85, since you can connect a folder to a physical disk-folder so it auto updates all it content.

    My top 8 list of new features in LabVIEW 8.5

    • <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">When double clicking on a SubVI on the block diagram that is a dynamic dispatch VI, you can select which implementation VI to open. <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Auto-populating folders (and that it doesn't add hidden folders like .svn) <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">To see the path of the VI in the project tree. <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Possibility to set scoop on item in project tree by right clicking on the item. <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">And of cause recursion!!! <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Conditional stop terminal in for loops <LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Finding callers on SubVI by right click on item in project tree.
    • Mass compile project by right clicking on the Project node in the project tree.

    //Mikael

  2. The cell is blocked for user input, so it won't update.

    But you can get it to work by changing the Mouse Up event to "Mouse Down?", and set the "Discard?" option to true or false depending on your application.

    But to be sure that your Cell update is executed before the "User input block", you should update the cell in the "Mouse Down?" event case.

    //Mikael

  3. If you try running it from another application instance, it will be even more "locked".

    Especially if you open en reference to a class from several Application instances, it gets locked.

    I have had lots of problems with this for the Project Tree Addon tool (GOOP Development Suite) I'm working on, since that code is running in a

    "NI.LV.MxLvProvider" application instance.

    Also you can get LabVIEW to crash when messing with too many open application instances ;-)

    //Mikael

  4. QUOTE(Ale914 @ Aug 21 2007, 06:13 AM)

    Since the main goal for extreme programming is to reduce the cost of change, I find that a proper OO-analysis and OO-design solves that problem.

    I've been using GOOP with inheritance since 2001 and I always start with a UML class diagram to visualize my needed classes and their dependencies to make sure changes are easy to add later on.

    Below is a class diagram describing parts on my current project.

    http://forums.lavag.org/index.php?act=attach&type=post&id=6692

    //Mikael

  5. I'm, guessing you have to place the check in the timeout case, and poll the window bounds.

    VI:Frontpanel.WinBounds

    If you want to know as soon as the mouse is clicked on the title bar, you have to use the InputDevices.llb\ Mouse VIs.

    These will get you the current mouse postion and button states and then compare them to you VI window positon.

    //Mikael

  6. I can really recommend it.

    With one large project with plenty of classes I hade one problems at all.

    But with another project I had to do some changes due to Invoke node interface changes. The Invoke node was "App:LVClass.Create" and the Invoke node ProjectItem:AddItem don’t allow an unnamed LVClass type.

    //Mikael

  7. Thanks Stephen.

    Yes that will work and solves my Clone use case, but you're not actually converting the ParentClass Data wire to a Child data wire.

    But maybe this is not needed, but it could look like this.

    http://forums.lavag.org/index.php?act=attach&type=post&id=6662

    Here is also another clone project:

    http://forums.lavag.org/index.php?act=attach&type=post&id=6663

    Thanks

    //Mikael

  8. When you talk about casting to more specific, I like to add a wish of Type Cast for LV objects.

    Maybe this is impossible for LabVIEW to support due to its OO design, but what I'm after is to convert an object of one type to another sub class type.

    E.g. First create a Graphic object and then Convert it to a Line Object.

    Like this:

    Line MyNewLine = (Line) MyGraphicObject

    Why would I like this?

    I use this method right now (using the Endevo GOOP Inheritance toolkit) when cloning an object.

    In this example I would like to do this:

    Class ClassNode{   …   Public Clone()   {	  ClassNode MyClonedObject= (ClassNode) super.clone();	  …	  return MyClonedObject;   }   …

    http://forums.lavag.org/index.php?act=attach&type=post&id=6657

    //Mikael

  9. QUOTE(Ben @ Aug 14 2007, 07:11 AM)

    I was reading the on one of those USB-cDAQ devices and it said it could only support one active task at a time.

    I had the same problem using a USB-cDAQ.

    I wanted the design (lots of analog and digital sensors), to be independent from each other i.e. one object per sensor.

    But due to the limitations of the USB-cDAQ drivers, I created a Singleton, Daq reader object.

    That all the sensor objects requested information from.

    When the sensor objects requested data they could get the last value, or force to wait for a new updated value.

    They could also request an average value from the last x samples.

    This could be done since the Daq reader object, stored the last acquired values in a circular buffer.

    This design requires that the Daq reader object, knows the fastest sampling time, so each object (when they were created) told the Daq reader object it's fastest sampling time.

    //Mikael

  10. I have had the same problem when building executables.

    NI knows about my issues and have fixed these bugs for the next version of LabVIEW that they are working on.

    But the work around I had to use was to include the block diagram in the executable.

    You do that by enable the "debug" option when you create the executable.

    Did this solve your build problems?

    //Mikael

  11. Hi

    I'm working an the feature to drag project items from the project explorer window into a running VI.

    I've got it working in the VI attached but it might be better ways.

    Do you have any ideas?

    http://forums.lavag.org/index.php?act=attach&type=post&id=6475

    I'm lookin into adding this feature in the UML modeller I'm working on.

    It will be demonstrated at NI week during Jan Klassons presentation:

    "Graphical Systems Modeling Using the Unified Modeling Language"

    This tool will be shipped with next version of GDS (GOOP Development Suite),

    and the community/professional edition will be released a couple of weeks after NI-week.

    Cheers,

    Mikael

×
×
  • Create New...

Important Information

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