I have to say it.This is the best LabVIEW channel ever. Currently i'm preparing myself to take the CLD certification (but i think i have what it takes for that), but i wanted to learn more about the Actor Framework Architecture, since i already know how to use the QMH, and sometimes i thinkit's very limited for some kind of applications. Keep up, man. You are a very talented Architect!
Hi Miguel, Thank you for the feedback. I'll be recording/publishing another Actor Framework video this evening (GMT - UK Time) about abstract messaging in AF so look out for that one :) Generally speaking the QMH is the answer to the CLD. One snippet of advice though: when I did the CLD I created the QMH (with user events) all from scratch, however I would have saved ~45 minutes if I had used the QMH sample project as a template. I still passed first time, but if I had to do it again I would use the sample project and be a lot more time efficient! Remember, everything in the standard LabVIEW Pro install is fair-game in the exam. Best of luck with the CLD!
I've been using AF since it was first introduced, and I've been able to take my original application and move it to four different projects making minor to moderate changes to fit the project. My latest invocation includes network endpoints, abstract messages, protected VI references and sub-panels, and a hardware abstraction layer and uses approximately 20 actors. It has served me well.
That's what I really like about AF! It sounds like we're developing very similar styles of application. Everything you've mentioned I use for my development work, as well as proxy actors. Did you do the NI AF course? Those are all items I teach in Actor Oriented Design.
Great video! I must admit that I use the QMH way of programming a lot of the time. I would be interested to see the ATM Simulator.lvproj project to understand how you create these reusable components for these different QMH modules. Is that example code available somewhere? I will definitely be looking into all your other video's. Great content! Thanks for sharing your knowledge with us...
Hey Noxus, I'm glad you like the video, I can't remember creating a ATM Simulator (although I may well have done), it will be on my github page if it's anywhere: github.com/tomslabviewadventure
Tom's LabVIEW Adventure Thanks for the reply Tom. I will be checking out your git repository. You're using that ATM Simulator project inside this video to showcase how you can make individual modules of the QMH modules. I could not immediately find it on your git page but will definitely look further into it.
I hope this is not a silly question, why the need for the user interface loop? Why couldn’t the event handling loop handle user interface loop? Thanks.
That's a really good question! Strictly speaking you don't 'need' separate loops, and there are design patterns that have the event structure as part of the main message handling loop (events based state machine, QDSM, single loop QMH...). However, there are a couple of reasons why I create separate events and message handling loops (EHL and MHL) 1) Timely response to user control events. If the event structure is part of the MHL, then the event won't be processed until the MHL goes back into the event state. For example, when you have drag and drop events you wouldn't want there to be lag in your software - you want that to happen straight away. 2) Readability. Personally, I think separating the EHL and MHL makes your code easier to read as the EHL is a major part of the UI. What do other people think? Let me know!
Tom's LabVIEW Adventure sorry, I probably didn’t phrase my question properly. I understand the reason to separate EHL and MHL (timely response so MHL does not need to suspend itself) my question is that the purpose of the User Interface Module. I think the purpose of EHL is to handle user interface, so why a separate loop for user interface? Btw, thank you for posting topics like these. It’s awesome!
Ahhhh. So, the UI is just one component of the big software system, and like any other componant, we should make the UI its own module so it is decoupled from the rest of software system. This means we can swap/update the UI (or any other module) really easily without affecting the rest of the code. It also means we could reuse the module in another project without dependencies. Does this better answer your question?
Yep absolutely! I already have that planned. I've been playing around with LV2020 interfaces instead of abstract messages. But I'll release the video when LV2020 is released
Is it possible to share the code you used during this video? I presume that you developed this code purely as an example for this video and might not be complete nor functional, but it would provide the ability to see how 'you' practically implement and use the QMH.
Hi Sam, So I just looked at the source code and you're right, the code is very superficial and is only representative of how a messaging system works in theory. The video goes into more detail and explanation than the actual demo code I showed. However, if you're interested in how "I" write software - it's all in Actor Framework. But here you go: github.com/TomsLabVIEWAdventure/Messaging-Theory-for-AF-Series-Video-1
Can I share your video to Chinese video website?you know We can't access RUclips because of GWF!27/5000 I want more Chinese to see this video for us to learn labview!I'll note the original address and author of this video!
Tom's LabVIEW Adventure sorry…i try to sign up for linked account…but send message need be a member…and they not support china credit card…i just want to share your video for people who want to learn,it won't have any commercial use,if you must contact with me,how about wechat?
Your code looks exactly like my code. I want to do exactly what you're getting at, which is why I'm here, and so far, this is very re-assuring.
Best Practical LabVIEW Tutorials till now
I have to say it.This is the best LabVIEW channel ever. Currently i'm preparing myself to take the CLD certification (but i think i have what it takes for that), but i wanted to learn more about the Actor Framework Architecture, since i already know how to use the QMH, and sometimes i thinkit's very limited for some kind of applications. Keep up, man. You are a very talented Architect!
Hi Miguel, Thank you for the feedback. I'll be recording/publishing another Actor Framework video this evening (GMT - UK Time) about abstract messaging in AF so look out for that one :)
Generally speaking the QMH is the answer to the CLD. One snippet of advice though: when I did the CLD I created the QMH (with user events) all from scratch, however I would have saved ~45 minutes if I had used the QMH sample project as a template. I still passed first time, but if I had to do it again I would use the sample project and be a lot more time efficient! Remember, everything in the standard LabVIEW Pro install is fair-game in the exam.
Best of luck with the CLD!
I've been using AF since it was first introduced, and I've been able to take my original application and move it to four different projects making minor to moderate changes to fit the project. My latest invocation includes network endpoints, abstract messages, protected VI references and sub-panels, and a hardware abstraction layer and uses approximately 20 actors. It has served me well.
That's what I really like about AF! It sounds like we're developing very similar styles of application. Everything you've mentioned I use for my development work, as well as proxy actors. Did you do the NI AF course? Those are all items I teach in Actor Oriented Design.
Hey Tom. Thanks for these, they are brilliant. Really great tutorials on AF 👍
Cheers Rob, I appreciate it :)
Great video! I must admit that I use the QMH way of programming a lot of the time. I would be interested to see the ATM Simulator.lvproj project to understand how you create these reusable components for these different QMH modules. Is that example code available somewhere? I will definitely be looking into all your other video's. Great content! Thanks for sharing your knowledge with us...
Hey Noxus, I'm glad you like the video, I can't remember creating a ATM Simulator (although I may well have done), it will be on my github page if it's anywhere: github.com/tomslabviewadventure
Tom's LabVIEW Adventure Thanks for the reply Tom. I will be checking out your git repository. You're using that ATM Simulator project inside this video to showcase how you can make individual modules of the QMH modules. I could not immediately find it on your git page but will definitely look further into it.
Thank you for your effort from Brazil.
This is a good design for a beginner !
I hope this is not a silly question, why the need for the user interface loop? Why couldn’t the event handling loop handle user interface loop? Thanks.
That's a really good question! Strictly speaking you don't 'need' separate loops, and there are design patterns that have the event structure as part of the main message handling loop (events based state machine, QDSM, single loop QMH...).
However, there are a couple of reasons why I create separate events and message handling loops (EHL and MHL)
1) Timely response to user control events. If the event structure is part of the MHL, then the event won't be processed until the MHL goes back into the event state. For example, when you have drag and drop events you wouldn't want there to be lag in your software - you want that to happen straight away.
2) Readability. Personally, I think separating the EHL and MHL makes your code easier to read as the EHL is a major part of the UI.
What do other people think? Let me know!
Tom's LabVIEW Adventure sorry, I probably didn’t phrase my question properly. I understand the reason to separate EHL and MHL (timely response so MHL does not need to suspend itself) my question is that the purpose of the User Interface Module. I think the purpose of EHL is to handle user interface, so why a separate loop for user interface?
Btw, thank you for posting topics like these. It’s awesome!
Ahhhh. So, the UI is just one component of the big software system, and like any other componant, we should make the UI its own module so it is decoupled from the rest of software system. This means we can swap/update the UI (or any other module) really easily without affecting the rest of the code. It also means we could reuse the module in another project without dependencies.
Does this better answer your question?
LV2020 beta has OOP Interfaces. Can you do a video on how this will impact actor framework?
Yep absolutely! I already have that planned. I've been playing around with LV2020 interfaces instead of abstract messages. But I'll release the video when LV2020 is released
Tom's LabVIEW Adventure nice. Looking forward to it. I have one more question but I’ll ask it in a separate thread
@@JonathanCohn4 feel free to message me on LinkedIn or post your question here:)
Is it possible to share the code you used during this video?
I presume that you developed this code purely as an example for this video and might not be complete nor functional, but it would provide the ability to see how 'you' practically implement and use the QMH.
Hi Sam, So I just looked at the source code and you're right, the code is very superficial and is only representative of how a messaging system works in theory. The video goes into more detail and explanation than the actual demo code I showed. However, if you're interested in how "I" write software - it's all in Actor Framework.
But here you go: github.com/TomsLabVIEWAdventure/Messaging-Theory-for-AF-Series-Video-1
Can I share your video to Chinese video website?you know We can't access RUclips because of GWF!27/5000
I want more Chinese to see this video for us to learn labview!I'll note the original address and author of this video!
Hello, I would like to discuss this with you. Are you on LinkedIn? Please can you message me on there? Search for Thomas McQuillan
Tom's LabVIEW Adventure sorry…i try to sign up for linked account…but send message need be a member…and they not support china credit card…i just want to share your video for people who want to learn,it won't have any commercial use,if you must contact with me,how about wechat?
Tom's LabVIEW Adventure or email?932263553@qq.com