Jump to content

MikaelH

Members
  • Posts

    835
  • Joined

  • Last visited

  • Days Won

    49

Posts posted by MikaelH

  1. Hi Trin

    I don't have the full solution for this but I've added a VI that shows how to mark certain points of the graph using cursors.

    I was hoping there were a invoke node that converts a 2D coordinate position to a estimated 3D position, but this invoke node method don't exist.

    I guess you have to make a first guess, and then give the user 4 direction buttons so you can move the cursor in the X-Y direction.

    3D-PlotCursor.vi

    Cheers,

    Mikael

  2. Hi

    I haven't tried it in a C# application but it should work just fine. It should be included in Measurement Studio.

    I did use the DataSocket Active-X component straight in a web-page a while ago and that worked great.

    Of cause I had to allow to run an Active-X items in the browser.

    I also added a NI-Graph component on the web page and the Data Socket updated the graph every time a value was received.

    At that time (2000), it was impressive to see a web page updating in real time.

    Cheers,

    Mikael

  3. Thanks Guys

    It’s always nice to see that I’m not alone out there

    I’m using 8.6.1, and also lvlib’s containing classes.

    I would guess it has something to do with Dependencies or Error Checking.

    I’m keen on creating a big dummy projects and submitting it to NI to see if they can figure something out.

    If they managed to find a solution for LV2010, I promise I’ll be the first to upgrade ;-)

    Cheers,

    Mikael

  4. Hi

    Sometimes the response time when editing a large VI gets soooo long.

    I can easily see it on the mouse cursor when I move to different object and would expect the cursor to change, but it takes 3-5 second.

    Am I the only person to experience this?

    I have a powerful PC, so that’s not the bottle neck.

    It’s like LV decides to recompile the whole VI and do a complete Error Check of all code in the project.

    If I restart LabVIEW it looks like it becomes faster for a short while, then it’s back to be frustrating slow.

    So I tried to open my main VI direct, not using the project, and then the response was fast.

    I do use lots of classes.

    Any ideas?

    Have you experienced the same?

    Cheers,

    Mikael

  5. When you place controls on the Front Panel you can tell LV who the Parent is.

    So first you need to get the control (the only control found on the Front Panel) reference for the Cluster, and then use this ref as parents for all attributes.

    FYI, the GDS tool has an API interface to do this and it also has XMI support,if you are interested to try it out let me know.

    Cheers,

    Mikael

  6. Hi Jeffrey

    It's always nice to get a peak into your design solutions :-)

    I guess you have 2 base class methods Thread 1 and Thread 2 that you override like this:

    post-941-126741657947_thumb.png

    I tried the solution the way I would have done it, and it worked as suspected.

    I’m using the GDS’s design pattern function to create a spawning process for every Station object.

    In this process I call the Thread VI.

    Have a look at the design and check out the video describing how Design Patterns in GDS works.

    http://goop.endevo.n...DesignPatterns/

    Threads.zip

    Cheers,

    Mikael

  7. If you remove the INI files, LV will not load the GDS in memory.

    If GDS should be loaded, all files have to be compiled, if any file needs to be compiled (or LabVIEW thinks it need to be recompiled), LV will crash.

    I have only tested it once myself and I got it working at least once, but I'll look into this issue.

    Cheers,

    Mikael

  8. Yes I have use it a bit, but your right LabVIEW does hang if any VIs aren't Pre-Compiled.

    So to solve this, you hav e to:

    1) After installing GDS, move the 3 ini files in the folder: LabVIEW 2009\resource\Framework\Providers\Endevo

    2) Make all VIs in this folder Writable (Not Read-Only)

    3) Also make sure these folders are also Writable: \project and vi.lib\addons

    4) Start LabVIEW and Masscompile all files in these 3 locations.

    5) Just to be sure I would open all VIs direct under the folder: LabVIEW 2009\resource\Framework\Providers\Endevo, and verify that they really don't have a * in the title bar.

    ANd is so resave all when closing.

    6) Quit LabVIEW

    7) Move the 3 ini files back and restart LabVIEW

    Let me know how it went.

    I do have a beta GDS-version, that might work better, let me know if you want to try that one.

    //Mikael

  9. The best solution I've found so far is to maintain both the previous and next element in the list (a doubly linked list), insert them backwards, and then reverse the list after adding all elements to it. Is there another way?

    Hi Shaun

    It looks like your after the “Iterator” design pattern.

    (Page 257, in Design Patterns http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612).

    post-941-126437677113_thumb.png

    Just google it.

    E.g. http://www.cs.unb.ca/profs/wdu/cs4015w02/ch5d.htm

    Cheers,

    Mikael

  10. Mikael,

    Thank you very much. I will spend some time today going through these links. Do you recommend the endevo version over the LV version of OOP?

    I most often use the reference based class templates, and I then use the Endevo GOOP 3 class provider in GDS.

    But when possible I use the normal by value approach, but I still use GDS, but uses the LabVIEW Native class provider to make my life easier.

    Cheers,

    Mikael

  11. Hi Daryl

    I'm sorry to here that the OOP class didn't deliver what it promised.

    You could start here: http://lavag.org/top...-goop-prgamming

    I've also uploaded some videos, but those are focusing on the Goop Development Suite.

    www.goop.endevo.net/GDS/videos/GDSFeatures

    www.goop.endevo.net/GDS/videos/GettingStarted

    www.goop.endevo.net/GDS/videos/DesignPatterns

    www.goop.endevo.net/GDS/videos/StateMachine

    www.goop.endevo.net/GDS/videos/Debugger

    Tomi has made a nice video that you can try.

    http://expressionflo...ts-and-classes/

    Cheers,

    Mikael

  12. Hi

    We're running XP, and most of them are XP embedded.

    We started to notice this problem when we updated the code to be LV 2009 compatible.

    The funtion takes a string in and returns a Configuration Ref Num, in LV 2009, this is replaced by a class.

    So in the initial design we used the "Private" functions in the Config VIs to create the object, but in LV 2009 this is not possible since we can use the private VIs any more.

    This is the initial code, which always has been working:

    post-941-126282781379_thumb.png

    And here is the code we changed to and started generating problems.

    post-941-126282795269_thumb.png

    LcString_OpenConfigDataUsingString.vi

    This problem has become more and more frequent for some reason, before is occurred about 0-2 times a week, but latelty we saw it several times a day.

    Maybe it's the virus protection application that causes the problem.

    Cheers,

    Mikael

  13. Hi

    We have experienced some strange things on some computers running the a LV executable applications.

    We download ini-file content from a database and temporary write them to an ini-file so we can use the Configuration File VIs.

    1) We delete the file (it might already exist)

    2) We write a new file

    3) We open it with the “Open Config Data” VI.

    So easy, but we have experienced problems on some computers running this code in an LV executable. It always works when running it from the Dev Environment.

    (FYI the VI that create this Config data Refnum is not reentrant)

    The problem is that the file is empty.

    Why I see an empty file is probably because I use the Default input to the “Open Config Data” VI, that lets it Create the file if it doesn’t exist.

    But why is it not created.

    Any ideas?

    Is Window treating files in the Temporary folder different?

    Are commands (e.g. the Delete File), somehow cashed in Windows and executed later when the file is in the temporary folder?

    We have solved it by doing this for now, but why why why????

    post-941-126282006347_thumb.png

    Cheers and happy New Year guys.

    Mikael

  14. Hi Jeff

    If you can upload the same code in 8.6, I can help you quicker, since I won't have access to LV-2009 until tonight :-)

    Or. you can just port a screen shot of your "Stop Loop Query"

    But here are some tips/question.

    I guess the "Stop Loops" sets a flag in the attribute and the "Stop Loop Query" checks it?!

    Reading from the attribute is normally a quick task, but if the size of the attribute is huge, it will taks some time.

    You can check the attribute size, using the "Tools->Debuggers->Endevo Object Debugger..." option.

    I would suggest that you check how often this "Stop Loop Query" is called in other loops, so you don't call it so often LabVIEW has to wait for access to it.

    When I need a faster attribute access and I know it's a Singleton, I use one LabVIEW 2-Style Global

    post-941-126281020838_thumb.png

    If you have many caller to the "Stop Loop Query"-VI, you can change it's Priority to subroutine (VI Properties->Execution).

    And when you use this VI on the block diagrams you can right click on it and select option: "Skip Subroutine Call if Busy"

    I also use the Profiler to see how much time is spend in accessing the attributes of the class.

    Cheers,

    MIkael

×
×
  • Create New...

Important Information

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