Jump to content

Jeffrey Habets

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Jeffrey Habets

  1. I've been doing OO development in LV for several years now with Endevo's GOOP2. I was very excited when I first heard of LVOOP coming to LV and toyed with it as soon as I got my hands on it. But it never went further than that.. Reasons for me to not use them where: Lack of proper tooling, I was actually used to saving time doing OO, not spending more.. :-) Problems with build exe's, this is a HUGE problem since most of my customers require exe's. I was hoping this would be fixed in 8.5 but Jaegen's reply didn't sound to hopefull. I need by-ref, I simply can't implement my oo-designs with just by-value classes. I don't do an awfull lot of LVRT projects, but if I do I would like to use OO there too. Now most of these issues are taken care of by Endevo's GDS and one of the by-ref wrapper frameworks it supports, so it is highly likely I wil be using LV-classes next year.. :thumbup: But this all depends on the behaviour of classes in executables.. I hope to have time to do some internall testing so I can use it with confidence in a customer project.
  2. QUOTE(Michael_Aivaliotis @ Jul 24 2007, 07:41 AM) I guess yen ment Scott Rogers' (closed door) session.. It's at the same time you are presenting.
  3. In the graph properties, you should set the Cursor to snap to a plot instead of free drag mode. http://forums.lavag.org/index.php?act=attach&type=post&id=6347
  4. QUOTE(John Rouse @ Jun 22 2007, 06:48 PM) You can name your objects.. The private "New" method that is used in the Create method to construct the object has inputs Create method and Object name. Set the latter to some unique name for your object and set Create method to Create or lookup existing. This way a first call to the create method will create the object, but every subsequent call will return a reference to the existing object.
  5. QUOTE(Tomi Maila @ Apr 19 2007, 04:04 PM) I couldn't live without "I couldn't live without..."! :laugh:
  6. Ah, thanks for the tip! Grabbing it right now.. Thunderbird rocks.. :thumbup:
  7. It can be done... With scripting.. The attached example return the function prototype string you want. This eample just assumes a VI with only one call-lib node on the diagram.. I created this in 8.2 and backsaved to 8.0, so I hope this works in 8.0. Good luck! http://forums.lavag.org/index.php?act=attach&type=post&id=5401
  8. I have almost the same VI in my lib, I guess with very huge arrays of control refs (not very likely, I assume) this could be a bit faster since there's no fork on the array. The search loop is not any different.. But do you use this VI inside loops? I guess you could just get the ref. once outside of a loop, it won't change during program execution.. http://forums.lavag.org/index.php?act=attach&type=post&id=5387
  9. Yes, this is possible.. Just make sure that you have an ini-file with the same name as your application's executable and make sure you enable tcp/ip access to your app. You can copy these settings from your labview.ini. I think it's something like: server.tcp.enabled=True server.tcp.access=+* to enable unrestricted access to your app.
  10. Ah, I actually was looking in the right direction for this.. I tried construct like Mike|NestedProp and Mike->NestedProp, but that didn't work. Obviously I didn't try the so obvious :. :thumbdown: Anyway, good work! :thumbup:
  11. Let me shed some light.. Normally when you save your VI containing the XControl (at edit time) the State data is saved with the VI. I.e. the State data is persistent as with native controls. Now let's say you have elements in your State data that you don't want to be persistant for some reason, you could implement the Convert State For Save Ability and use this to change what ever data needs to be saved with the control. Basically you could save whatever you want by wiring the data to Display State To Save. Now, when you use this, you need to implement code in the Init ability to read and convert back the Previous State to useable data for your XControl again.
  12. I think you can simply add an extra needle on your gauge and use that as your marker. Popup on the control and select add needle. The datatype of your indicator will change to a cluster so you'll have to do some rewiring in the BD, but that shouldn't be a problem.
  13. I've used DIA in the past and still do sometimes, but mainly I use Endevo's UML modeller now. So I'll list them both here. I use UML mainly to model the class diagrams. If classes designed by me are to be implemented by others I might also use sequence diagrams to describe the interaction between classes. One other tool I've been wanting to have a go with is ArgoUML (http://argouml.tigris.org/), which is also opensource. No experiences with ArgoUML yet, so I won't list it here. Name: DIA Website: http://www.gnome.org/projects/dia/ License: Open source, GPL Description: From the DIA site: "Dia is inspired by the commercial Windows program 'Visio', though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG to draw the shape." How Long: 4 years How Often: Some projects involving GOOP How Many: Just me Pros: It's open source and free to use. Easy to use, short learning curve. The diagrams are stored in XML! Cons: For people that are not used to Gnome or programs written with Gtk toolkit the userinterface might take some getting used to. Notes: There are code generation modules for DIA for several textual programming languages, but not for LabVIEW. This could be done though, since the diagrams are saved as XML data and are not so difficult to parse. I once started work on a tool to read the diagram data and create GOOP classes from it, but stopped working on it when Endevo introduced their UML modeller. Name: UML Modeller Website: http://www.endevo.se/content/view/10/13/lang,en/ License: Commercial, I think it is about $500.00, but you'll also need their GOOP Inheritance toolkit if you want the benefit of code-generation. Description: The modeller is written in LabVIEW and thus integrates seamlessly with LabVIEW. It runs from the LabVIEW dev. environment and uses the Endevo GOOP Wizard for code generation from classdiagrams and reverse engineering to update your UML from the LV GOOP classes. I think the next version will also support native LabVIEW classes. Other UML diagrams like e.g. Use case, State diagram, sequence diagram, etc. are also supported. How Long: 3-4 years How Often: Most projects involving GOOP (Allmost all my project involve GOOP..) How Many: Just me Pros: Very easy to use, short learning curve. Integration in LabVIEW. Code generation and reverse engineering!! Developers take good note of user input to improve the tool. Cons: Not cheap, together with the Inheritance toolkit it's about $1700.00 Notes: Despite the costs I still think the tools are worth it since the code generation and reverse engineering is quite a time ( = money) saver..
  14. I'm not exactly sure what you're asking, but ClassID 5 is the Text class (GObject->Decoration->Text). Do you need the private parts of this class?
  15. This should be possible. I'm looking into it at the moment, so lets see what comes out.
  16. You can grab the max value line of the scale with your mouse and pull it towards the min value. You get a gauge that does 360deg this way. You can also grab the min value to rotate the entire scale. This could be usefull if you want the 0/360 value at the top instead of at the bottom of the gauge.
  17. This was for me also the first feature I searched for when the XControl was introduced. Saddly it appeared not to be possible. It would indeed be nice to have this feature in the future for at least the XControls that have only one native control embedded. For now, as a kind of workaround I just create a read property for the embedded native control's reference, which at least gives some kind of flexibility without having to re-implement common properties/methods.
  18. Michael, You can set the context help for properties and methods in an XControl from the XControl properties dialog.
  19. First to answer your question, the #ifdef __cplusplus } #endif is the closing bracket for the Extern "C" { part.. The reason why your dll call didn't work is that your return type is char and in the LV call library node you have it configured as pointer to string. The VI in the attached zip will work with your dll, I changed the return type of your function to U8. Also look at the comments I added to your .c file. There are faults in there too. (In LV you can compare strings that way, not in C. ) Download File:post-906-1166610996.zip
  20. Stephen, you're the king.. :worship: I don't know why I never noticed this feature before.. I just checked and it is possible since at least version 7.1. So we now only need to put some refs in the control palettes to make them easier accessible.. Thanks!
  21. The problem with these kind of refnums (queue, notifier, event, etc.) is that they also hold type information, so the refnum type changes as the element datatype changes. So there's not really one refnum-type for a notifier or a queue. What would be nice to have is if NI gave us 'empty' refnum controls for queues, notifiers, etc. in which we then could drop whatever control we want to be the datatype (analogous to what now is possible with the datalog refnum) for that specific object. This would certainly make life easier since now I have to keep two seperate typedefs (one for the data type and one for the refnum type) for every queue or user event I use in my apps. I'd like to see these two connected somehow.
  22. Thanks Ton, This is a cool probe... I set the window to be able to resize and the treecontrol to size with it so I can fit more data on my screen.
  23. This is probably caused by the name mangling of your c++ compiler, you should export your code as a C function, e.g. : #ifdef __cplusplus extern "C" { #endifvoid add(long x, long *y){*y=x+*y;}#ifdef __cplusplus}#endif
  24. Nice, we learn something new everyday.. :thumbup: If both scrollbars are gone and you want them back, go to the VI properties -> Windows appearance -> Customize. While checking the pane properties I also noted that we can now select a picture to provide a background texture. Just to bad the 3D controls don't have an option to take over the background texture (e.i. blend in..).
  25. Hehe, my tactic seems to work.. Ofcourse, always looking for better solutions... But when in need for such a thing and no time to develop a better one, you now all know where to find it..
  • Create New...

Important Information

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