Jump to content

Morgan McLeod

Members
  • Posts

    3
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Charlottesville, VA

LabVIEW Information

  • Version
    LabVIEW 2013
  • Since
    2005

Recent Profile Visitors

2,076 profile views

Morgan McLeod's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. I haven't run across that yet but I will keep watch for it. So far I'm making my DVR locking sections as small as possible. I'm thinking in some timing critical members I will have to hand-optimize by caching everything I need so I don't need to read the attributes at all. Thankfully there are not very many of those. I may not have my terminology all up to standard. But GOOP4 is indeed implemented in terms of native LVOOP + Data Value References. Oh Wow. Like C++ or Python to LabVIEW?
  2. A quick follow-up for now: The GOOP2 to GOOP3 conversion tool left a few things in an incorrect state. All things I could correct most likely. It failed to notice one parent-child relationship in the class hierarchy. Also some of the NEW methods were not executable but I didn’t dig in to figure out exactly why. However, the software framework I am porting relied upon some other tricky LabVIEW techniques, some of which also won’t port cleanly. So I’m porting it using a “clean room†approach making new classes in GOOP4 and repackaging the existing code. Also making some new design decisions to try to encapsulate the tricky bits better. Specifically, the framework used Call By Reference pretty extensively. The VIs which were called in this way were GOOP2 class members. This doesn’t seem possible in LV OOP because you must use a strict type definition when loading and calling the VI. I tried doing the same thing where the type def. was to the base class method but actually trying to load and run a derived-class member. Unsurprisingly this did not work. Instead I’m channeling all those calls through a dispatcher method declared in the base class and implemented in the derived. It also makes heavy use of DataSockets for inter-module communication. I’m going to try to retain that capability but encapsulate it behind a Publisher/Subscriber interface so that I can try other techniques without affecting the rest of the library. Once I get the framework ported, it’s going to be a ton of work porting the actual applications, but it should be pretty cookbook and maybe I can partially automate it. Deadline's still a month away! I will show my work once I get further along. This will look very familiar to at least one member here. (Hi Mike!)
  3. I started a topic on the NI GOOP forums today about running out of memory when running the GOOP2 to GOOP3 conversion tool. I pared back my ambitions and got it to finish. However my code is all quite broken so I must not be taking the right approach. Background: We have been developing electronic test systems for radio astronomy receivers and their sub-assemblies since 2005. We started on LabVIEW 7.1 and settled on 8.6.1 with Endevo GOOP 3.0.5 as the production development environment. We did not want to change platforms until the project was through its construction phase. Now it is in operations/maintenance phase and we must, for obvious reasons, move to Windows 7 and therefore a more modern LabVIEW environment. We chose LV2013 as a recent standard to build on. I have 20-30 classes which are shared infrastructure for the different test systems, plus dozens more which implement specific devices or measurement sequences. So I am loathe to rewrite all of this from first principles. Does anyone here have experience with upgrading this scale of project to the latest / best tools to run under LV2013? What is the path of least resistance to get this done as painlessly as possible? What are the gotchas I should look out for along the way? Are there good resources I may have overlooked to help me understand the underlying architectural changes? I've been reading everythign I can find on this forum and the NI GOOP forum for the last few days but I'm still not clear what the implications for my code are with regard to, for example, GOOP2 object references becoming their GOOP3 equivalent. I can add specific examples of what I've found broken if that will help. Thanks so much for reading.
×
×
  • Create New...

Important Information

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