I have been looking into labview OOP from many sources and couldn't find anything satisfying. Your series has been excellent and exactly what I have been looking for. I'm looking forward to the actor framework playlist. Thank you very much, this is greatly appreciated. Thank you
These Videos are really good alternative to Tutorials from NI Website. Easier to understand and a lot of valuable knowledges. I am really looking forward to more videos about OOP from you!
Many thanks for this series! It has been immensely helpful in my journey to get to know the basics and develop further skill from there. Thank you! Keep up the great work.
I finally understand what "abstract" means... It seemed like a complex and mystical word before. IDK why because it was explained to be several times clearly lol. I guess I never reduced it to the simplicity of abstract = the one who is the source of inheritance. Maybe I'm just comfortable with those scary words now! Anyways, should objects still be used if you don't plan on them being used for abstraction or inheritance?
Hey Colin, so OOP shouldn't always be used where it's not appropriate... That being said, my style of programming means I perhaps use OOP much more than most people think is necessary, however, I know what I'm doing and I'm successful at it. I would urge you to form a comprehensive understanding on OOP (from my channel, and other channels as well in other programming languages), that way you can make more informed design choices. "Once you know the rules you're allowed to break them"
Hi Tom,Thanks for the video. We have doubts on how different kind of hardware using same vis,I mean dynamic dispatching with much more explanation.Please plan to upload a video though it may be short.
Hi Mahesh, In this video series, I showed using dynamic dispatch with simulation HW and physical HW. I would recommend downloading the code from my GitHub page (link in the description) and try creating new child classes and expand the hardware capability. Let me know how you get on, and comment a reply to this if you get any issues (or find me on LinkedIn www.linkedin.com/in/thomasmcquillan/). OOP (Dynamic dispatch overrides) are heavily used in LabVIEW (and lots of other OO languages) for hardware abstraction layers (HAL), so rest assured this is a well-recognized technique in programming. :)
@Miguel, a video on subpanels is a great shout. Because AF is so modular, my user interfaces are often made up of many subpanels to show the status of multiple actors at once. We can then expand this to show how to dynamically change the panel being shown. I'll add this to the list. Regarding plugins, as an actor is a class, the way you dynamically load an actor is the same as loading a class using the 'Get LV Class Default Value.vi'. - I could do a video on that too.
Glad you liked it :) I'll add that to my list. But in short, Accessor VIs are a wrapper for bundling and unbundling the object. These VIs are very helpful if a child class needs to use the private data of a parent class. With this in mind, Accessor VIs should always have a protected access scope (the scope with the yellow key)
Thank you for videos but still I cannot believe that OOP can make me faster on programming. I already have polymorphic VIs and proper subVIs. I have never need to use classes before but I want to make myself believe I need to use it OOP for future but this kind of easy examples makes me think that we could do this without classes in 1-2 min.
There is an up front cost (in time) to design and implement your classes. However, classes have many benefits: as applications change, classes allow you to append additional requirements to your code without changing already tested and working code. In-fact, if you design your code well, you can append additional features and functions just by making a class-plugin architecture without having to change a single block diagram in your application. I would like to challenge you to design your next [suitable] application using OOP and implement it, the more you use/practice OOP the more you will understand why OOP is a fundamental design practice. If you still don't like OOP after that, then that's okay - it's not for everyone.
I have been looking into labview OOP from many sources and couldn't find anything satisfying. Your series has been excellent and exactly what I have been looking for. I'm looking forward to the actor framework playlist. Thank you very much, this is greatly appreciated.
Thank you
You explain OOP so simple. Truly awesome. The whole series.
These Videos are really good alternative to Tutorials from NI Website. Easier to understand and a lot of valuable knowledges. I am really looking forward to more videos about OOP from you!
A great series to learn LabVIEW OOP. Please upload more detailed videos for beginners.
Many thanks for this series! It has been immensely helpful in my journey to get to know the basics and develop further skill from there. Thank you! Keep up the great work.
Very helpful series! Thanks for sharing :)
Thank you! Very helpful for us beginner in OOP.
I finally understand what "abstract" means... It seemed like a complex and mystical word before. IDK why because it was explained to be several times clearly lol. I guess I never reduced it to the simplicity of abstract = the one who is the source of inheritance. Maybe I'm just comfortable with those scary words now!
Anyways, should objects still be used if you don't plan on them being used for abstraction or inheritance?
Hey Colin, so OOP shouldn't always be used where it's not appropriate... That being said, my style of programming means I perhaps use OOP much more than most people think is necessary, however, I know what I'm doing and I'm successful at it.
I would urge you to form a comprehensive understanding on OOP (from my channel, and other channels as well in other programming languages), that way you can make more informed design choices.
"Once you know the rules you're allowed to break them"
Hi Tom,Thanks for the video. We have doubts on how different kind of hardware using same vis,I mean dynamic dispatching with much more explanation.Please plan to upload a video though it may be short.
Hi Mahesh,
In this video series, I showed using dynamic dispatch with simulation HW and physical HW. I would recommend downloading the code from my GitHub page (link in the description) and try creating new child classes and expand the hardware capability. Let me know how you get on, and comment a reply to this if you get any issues (or find me on LinkedIn www.linkedin.com/in/thomasmcquillan/).
OOP (Dynamic dispatch overrides) are heavily used in LabVIEW (and lots of other OO languages) for hardware abstraction layers (HAL), so rest assured this is a well-recognized technique in programming. :)
Can you make a playlist for jki state machine
Thanks
Hey Tom!. Are you planing on making a video explaining subpanels and plugins?
If you do, i'd appreciate it so much!
@Miguel, a video on subpanels is a great shout. Because AF is so modular, my user interfaces are often made up of many subpanels to show the status of multiple actors at once. We can then expand this to show how to dynamically change the panel being shown. I'll add this to the list.
Regarding plugins, as an actor is a class, the way you dynamically load an actor is the same as loading a class using the 'Get LV Class Default Value.vi'. - I could do a video on that too.
Thank you! Love the explanation. Could you discuss the best use of accessors to dynamically access private data, in a future video?
Glad you liked it :)
I'll add that to my list. But in short, Accessor VIs are a wrapper for bundling and unbundling the object. These VIs are very helpful if a child class needs to use the private data of a parent class. With this in mind, Accessor VIs should always have a protected access scope (the scope with the yellow key)
Great explanation. Only the project will fail in exe with an error. Nobody knows what is missing?
Hello, TOM, your video is very helpful to me, but I still have a question, how can I dynamically find these classes I want after generating the exe?
Thank you for videos but still I cannot believe that OOP can make me faster on programming. I already have polymorphic VIs and proper subVIs. I have never need to use classes before but I want to make myself believe I need to use it OOP for future but this kind of easy examples makes me think that we could do this without classes in 1-2 min.
There is an up front cost (in time) to design and implement your classes. However, classes have many benefits: as applications change, classes allow you to append additional requirements to your code without changing already tested and working code. In-fact, if you design your code well, you can append additional features and functions just by making a class-plugin architecture without having to change a single block diagram in your application.
I would like to challenge you to design your next [suitable] application using OOP and implement it, the more you use/practice OOP the more you will understand why OOP is a fundamental design practice. If you still don't like OOP after that, then that's okay - it's not for everyone.
Super useful series, cheers Tom! Only comment would be if you could link the Github of where you uploaded your code to.
Hey Chris, glad you liked it!
Thanks for reminding me, I've set a reminder to post the code on GitHub when I'm at work tomorrow.
Here you go: github.com/TomsLabVIEWAdventure/IntroToOOP
@@TomsLabVIEWAdventure Cheers!
Very detailed.. Thanks
TX a lot!
Excelent explanation. thank you !
Hi! Thanks for the videos. Could you please upload somewhere the project? merry christmas
Sure, In the next week I will create a Github repository where I will post all of my UA-cam code :)
Here you go: github.com/TomsLabVIEWAdventure/IntroToOOP
would be great, if you would go more in depth!!! Or did you already?
Thanks..