An Introduction to Interfaces in G 🌟LabVIEW 2020 🌟 (OOP)

  Рет қаралды 18,302

Tom's LabVIEW Adventure

Tom's LabVIEW Adventure

Күн бұрын

Пікірлер: 32
@panda192012
@panda192012 Жыл бұрын
Hi Tom, I worked through your Udemy course, it was absolutely awesome. Thanks a lot. If you made another UDEMY course on OOP or Actor Framework, I will be your first customer :) .
@pantherlabmx
@pantherlabmx 4 жыл бұрын
Tom, your explanation of interfaces could not be better, you master the topic in a fantastic way, thank you
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
Thanks Enrique!
@paulanderson2075
@paulanderson2075 4 жыл бұрын
Fantastic explanation - this, combined with the shipping example called "Basic Interfaces" really help me get started with Interfaces - THNKS!
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
Great! I'm glad you liked it :)
@MortezaVafadar
@MortezaVafadar 4 жыл бұрын
Thank you so much Tom! This video is just what I try to learn these days! I really appreciate it. I am currently working on a lab DAQ project to measure and analyze thermoelectric properties which require several instruments to work together. Since I don't have access to the actual devices in the lab, the OOP is the remedy to develop the code. I already watched your previous OOP videos several times. Even I thinking to learn your opinion about my solution approach.
@panda192012
@panda192012 3 жыл бұрын
Love your content Tom. Thank you so much!
@sudhan123
@sudhan123 4 жыл бұрын
Nice to know about these kind of updates
@kothamahesh100
@kothamahesh100 3 жыл бұрын
awesome bro...interfaces looks pretty useful when we use ATE systems where sometimes some physical things needs to read or write from all or desired devices on the go. Its really a nice explanation..thanks alot
@dmitrymelnik8296
@dmitrymelnik8296 4 жыл бұрын
Thanks Tom! I am wondering what impact on the actor framework the introduction of Interfaces will have.
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
I'm looking forward to creating a video on interfaces and Actor Framework soon! I haven't made it yet as I found a bug with how LabVIEW 2020 saves override VIs - but a patch should be released soon to fix it. Interfaces are really going to revolutionize Actor Framework - I'm very excited! NO MORE ABSTRACT MESSAGES!
@andrzejczechowski5357
@andrzejczechowski5357 3 жыл бұрын
Thanks for this video Tom. I've just noticed one feature which really excites me. How did you get Diagram Preview in Choose implementation popup? I use LV2018, is this feature available for higher Labview versions?
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 3 жыл бұрын
That's a feature that was implemented in LV19 (I think), it's definitely in 20 and 21, pretty sure 19 as well. You can check out my What's New in LabVIEW videos to check for that, and other new features :)
@panda192012
@panda192012 Жыл бұрын
Just one question, why did you make the Analog Input Interface inherit from DAQ-Type ? Thanks!
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 11 ай бұрын
At the time I designed it so "Analog Input" was a type of "Data Acquisition". However, if I were to do it again, I might make it inherit from "Channel"
@chandrakanth9552
@chandrakanth9552 11 ай бұрын
Hi Tom, Can I create an Actor for the Instruments instead of Normal Class? bcz here I'm not gonna use most of the AF overrides (eg.: Actor core, Pre launch Init etc...), only using the AF messages!!
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 11 ай бұрын
I'm not sure I totally understand the question, however for an actor to be able to receive messages, it must inherit from actor.lvclass. (Actor.lvclass doesn't have to be the direct parent). You could make your hardware inherit from Actor, then specific hardware could inherit from Hardware. That being said, take time to design your OOP relationships, often composition is preferable to inheritance
@Gord1973
@Gord1973 4 жыл бұрын
Interfaces finally! This is fantastic news!
@AndrewDeanOwens
@AndrewDeanOwens 3 жыл бұрын
Another amazing video, thank you!!
@sudhan123
@sudhan123 4 жыл бұрын
Hi Tom, thanks for your interest in sharing your knowledge. I have one request regarding efficient method of data encapsulation implementation while we use lv interface. Could you make little bit details about where to define the parameters and also recommendation for defining private data of child class
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
Hi Sarithlal, That's quite a broad question so I'm only going to give a high-level answer I'm afraid. Interfaces define what all child classed MUST be able to do. However, interfaces DO NOT define HOW the classes implement the functionality. A class uses its private data to execute functionality (and the interfaces has no input to what the class private data is). So, the private data of a class can be anything the class needs to execute the functionality. For example, if you're connecting to some hardware, the class private data might have a VISA Resource Reference. I hope this helps.
@sudhan123
@sudhan123 4 жыл бұрын
@@TomsLabVIEWAdventure thanks for your time to reply me. Is there any other platform to interact with you to get some recomendation or approaches we can apply in lv?
@dmitrymelnik8296
@dmitrymelnik8296 4 жыл бұрын
Hi Tom. I have one more question. What is the point of inheriting the Abstract instrument class from the interface DAQ Types, aside from making a "forced reminder" for the developer to actually implement the methods in the child class? Also, it appears that the typecast of the dual-inherited class works only if such a typecast is performed on the class that immediately inherits from Interface and the parent class. An attempt to do so on the children of the dual-inherited class does not resolve broken wire withe either "To more generic" or "To more specific" typecast.
@dmitrymelnik8296
@dmitrymelnik8296 4 жыл бұрын
I think should clarify the question. When you inherit the instrument class from DAQ types Interface, I think (am I wrong) is the same as making the abstract methods "initialize" and "close" members of the Instrument class. Since every single concrete implementation inherits from Instrument type, and "Initialize" and "Close" are dynamic dispatch methods, they all be available in the all generation of children anyway. Also, it is not clear why inheriting of the Analog Input from DAQ types is needed. Thanks.
@alexandrlubchenko3669
@alexandrlubchenko3669 4 жыл бұрын
Hello. Does it help us to do communication from nested actor to calling actor? If yes - then how?
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
It does! In a massive way! Check out this video where I explain it: kzbin.info/www/bejne/pYq4oKpomJKheac
@ShivaKrish333
@ShivaKrish333 4 жыл бұрын
Am I can use this Interface method measuring current and voltage with Agilent data logger.
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 4 жыл бұрын
Yeah you can do, but I wouldn't put in the extra work if you just need a basic system. If you want your application to be dynamic and future-proof then go for it!
@MortezaVafadar
@MortezaVafadar 2 жыл бұрын
Interface icons in the Project Explorer change to "class icon" after saving it on disk. Is it a bug or a supposed to be? I checked the known issues page for both 2020 and 2021 versions and found no report.
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 2 жыл бұрын
Interesting, I've not seen that happen before and I've been using interfaces frequently for about a year now. Is it still behaving like an interface or has it somehow converted to a class? Are you able to replicate the behaviour? If so, let me know the steps you're taking along with version numbers.
@MortezaVafadar
@MortezaVafadar 2 жыл бұрын
@@TomsLabVIEWAdventure No, they are still acting like an interface but with a "class icon" in the project explorer tree only (e.g. in the "item settings" they have an interface icon). I have LabVIEW 21.0.1 (64-bit) on Windows 11 (with the insider program). Whenever I create a new interface and check "Do Not Save" it has an interface icon until I close and reopen the project. Meanwhile, I want to thank you again for the video since I recently started to use interfaces and noticed the all details you put there.
@TomsLabVIEWAdventure
@TomsLabVIEWAdventure 2 жыл бұрын
@@MortezaVafadar I wonder if the "do not save" option is causing the issue. That's not something I typically select. I'll try it tomorrow and report it to R&D
Thinking Inside the Box - Object Oriented Design Patterns
1:14:09
Tom's LabVIEW Adventure
Рет қаралды 6 М.
Interface Messages in Actor Framework - Never create an Abstract Message again!
10:14
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 44 МЛН
ЛУЧШИЙ ФОКУС + секрет! #shorts
00:12
Роман Magic
Рет қаралды 32 МЛН
LabVIEW intro to OOP
45:12
Радиоинформационные Системы и Коммуникации
Рет қаралды 12 М.
Hardware Emulation Using LabVIEW Classes
15:16
VI Shots (Michael Aivaliotis)
Рет қаралды 24 М.
Introduction to DQMH
51:16
D Natt
Рет қаралды 8 М.
Fundamental Concepts of Object Oriented Programming
9:16
Computer Science Lessons
Рет қаралды 941 М.
Smartphone Like User Interfaces in LabVIEW
56:32
ShireyStudios
Рет қаралды 158
4. User Interface Basics with Actor Core Override
15:27
Tom's LabVIEW Adventure
Рет қаралды 16 М.
2. Deriving the Actor Core in Actor Framework (The Command Pattern)
10:50
Tom's LabVIEW Adventure
Рет қаралды 18 М.
Trick-or-Treating in a Rush. Part 2
00:37
Daniel LaBelle
Рет қаралды 44 МЛН