Jump to content

GOOP Development Suite v4.5 is released


Recommended Posts

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Here are the latest GDS builds http://goop.endevo.net/GDS/GDS_4.7(R1U)_2010.zip http://goop.endevo.net/GDS/GDS_4.7(R1U)_2010-64.zip http://goop.endevo.net/GDS/GDS_4.7(R1U)_2011.zip http://goop.end

We have released GOOP Developmente Suite v4.5. Most important feature are: - Support for Actor Framework. Download installers for LV 2010 up to LV2012 and read more : www.symbio.com/goop Contatct

FYI we are working on documenation that soon will be ready. Here are just some images of what's new, (an image says more than 1000 words, and I don't have time to write to much right now) ----------

Posted Images

FYI we are working on documenation that soon will be ready.

Here are just some images of what's new, (an image says more than 1000 words, and I don't have time to write to much right now)

------------------------------------------------------------------------------------------

To activate the ACTOR framework menus in GDS, you have to add the Framework library to the project.

One easy way is to right click on My Computer

post-941-0-45611500-1351628744.png

post-941-0-31365200-1351628748.png

When creating a class select to inherit from an Actor, and select a class Template

post-941-0-12362800-1351628752.png

post-941-0-58824900-1351628755.png

When creating a class method in an actor class, the “Create AF class for this actor method” will be pre-ticked.

post-941-0-41583400-1351628759_thumb.png

post-941-0-95388700-1351628763.png

If you change the connector pane of a method, you need to update the message class.

post-941-0-03304400-1351628768.png To post-941-0-21463400-1351628773.png

Then do:

post-941-0-70494000-1351628777.png

..or..

post-941-0-43003800-1351628781.png

..or..

post-941-0-23428300-1351628785.png

We’ve added some extra Actor analysis in the UML modeller.

Other functions that is added are:

For Icon editor:

TEXT OCR

Icons/glyphs support

Smaller icons

post-941-0-72188800-1351628788.png

post-941-0-98029300-1351628795_thumb.png

Cheers,

Mike

  • Like 1
Link to post
  • 2 weeks later...

Is there a way to create icons with the default options for an entire class/library? I have some legacy code with no icons that I would like to update and I would really like to use the GDS icon editor.

Link to post

That was easy, I just added an extra input

Just place the attached file in the Symbio-GDS folder:

..\LabVIEW 20xx\resource\Framework\Providers\Symbio_GDS

And make a VI like this:

post-941-0-19311500-1352937981.png

Cheers,

Mike

Thanks, this is great!

Link to post
  • 3 months later...

Looks great! I am looking forward to testing this out with some Actor Framework projects.

 

 

Hi Michael,

 

GOOP 4.5 is great, but due to my ignorance it is hard to take advantage of it.

 

I am trying to use the UML to generate all the classes needed to create a strategy pattern. From the picture attached (LAVA does not allow me to attach the UML  file) you can see what I am trying to do. However, when I generate the code, the interface does not seem to be created. There is no way to apply the Fly method in the FlyWithWings class to the MallardDuck class. Probably I am doing something wrong....could you give me a help with that?

Thanks

 

Helciopost-15546-0-27228300-1361585254_thumb.p

Link to post

You’re right the interface isn't created, and that's because LabVIEW don't support Interface natively.

Maybe a normal inheritance association will work for you.

If not, there are ways of creating interfaces.

 

I have a Design pattern, add-on you can add to a class to let it Implement an Interface class.

But in your case just normal Inheritance might work just fine.

 

Let me know how it goes.

Cheers,

Mike

Link to post
You’re right the interface isn't created, and that's because LabVIEW don't support Interface natively.

Maybe a normal inheritance association will work for you.

If not, there are ways of creating interfaces.

 

I have a Design pattern, add-on you can add to a class to let it Implement an Interface class.

But in your case just normal Inheritance might work just fine.

 

Let me know how it goes.

Cheers,

Mike

Hi Mikael

 

I believe that using the GOOP 4.5 Interface template I was able to build the strategy pattern. Please, give a look and let me know. 

The goop 4.5 provides a easy way to build an interface. I tried other methods before like the Interface Framework but I found it far too cumbersome.

I am more confident to work with OOP in Labview because I know that at least I have the interface support from Endevo GOOP (Why does't NI provide interface support????). I can live without constructors, but without interface I don't think I can.

 

thanks for the tips!

 

Helcio

Simuduck.zip

Edited by burd
Link to post

I’m sure we’ll get interface sooner or later to LabVIEW, in the mean time we have to implement it ourselves in different ways.

Here a thread and one example I use: http://lavag.org/topic/10621-interface/

 

I’ve not documented the Interface class template and how to use it, that comes with GDS.

But here is a quick instruction, this design only makes sense to Referenced Objects.

 

post-941-0-43208000-1361701841.png

 

Add Interface Methods

post-941-0-71377000-1361701867_thumb.png

 

Create a Normal class that should implement the interface

post-941-0-26061800-1361701846.png

 

Add a design pattern: Interface

post-941-0-07553600-1361701856_thumb.png

 

This is what gets created

post-941-0-00443000-1361701862.png

post-941-0-87717300-1361701871.png

 

Interface.zip

 

Cheers,

Mike

  • Like 1
Link to post
  • 1 month later...
  • 4 months later...

Hello Mikael,
I am sending the timer goop.vip file attached. In this example there is a class called timer created with the GDS,
I do not know why the attribute "Number of Timers in Memory" is not being updated the way I think it should work. I would expect that when the class is created, this attribute is updated and somehow kept in memory, so that another object of the same class type can access and modify it.

 

post-15546-0-03239800-1377641658_thumb.p

 

In the example sent, why the attribute  Number of timers in memory (in the Example 1.vi and Example 2.vi ) are always resulting in 1? I would expect this value to be the total number of timer objects created, and in this case it is certainly more than 1.

 

thanks

 

Helcio

Timer GOOP.vip

Link to post
Hello Mikael,

I am sending the timer goop.vip file attached. In this example there is a class called timer created with the GDS,

I do not know why the attribute "Number of Timers in Memory" is not being updated the way I think it should work. I would expect that when the class is created, this attribute is updated and somehow kept in memory, so that another object of the same class type can access and modify it.

 

 

In the example sent, why the attribute  Number of timers in memory (in the Example 1.vi and Example 2.vi ) are always resulting in 1? I would expect this value to be the total number of timer objects created, and in this case it is certainly more than 1.

 

thanks

 

Helcio

Remember that the Object Attribute is unique to the wire coming out of Create.

If you want to know the number of Timers created totally of one class, you have to either use Class Attributes (Add that Design Pattern to the class).

Or you have to name the object and share the same object.

 

Do you know how Class Attribute works, or should I create an example for you?

 

BTW there is a bug, if you add the Debugger/Persistent Design pattern to the class (but you are not in this case), for LV 2013.

This bug is being solved and GDS 4.7 will soon be released.

Remember that the Object Attribute is unique to the wire coming out of Create.

If you want to know the number of Timers created totally of one class, you have to either use Class Attributes (Add that Design Pattern to the class).

Or you have to name the object and share the same object.

 

Do you know how Class Attribute works, or should I create an example for you?

 

BTW there is a bug, if you add the Debugger/Persistent Design pattern to the class (but you are not in this case), for LV 2013.

This bug is being solved and GDS 4.7 will soon be released.

Oops, I saw another thing; you are mixing by value and by reference in this class.

You probably would like to go with By Reference in a class like this.

Be sure you don’t modify the Class Private Data with the attributes you have done, move them into the file: ObjectAttributes.ctl, and use the IPE-Structure to modify them.

Link to post

Hello Mikael,

 

I redone the timer based on the advices you gave me: Everything is now by ref, and the class atributes design pattern was apllied.

Now the attribute is updated when the opject is created like this:

 

post-15546-0-69618600-1377703112_thumb.p

 

Now it works,and  the class attributes design pattern woks like magic. Now I have similar functionality to static variables in java (I think). If you can check and see if everything is really fine would be nice.

 

Follow attached the package with the vis.

Timer GOOP 2.vip

Thank you for the help!

 

Helcio

Edited by burd
Link to post

Hi Helcio

You are getting closer and closer ;-)

Everything looks good, but when you like to update the Number Of Timers that you store in the class attribute.

Make sure you do that inside the same IPE structure.
So do it something like this.

post-941-0-04813600-1377836517.png

 

And also, you don't need (and shouldn't), wire the Class Ref input to the Create method.

This input is only used by the framework when you inherit a base class.

Try to create an extended Timer and inherit it from your Timer class

Edited by MikaelH
Link to post
Hi Helcio

You are getting closer and closer ;-)

Everything looks good, but when you like to update the Number Of Timers that you store in the class attribute.

Make sure you do that inside the same IPE structure.

So do it something like this.

attachicon.gifIPE.png

 

And also, you don't need (and shouldn't), wire the Class Ref input to the Create method.

This input is only used by the framework when you inherit a base class.

Try to create an extended Timer and inherit it from your Timer class

Hello Mikael,

 

I have modified the example as you suggested:

 

post-15546-0-98150700-1377889058_thumb.p

 

post-15546-0-66541300-1377889212_thumb.p

 

and also created 2 extended classes to observe how the Create Class Method behaves for an extended object:

 

And in example 3 are the extended classes at work:

 

post-15546-0-13595500-1377888675_thumb.p

 

follow attached the files:

 

hb_lib_goop_timer-1.0.0.4.vip

 

Please, let me know if those procedures are fine,

 

thanks again for your help!

 

Helcio

post-15546-0-64114600-1377888628_thumb.p

Link to post
  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By agilentvee
      hi all
      i use GOOP to design object 
      1.i download GOOP by VIPM refer to attachement 1
      2.i create two simple object ,and set relationship refer to attachement 2
      3.it show error message refer to attachement 3
       
      my question :how to solve the issue?



    • By Leif
      My test group has decided to start using OOP (beyond LVOOP I hope).
      The question is should we use an OOP tool and which one: GOOP/GDS or G#?
       
      I'm quite biased as I have used GOOP for a number of years, but I'm trying make fair investigation. I also realize that the StarUML plug-in in G# could be very useful.
       
      Has anyone made or seen a comparison between GOOP and G#?
      Or do you have an own opinion?
       
      (Searching for the text "G#" isn't that easy...)
    • By df_rob
      Hi,
       
      Recently I have been trying to develop a set of classes for data aquisition (as the encapsulation makes other tasks easier) however I keep running into several issues (described below). I was wondering what you guys did for your OO DAQ systems. I've found a few presentations lying around on the net but their implementations do not seem to work when using DAQmx based measurements.
       
      I am trying to measure the inputs from two seperate instruments: (1) Torque Sensor (2) Encoder. Sometimes these instruments might  be using a DAQmx analog input and other times a .DLL.
       
      My original thought was that I would have a parent class called Measurement with several functions (Initalize, Configure, Read Data, Close) that would be over-riden by its children Analog Input (DAQmx) and Digital Input (Seperate .DLL). There then would be (for example) an Analog Input object created called position and a digital Input object called torque. This seemed to look nice on paper, however it didnt work as my DAQs tasks need to be combined (you cant have several tasks on a single device.)
       
      As this didnt work, I approached it with a different setup. This time I had a parent class called Instrument that has two children Torque Sensor and Encoder. Again, things get tricky, as sometimes I might want to use an analog DAQmx task for both the Torque Sensor and Encoder. 
       
      What is your typical OOP class structure like for DAQ?
       
      Thanks!
    • By Morgan McLeod
      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.
    • By MikaelH
      We have released GOOP Development Suite 4.7
       
      The main things are: 
      [*] LabVIEW 2013 support [*]The creation of Property Node methods. [*]UML Modeller fixes for analysing Actor Framework classes

      Download it from www.symbio.com/goop
      ...or here:
      GDS 4.7 LV2010
      GDS 4.7 LV2010-64
      GDS 4.7 LV2011
      GDS 4.7 LV2011-64
      GDS 4.7 LV2012
      GDS 4.7 LV2012-64
      GDS 4.7 LV2013
      GDS 4.7 LV2013-64
       
      And here are some videos:
      GDS(4.5) Features Video
      Other Videos
       
      Contatct goop@symbio.com for questions.

      Thanks,
      Lars Persson and Mikael Holmström
      Symbio Sweden  



×
×
  • Create New...

Important Information

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