-
Posts
4,914 -
Joined
-
Days Won
301
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by ShaunR
-
*sigh*
-
Have you tried using the JSON API? That allows nested clusters of arbitrary types, unlike the native LabVIEW one.
-
LabVIEW 2014 Project Close not unloading project
ShaunR replied to Ryan Podsim's topic in Development Environment (IDE)
I just created a new empty project. Created some some untitled VIs then closed the project (button top right corner) and it seemed fine. It asked me to save the VIs and then closed all the open VI FPs and diagrams in the project. Are you seeing this behaviour on an existing project that was converted to 2014? -
Refactoring : Improving the design of existing code by Martin Fowler
ShaunR replied to shoneill's topic in LabVIEW General
Thats where you start. Modularise. Compartmentalise and simplify. In tLabVIEW. It's usually a bottom up, iterative process and diamonds are a programmers best friend. Oh. And refactoring doesn't necessarily mean re-architecting. -
AOP architecture issues and options
ShaunR replied to John Lokanis's topic in Application Design & Architecture
Agreed. It is a language artifact but the escape isn't abstraction it's modularisation. Abstraction just makes the fat pipes fatter. Again agreed. If you break the actors into identifiable groups to form APIs (and thus limit their inter-dependencies), you can then use AF for internal API messaging but strings for inter-API messaging. This also helps you bridge the network gap as you essentially use use AOP for modules and string based SOP for process. I remember a discussion with Daklu where we discussed this with his Lapdog stuff. -
Really? I find it all rather depressing. Ethereum? Don't know much about it.
-
For the same reason any sane person will only update LabVIEW when SP1 is released - project risk.
-
This is probably because it was built with the 2014 VI package manager. You have to install the VI Package Manager 2014 to install packages built with 2014.
-
MaidSafe is an Interesting and innovative open source development in peer to peer distributed storage and network data access. I know the thread title is a big claim, but this technology has the potential to be paradigm shifting and it only requires people to use it. (I'm just trying to figure out how to install it on my NAS ) I laugh at your DropBox. .
-
Create a pull right menu for LVOOP Classes property nodes
ShaunR replied to Reds27's topic in Object-Oriented Programming
This also works for the drop down menu of polymorphic VIs.- 2 replies
-
- 1
-
-
- property node
- pull right
-
(and 2 more)
Tagged with:
-
How to combine NI Vision and Raspberry Pi Camera?
ShaunR replied to Thang Nguyen's topic in LabVIEW Community Edition
Can't edit it (not sure what happened) but will try again Raspberry Pi IP Camera It's really a question for Raspberry Pi forums though. -
How to combine NI Vision and Raspberry Pi Camera?
ShaunR replied to Thang Nguyen's topic in LabVIEW Community Edition
NI software doesn't run on Raspberry Pi but it's fairly easy to set up an IP camera with the motion service. -
There is an addon toolkit for SSH.
-
It's an interesting solution to a problem I have never seen. Whilst I would agree it's better than introducing arbitrary bugs, I just wonder how effective it will be when SCC is used as you may end up with it just as big a pain as the merge tool and phantom recompiles.
-
I assume those statements were under the beta forums? I was just saying that trivialising the support for 64 bit was a bit harsh just because it is of no use to you in windows where we have had it for yonks. If you have ever worked with large datasets (grandma egg sucking I expect), you will be aware of the importance of 64 bit and now NI have spent the considerable energy to port to the other 64 bit platforms which were the withered limbs of the LabVIEW platform support. Personally, nothing, IDE or feature-wise, has convinced me of moving from 2009 in all the versions let alone 2014 so It's no change there for me. Even though I produce tools in later versions, they are still developed in 2009 (64 bit, at that) and just packaged in later versions due to 3rd party support requirements. I think, however, a huge amount of kudos should go to NI for expanding the 64 bit platforms and making LV a truly x-platform solution even if the best thing to crow about under windows is a new icon.
-
I think that's a bit harsh. Mac and Linux 64 bit support is probably the biggest change in LV since 2009. I would agree with you (and have often stated similar) with releases from 2009-2013, and might even go so far as to say 2009-2013 it has only really been cosmetic changes but 64 bit platform support across the board is a phenomenal step forward that would have required a huge investment in time and skills.
-
-
I think you read the words, but didn't understand the content. My writing style can seem adversarial sometimes but it is usually with the genuine intent to help or, in this case, stop you going off on a unicorn hunt.The point I'm trying to get across is you are chasing a unicorn and only because the solution must be LV classes. If you drop that requirement, it's just an ordinary horse and we have loads of them. A better heading would have been. "How do I reconstitute a LV object from a string sent over a network like I can in Python, Javascript or PHP". That would have got you the unanimous response of "You can't!" and is the reason why your "decoupling" search will ultimately be a dead end when using classes. Anyway. I said my bit. I've clarified and re-clarified and so its time for me to shut up with a final apology for coming across as "pushy".
-
Not true. No assumptions, just pure string messages and an example of how it can work based on your own description (DB, XML, Queues, Events, Classes - it doesn't matter because it is decoupled). And I've already told you how to decouple the classes - serialise to strings - but you don't like that answer When you insist on only using a hammer; everything looks like a nail so don't jump down my throat because a screw bends when you try to hammer it into concrete and I explain why and easier alternatives using a screwdriver.
-
He'd be having kittens with this then. Call_Back.zip
-
Hmmm. So let me get this right. You have taken an implementation agnostic storage mechanism (a DB), queried it and stuffed it into an implementation and language specific set of classes which you then wish to transmit to another set of language and implementation specific classes that may or may not be the same and now want to break the enforced cohesion due to using the aforesaid classes?. Why have you not just sent the SQL queries instead of faffing around with LV classes (a bit bit like this) and leave the client to figure out how it wants to display it (basically just as string indicators-use the DB to strip type) If you have a DB in the mix, then you can always craft SQL queries for the data and prepend instructions for functional operations. If you want to wrap all that formatting into message classes; fine. Like I said, encoding is tedious, but for decoding, the fact you cannot dynamically instantiate a class in LabVIEW and strict typing will ensure you cannot write a generic decoder (which is what AQs discombobulator thingy attempts to address). Using message classes for this type of thing is exactly what I was saying about straight jacketing and not using a class messaging system will be quicker smaller and easier to maintain and extend. In fact, in this instance, as you are using a DB you will find that you will be able to extend it sometimes without writing any LV code - just changing and expanding the string messages via a file or via the client as the server acts just as a message parser.
-
Use strings (the ultimate variant) and you won't have any problems either crossing the network boundary or language implementation. Don't straight jacket yourself with LabVIEW classes which are tedious for encoding and completely rubbish for decoding.
-
Moving from Action Engines to Classes
ShaunR replied to abrink's topic in Application Design & Architecture
Sure. Readability is good, IF there is no penalty. Unfortunately, this is the reason why LVOOP projects take hours to compile. But it doesn't necessarily improve readability. Most of the time it's just boiler-plate code with a trivial difference multiplied by the number of children. It is the equivalent in other languages of having a file for every function and you'd be shot if you did that.- 8 replies
-
- 1
-
-
- action engine
- application design
-
(and 1 more)
Tagged with:
-
Moving from Action Engines to Classes
ShaunR replied to abrink's topic in Application Design & Architecture
You don't need to duplicate the code. Just pass in the address to talk to Keithley A and Keithley B or, if it is already a "process", make it a Clone VI and launch an instance with the appropriate address.. If you switch to Classes, the methods will still be all very similar, only you will be forced to make each one atomic. Classes are very similar to polymorphic VIs in how they are constructed so if you have a VI with a couple of operations in a case statement (Set VISA/Get VISA, say) then you will have to make each one a separate VI, not only for that Class, but any overrides too. This is why classes bloat code exponentially and there has to be very good reasons (IMO) to consider them in the first place let alone if you already have a very adequate working system..- 8 replies
-
- 1
-
-
- action engine
- application design
-
(and 1 more)
Tagged with:
-
How do you organize your code reuse repository
ShaunR replied to doradorachan's topic in LabVIEW General
Installers are probably the worst option for toolkits/reusable code within a company. Sure if you are going to distribute to third parties it warrants the extra effort, but internally it just adds more overhead for pretty much everything (coding, testing and documentation) as well as causing all sorts of problems with version control. It has few, if any, benefits. A far superior solution (and generally free) is to use your favourite flavour of source code control for distribution from a central server. It does come with some caveats, but it is infinitely better and more flexible than installers.