Jump to content

mike5

Members
  • Posts

    160
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by mike5

  1. NOOOO!!!!! LabVIEW Class:Open MethodShort Name: LVClass.Open Available in Real-Time Operating System: No Why me?!!! Does someone know of a solution that works on a Real-Time system? Br, Mike
  2. Thanks again. I "abused" your library to get the LVClassLibrary.ParentClass which I was unable to find in the menu. I hope you don't mind... Br, Mike
  3. Thanks, I'll take a look, but what do I do with a VIP file? Br, Mike
  4. Hi all, I've searched the Internet and this site, and still didn't find what I was looking for - I guess I'm still a n00b I would really like to get the name of the LV class and do this for all its ancestors. So it will by a dynamic dispatch method that should return all the class names back to the base class. Can someone please help me do this? I've found these two threads: but they are a bit over my head, to get anything out of them. Thanks in advance, Mike
  5. So, in the "Conditional disable" I relink the "Linux" case to the dll, and I am done? How about the calling convention? Windows or C? I guess C, but I want to be sure. Thanks and best regards, Mike
  6. I have this external library that works on Windows and Linux, providing DLL for Windows and .so for Linux. I had to move files around a bit, and got a few broken dependencies as a result. I was able to relink all the DLL calls, but when I try to do the same for .so calls, the LabView complains that it cannot process the library. Is there any way to do this on Windows, or do I have to use LabView on Linux to do this? Br, Mike
  7. I know it's a older thread but I came across it when researching the Singleton object. My problem with all the implementations of singleton is that I encountered so far is that they also rely non-reentrant VIs to achieve single instance. Is there a good way to implement this using all reentrant VIs. Br, Mike
  8. Yes, thank you. This is exactly what I will use. Br, Mike
  9. Already have that, but I still have to match the "Run.vi" in the memory with the appropriate object. This is the problem I'm trying to solve. Br, Mike
  10. Let's say you have an an application which starts a few active objects. Is there a way to locate a specific instance of the active object? That is, all are descendants of the same class which has a Run.vi. I found a way to get a list of all VIs in the memory, but what I'd like to do is something in the line of: - for all "Run.vi": + get the parent object + call "Read ID.vi" for that object + do stuff when you find the one you need... Any help/pointers would be greatly appreciated. Br, Mike
  11. AFAIK timestamp is a 128-bit fixed precision type with 64 bits for seconds after 1.1.1904 and 64 bits for fractions of the second. My guess is that simply converting to DBL or EXT gives the same number, because for values >1 the precision of DBL and EXT is much smaller than for numbers (0..1). Try subtracting both timestamps (the result is a double) and comparing that to 0. For number <1 the precision is much higher and you should see the actual difference. Br, Mike
  12. Thanks for that explanation - it was not the case for me, but I'll watch out for it in the future... Br, Mike
  13. Thanks, you could also work on better class internal consistency control. I know I've had LV crash on me a couple of times simply as a result of renaming a member VI, removing a data from a control or VI from a class or renaming a VI or a class. And the crashes started occurring AFTER I fixed all the reported errors that were the result of my action... Br, Mike
  14. Thanks, I know that and both methods were protected. I created a new class "A" and copied everything over hoping it will work out. It did (this time), and without LV crashing on me, too. Best regards, Mike
  15. Yes, class "A" is somehow broken, but I cannot determine how. I'd really like some recipe for fixing these type of errors that isn't "create a new class and re-implement everything from the old class". If only there was a site where we could vent our frustration over the quality of this fine piece of software... Oh, wait!
  16. I have created a new class (B) which in inherits from class A. "A" has one "dynamic dispatch" member requiring over-ride, which I have already overridden. But still, the library gives me errors: - Project Library Errors This class does not implement at least one dynamic dispatch VI.... The parent of this LabView class is private and is not accessible from this class. As far as I can determine, none of these statements are true. There are no VIs with * sign next to their name. Please help me fix my project. P.S. I have in the near past re-factored the library and removed some descendants of class A and the class name was different before. I suspect another case of internal inconsistency arising from left-over data. Is there a way to fix/clean-up my project? Mike
  17. It's a Subversion question, but anyway... As soon as you have more than one developer you need to access repository through a server. Otherwise you're just begging for repository corruption. Br, Mike
  18. Thank you. I'm creating an app that will run for extended periods of time and is using DVRs a lot. It occurred to me that if the app creates a lot of objects and creates DVRs to them without releasing them, it might become a problem. But I wanted to be sure, so thanks for the answer. In short, if I create DVRs, I better release them once they are not needed any more.... Br, Mike
  19. Hi all, I have a question: If I create an object and then a Data Value Reference to it, then I pass that reference around, but when I'm finished with it, I don't release it, but just forget about it... Does this cause a memory leak, or is the memory reclaimed? Br, Mike
  20. No, the other way around. During refactoring you change some VIs, remove some existing ones, things like that, and that results in a lot of broken VIs throughout the code. You slowly work your way through all the reported errors, fixing code to reflect the new API, and when you're done the App crashes. The only problem is locating the one VI that is "internally broken" (shows no errors or anything and uses only VI that you know are working). On a brighter note, I managed to do it this time. The trick was to instruct the LV to "send a report". This gives you the log file which you can inspect, and where it actually tells you which VI is causing the crash. I opened that VI, placed most of the code in disable structure, saved, run. Woohoo - no crash! Remove disable structure, run again and it is working. It only didn't occur to me how to locate the offensive VI before I posted. I guess I need more mileage. But it would be great if I didn't have to preform this dance and wave the dead chicken at the computer to have it working Mike
  21. The following thing happened to me a few times now, and I suspect to others as well: I have a largish LVOOP framework I'm developing, and sometimes I need to refactor some of it because of some design changes. A few times this results in LabView crashing with the dialog about failure in some cpp (exec or something) module. I know this is the result of the project being in a broken state while refactoring was going on and now some VI is "internally" broken. I'm looking for a way to reliably get out of it. For minor changes, I have simply discarded the changes and repeated the process. This usually results in a working change. Other times it also helps to commit the broken project, remove it from the hard drive and check it out again. But sometimes the changes are too big to "simply redo" and the second method doesn't work as well. So what other options do I have? Mass compile doesn't help. I know that my changes are logically correct, but LabView doesn't agree. Or even if the app contain bugs, I would like to debug it not "redo from scratch"... Br, Mike
  22. Is there a way to get the real numeric type from the Variant, so that it can correctly be cast to either Int or Double? Variant To Data silently converts for you, and I don't want that... Br, Mike
  23. I didn't think that timed sequence behaves any different to Timed loop (except that it has multiple frames). I'll investigate it, thanks.
  24. I see that setting the VI execution priority is not an option, since two instances of an object can not set the priority of the same VI to different values. Also, setting priority on a reentrant VI is not possible at all, since as soon as you open a VI reference with the option "Prepare for reentrant run" changing of priority is not possible. So, if I want to use priorities, then I need a Timed loop. So, my other question, can I somehow configure a Timed loop so that it runs as quickly as possible but still finish each iteration, even if some iterations take longer then the allocated period? I have been reading documentation and performing different tests all day, but so far it seems that this is not possible. Thanks, Mike
×
×
  • Create New...

Important Information

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