-
Posts
835 -
Joined
-
Last visited
-
Days Won
49
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by MikaelH
-
How to get your team members aster LV developers
MikaelH replied to MikaelH's topic in Development Environment (IDE)
If anybody have time to update it and make it better and more fun/addictive to use, please feel free to share. I thought about adding it in the Project Secondary provider start-up VI, so the users have to get X of Y correct QD placements within z seconds, before it lets then continue using LabVIEW. Maybe depending on their score, they'll need to do it more often So suddenly when they do a LabVIEW2012-folder update, they get this function installed automatically. -
How to get your team members aster LV developers
MikaelH replied to MikaelH's topic in Development Environment (IDE)
Yes, I do have a repository for every LV version :-) Also every time I release/build an exectutable, I tag both the Project Folder (e.g. MyTestSystem-PN:123546-Rev:C12-2012-05-03) and also my LabVIEW repository (LabVIEW2012-2012-05-03-MyTestSystem-PN:123546-Rev:C12), that way I can alwasy get back to the environment I had when I did the build. In case you don't have an internet connection, I would go with a VIPM package. For the LabVIEW.ini file, we only update shortcuts to use a company defined shourcut list, but the VI we run to update the LabVIEW.ini file also updates all your prefered settings. So the user selects his name in a drop down list and then it will configure all his LabVEIW.ini files to his taste. Yes I did mean all, this is how my LV folder looks like. -
How to get your team members aster LV developers
MikaelH replied to MikaelH's topic in Development Environment (IDE)
I use SVN :-) It's so easy. We have a shared LabVIEW 2012 repository, that all the companies LV computer check out into their LV 2012 folder. TortortoiseSVN will of course complain that there are files in the folder, but that's fine. In this repository I've not added all files under the LabVIEW folder, but most stuff under user.lib (where we have the companies common VIs, and of course OpenG) and instr.lib (where we all the shared instrument drivers, more than 100 lvclasses) But I've also checked in all RCF files needed, the QD plugins and of course GOOP Development Suite. To update the LabVIEW.ini file with QD shortcuts, we have a VI in the repository that updates the shortcut so everyone gets the same. I found this way easier than vipm, to make sure all development system uses the right sets of VIs. I suggest you try this, it's so easy, and has been working really good. //Mike -
How to get your team members aster LV developers
MikaelH replied to MikaelH's topic in Development Environment (IDE)
My job is to make sure my team works faster and more efficient, and also have more fun, I just need to add some high scores as well then we can have a competition :-) -
We all know that Quick Drop is a good tool to make you faster, and in combination with shortcuts, you’ll be even faster. To get all LV developer in my team to use the same shortcuts, I push the same shortcuts to everyone, but how do you remember all the different shortcuts? To solve that I made a small Quick Drop Practice application, feel free to play and modify it so it suites you. And if you have time to improve it, upload your version :-) How it works: It reads your current QD BD Shortcuts, and adds them to an array. It then opens an empty VI BD and asks you to drop a VI (e.g. Build Array), on the BD. If you haven’t figured out the shortcut within 5 seconds, it shows the shortcut so you can memorize it. After it find the right VI on the BD, it deletes it and moves to the next shortcut. Have fun. QD-Practice.vi
-
This crashes LabVIEW on my computer
MikaelH replied to MikaelH's topic in Development Environment (IDE)
Thanks, I have both 32 and 64 bit versions for 2013b2 and I can test it this week. -
Locked Libraries and VIs that do not close
MikaelH replied to John Lokanis's topic in Development Environment (IDE)
I tried it the two projects and as soon as I run the Server Example all classes becomes locked as expected in that projects I then Run the Client-Server Examples and all classes gets locked in that Project just like it should. I did press some buttons on the client, and then closed the Client-Server VI, and all classes got unlocked. Then I close the Server Example VI and all classes in that project also got unlocked. So I can’t reproduce your problem, sorry. -
Locked Libraries and VIs that do not close
MikaelH replied to John Lokanis's topic in Development Environment (IDE)
It could be that a reference has been opened in Project Provider Application Instance. Are you using and Project Providers, such as G#, GDS? -
For Loop Pass Through Utility *Cross Post Link*
MikaelH replied to Norm Kirchner's topic in VI Scripting
I'll definitley put this is a Q-Drop shutcut-VI, just have to find an avaiable Ctrl-<key> combination. First version Ctrl-F Norms version (slightly modified) Ctrl-Shift-F AQ's Version For Loop pass Through-SwapTerminals.zip -
GOOP Development Suite v4.5 is released
MikaelH replied to spdavids's topic in Object-Oriented Programming
www.symbio.com/goop should be restored now -
GOOP Development Suite v4.5 is released
MikaelH replied to spdavids's topic in Object-Oriented Programming
Try the links to the right of this URL: http://www.symbio.com/services/qa-testing#goop Symbio has moved around and cleaned up there web pages, but not got it working properly yet. I've contacted them. //Mike -
I have a very simple written an example app taken from the Head First's design Pattern book. Look at the Command patterns here: https://decibel.ni.com/content/message/35117#35117 But basically you have to (not maybe have to, but if you want it scalable and reusable) use the Command Design pattern, (and together with the memento pattern to get a very scalable solution). This is just one link that descripbes it. http://www.codeproject.com/Articles/33384/Multilevel-Undo-and-Redo-Implementation-in-C-Part Cheers, Mike
-
You should not need to call the base ancestor's implementation, if there is a sub class you inherit from that overrides a base class method you should call that. If you don't think that is right, you should not inherit from the sub class but instead inherit from the base class.
-
This way every DUT owns/has a Message Class in its attribute. A message class type (e.g. Type A) could be used by DUT Type A,B and C, and Message Type B, could be shared between DUT Type D,E,F Look at the example to see how I implemented it. I don't know your requirements, but this is one design I could think of.
-
-
GOOP Development Suite v4.5 is released
MikaelH replied to spdavids's topic in Object-Oriented Programming
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. Add Interface Methods Create a Normal class that should implement the interface Add a design pattern: Interface This is what gets created Interface.zip Cheers, Mike -
GOOP Development Suite v4.5 is released
MikaelH replied to spdavids's topic in Object-Oriented Programming
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 -
Get connector pane 32x32 image - looking for better idea
MikaelH replied to Steen Schmidt's topic in LabVIEW General
It's easy to do this, just using these property nodes. I use it to show the new connector layout I'll suggest. -
controlling and syncing multiple statemachines
MikaelH replied to dbrittain's topic in Application Design & Architecture
Are the 3 VIs running on 3 different computers and you like to synchronize them? I would use one master VI/state machine, which sends simple requests to the three server-VIs. The Server VIs would create a TCP-listener and wait for commands and execute them.- 7 replies
-
- triggers
- statemachine
-
(and 1 more)
Tagged with:
-
I did ask them, but of course they wouldn't tell me, but it would be good to know in what sections I missed out in. Maybe something like this: Software Development Process: 3/5 Testing techniques: 1/3 OO programming 5/5 (of course) X-Controls 2/3 BTW, I've not asked my company to send me to the CLA Summit yet, what do you think I should say to convince them to send me there?
-
To make a parent class, or not to?
MikaelH replied to GregFreeman's topic in Object-Oriented Programming
The beauty of using good OO design in your application is the ease of modifying the software, so I almost always use the extreme programming approach. And of course with a help of some tools It’s easy to modify the design. ...or... Result: -
My rule is that if the data in the attribute is huge, I use Reference based objects, just like NI does for the NI-IMAQ VIs. It helps the user not to accidentally use too much memory. Or sometime I use a GDS design pattern “Add reference variable to class” to a normal ByValue class. ..and sometimes I even spell ...Aray... with 2 Rs
-
Why not. This will help you access the same object even if you branch the HAL Wire. Also it helps you locking the resource. Memory Wise, I think it could be an advantage, if the Aggregated Object Contains Huge amount of data. By replacing that with a 4byte DVR reference value, the HAL-Wire don't become so heavy. So e.g. if you branch the Hal-wire, or when you go into many SubVIs, those SubVIs has to allocate memory for this Huge amount of data. But should you ever branch a ByValue Wire? If you want to run things in parallel and accessing one object, you have to go with the Actor approach, or...just use ObjectByReference. //Mike