Hi Tom, thanks for sharing this instructive tutorial/lecture series. It got me started for one of my own projects which would have been hard without your input.
Yet one more suggestion: I watched as well your “Interfaces” video where you show how abstract messages can be replaced by interfaces form LV2020 on. The video is already very instructive, but I cannot make the final link to apply the interface approach to your chat application tutorial here. It would be absolutely great if you provided an update to this chat program tutorial (lecture 11) with interfaces/LV2020+
Nice video. I like the "Open Message Handler.llb". Could you recommend more edit-time plug-in's? I couldn't help, but notice that you have Actor, GOOP, UML, Tom's tools plugs in your right mouse click popup menu.
Hi Tom, the code is not running for me in LV2019 64b :( Update: the .vim @13:25 didnt connect, I changed the active case to the string input. Works now.
Hi Tom. Great tutorial. Thanks a lot for sharing! 🙂 However, the example still deals with the old Abstract Messages. Perhaps you have a simple example of how to integrate subpanels with interfaces.
Hi Skybowtw, Yep, number 8. MVCs in LabVIEW are a little diffrent than other languages as the front panel of the UI actor core is both the "View" and "Controller". We focus on separating the business logic (Model) from the user interface.
Hi Tom, thank you for videos. I cant start project Chat Room.lvproj in LV2018. (Error 1003 occurred at Open VI Reference in Actor Framework.lvlib:Actor.lvclass:Launch Actor Core.vi->Actor Framework.lvlib:Actor.lvclass:Launch Root Actor.vi->Launcher.vi ) It would be nice to learn more about Malleable VIs.
Hi Tom, Thanks a lot for this series of videos. We're thinking of implement this AF model for an internal project, and while the Objects (and their methods/attributes) are easy for us to define, we're struggling to grasp when an object becomes an actor, or are all objects actors?
Hi Rocio, An 'Actor' is a process, it's simply a loop that can receive messages. Actor Framework uses classes to define the data and functionality each actor should have. And an object is just a single instance of a class (i.e a class on the block diagram). The terminology of what an object or class is doesn't change when talking about Actor Framework. To decide on the actors you need, you should first design a high level overview of what your processes should be (i.e. things that need to happen concurrently (and have high cohesion and low coupling etc...)). That will help you determine what actors you need - for example Controller, Data Logger, Data Acquisition, User Interface. Once you've decided your actors/processes, you can then decide what "type" of actors you need, this will help you determine the class you need inside your actor (that already exists in the actor library), the "type" will help you determine the class methods and data. To take it up a level... Once you've mastered the design, you can then implement different design-patterns like abstraction layers, Model-View-Controller, and other OO design patters (like the Gang of four patterns)
Hi, I downloaded the Chat Room project(2014 version), and there is an error inside the "Delete UI reference Mal.vi" of the "UI Reference Wrapper.lvclass". Looks like it needs an index as an input?
Hi there, yep, sorry that's a known issue. The true source code will only work with LV18 and greater because that's when malleable VIs (with type specialization structures) were introduced. Because I saved for previous, the TSS, converted to a diagram disable structure. From memory, I think that VI searched through a 1D array for an index then indexes the array for the value. So you should be able to get it working fairly easily. I'll update the repo soon.
Hi Tom, thanks for this amazing tutorial. It would be fantastic if you can provide all example codes in LV 16 or earlier ( i know you've made some codes in LV 15 and many thanks for that). Thanks and looking forward to more videos here
Hey Tom , I need your support! I tried to insert a VI into a sub panel but I got the following error LabVIEW: (Hex 0x478) Cannot insert VI in a subpanel control because VI is already open. that is true because the VI actor core that iam trying to insert into SUbpanel is displayed and wont be moved to the subpanel. what did you do in order that the chat interface window VI is not displayed alone before being inserted into subpanel. thank you in advance!
Hey Nader, All you have to do is check check current state of the front panel before inserting it (using a property node to check the FP State, then an invoke node to close it if required). Hope that helps :)
Hey Tom But i didnt see such procedure in your code , you launched the actor core of the chat interface that will send its VI reference up tonthe server und the server will send it up to the subpanel, the subpanel will remove the current displayed VI on it before inserting the new one. Why by me the actor core VI that am going to insert into subpanel, is displayed independently ?
@@naderilahi2224 perhaps the VI settings for your Actor Core are to display the FP when called. I can't remember what I did in this video, but before inserting the FP into the SubPanel, I should have checked the state of the FP, to prevent this error.
Hi Tom, thanks a lot for your video I appreciate it a lot. it will be a great idea if you can explain with more details malleable VIs! waiting eagerly hearing from you !
Hi Jose, I'm glad you enjoyed the tutorial. I would recommend posting your question on the NI Community forums, you can copy a link to your post here if you like and I'll take a look. By posting on the community page, it can help other people too.
@@yurik0spb Hmmm... Yeah, I've just checked out the code on another PC and the vims are broken. The stall data flow vim can be found the functions pallet under Programming>Timing. If the other VIMs are broken for you, you can open them up and fix them quite easily by changing the control data types and removing the type specialization structure. I'll try and get this fixed soon, thanks for pointing out the issue.
A detailed video about malleabe VIs would be most appreciated!
We didn't have NI Week this 2020, but I had your videos... thank you for that!
Hi Tom, thanks for sharing this instructive tutorial/lecture series. It got me started for one of my own projects which would have been hard without your input.
And yet, another excellent video!.
I was waiting for this video to come up.
Keep the excellent work, Tom!.
Yet one more suggestion: I watched as well your “Interfaces” video where you show how abstract messages can be replaced by interfaces form LV2020 on. The video is already very instructive, but I cannot make the final link to apply the interface approach to your chat application tutorial here. It would be absolutely great if you provided an update to this chat program tutorial (lecture 11) with interfaces/LV2020+
Nice video. I like the "Open Message Handler.llb". Could you recommend more edit-time plug-in's? I couldn't help, but notice that you have Actor, GOOP, UML, Tom's tools plugs in your right mouse click popup menu.
Hi Tom, the code is not running for me in LV2019 64b :(
Update: the .vim @13:25 didnt connect, I changed the active case to the string input. Works now.
Sad Times. I'm committing a working compiled version of LV19 now. Should be ready in a couple of minutes.
Done :)
Hi Tom. Great tutorial. Thanks a lot for sharing! 🙂
However, the example still deals with the old Abstract Messages.
Perhaps you have a simple example of how to integrate subpanels with interfaces.
Hi! Could you tell me which video is focused on "Model-View-Controller" you mentioned at @3:10?
Is it Lesson 8? Thank you.
Hi Skybowtw,
Yep, number 8. MVCs in LabVIEW are a little diffrent than other languages as the front panel of the UI actor core is both the "View" and "Controller". We focus on separating the business logic (Model) from the user interface.
@@TomsLabVIEWAdventure Thank you! I also noticed that the "Chat Window UI Controller" class doesn't override the"Actor Core"method.
Hi Tom, thank you for videos.
I cant start project Chat Room.lvproj in LV2018. (Error 1003 occurred at Open VI Reference in Actor Framework.lvlib:Actor.lvclass:Launch Actor Core.vi->Actor Framework.lvlib:Actor.lvclass:Launch Root Actor.vi->Launcher.vi
)
It would be nice to learn more about Malleable VIs.
Same in LV17
Hi Tom, Thanks a lot for this series of videos.
We're thinking of implement this AF model for an internal project, and while the Objects (and their methods/attributes) are easy for us to define, we're struggling to grasp when an object becomes an actor, or are all objects actors?
Hi Rocio,
An 'Actor' is a process, it's simply a loop that can receive messages. Actor Framework uses classes to define the data and functionality each actor should have. And an object is just a single instance of a class (i.e a class on the block diagram).
The terminology of what an object or class is doesn't change when talking about Actor Framework.
To decide on the actors you need, you should first design a high level overview of what your processes should be (i.e. things that need to happen concurrently (and have high cohesion and low coupling etc...)). That will help you determine what actors you need - for example Controller, Data Logger, Data Acquisition, User Interface.
Once you've decided your actors/processes, you can then decide what "type" of actors you need, this will help you determine the class you need inside your actor (that already exists in the actor library), the "type" will help you determine the class methods and data.
To take it up a level... Once you've mastered the design, you can then implement different design-patterns like abstraction layers, Model-View-Controller, and other OO design patters (like the Gang of four patterns)
@@TomsLabVIEWAdventure thanks for the explanation. It is clearer now.
Hi, I downloaded the Chat Room project(2014 version), and there is an error inside the "Delete UI reference Mal.vi" of the "UI Reference Wrapper.lvclass". Looks like it needs an index as an input?
Hi there, yep, sorry that's a known issue. The true source code will only work with LV18 and greater because that's when malleable VIs (with type specialization structures) were introduced. Because I saved for previous, the TSS, converted to a diagram disable structure.
From memory, I think that VI searched through a 1D array for an index then indexes the array for the value. So you should be able to get it working fairly easily. I'll update the repo soon.
Hi Tom, thanks for this amazing tutorial. It would be fantastic if you can provide all example codes in LV 16 or earlier ( i know you've made some codes in LV 15 and many thanks for that). Thanks and looking forward to more videos here
Hey Tom ,
I need your support!
I tried to insert a VI into a sub panel but I got the following error
LabVIEW: (Hex 0x478) Cannot insert VI in a subpanel control because VI is already open.
that is true because the VI actor core that iam trying to insert into SUbpanel is displayed and wont be moved to the subpanel.
what did you do in order that the chat interface window VI is not displayed alone before being inserted into subpanel.
thank you in advance!
Hey Nader,
All you have to do is check check current state of the front panel before inserting it (using a property node to check the FP State, then an invoke node to close it if required).
Hope that helps :)
Hey Tom
But i didnt see such procedure in your code , you launched the actor core of the chat interface that will send its VI reference up tonthe server und the server will send it up to the subpanel, the subpanel will remove the current displayed VI on it before inserting the new one. Why by me the actor core VI that am going to insert into subpanel, is displayed independently ?
@@naderilahi2224 perhaps the VI settings for your Actor Core are to display the FP when called.
I can't remember what I did in this video, but before inserting the FP into the SubPanel, I should have checked the state of the FP, to prevent this error.
Thanks a lot Tom for the hint . Exactly the Actore cor FP is displayed when it is called. You let me win a lot of time! I appreciate that 😉
Hi Tom,
thanks a lot for your video I appreciate it a lot.
it will be a great idea if you can explain with more details malleable VIs!
waiting eagerly hearing from you !
Hi Nader,
I've had a few requests to go into VIMs in more details, so I may well create a video about them :)
Hello Tom, Your tutorial it's really fantastic. I'm student and I would like to contact you to solve some questions, how can I do it? Email?
Hi Jose, I'm glad you enjoyed the tutorial.
I would recommend posting your question on the NI Community forums, you can copy a link to your post here if you like and I'll take a look. By posting on the community page, it can help other people too.
"Stall Data Flow.vim" was not found
Which version of LV are you using? I believe it was introduced in LV16 or 17
@@TomsLabVIEWAdventure 17
@@yurik0spb Hmmm... Yeah, I've just checked out the code on another PC and the vims are broken. The stall data flow vim can be found the functions pallet under Programming>Timing. If the other VIMs are broken for you, you can open them up and fix them quite easily by changing the control data types and removing the type specialization structure.
I'll try and get this fixed soon, thanks for pointing out the issue.
good!
What have I got my self into @@ must not give up!
You can do it! There's only a few videos left (and some newer ones which aren't numbered but are in the playlist)
No source code found
I've just updated the repo. See the link in the description for the source code.