Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Tools to reduce "Project Explorer Programming" in AF - ideas?

I've been thinking about my AF workflow and realised I would be a lot more efficient if I didn't have to constantly switch between the Block Diagram and Project Explorer (particularly big projects). So, I was thinking about writing some right-click menu (or QD-Shortcut) scripting tools as a side project that would allow me to spend more time on the BD/increase productivity:

 

  1. For UI Actors: Create a value-change event case, create method+message, wire the enqueuer
  2. For UI Actors: Add control reference to class private data*
  3. Get to the Method VI from the corresponding Send VI - Update: Click link to see tool!
  4. Create a method+message (and wire the enqueuer) when right-clicking an enqueuer
  5. List available messages and insert for an actor when an enqueuer (that originates from Read Self-Enqueuer) from is right-clicked  - Work-in-progress, Click here for updates
  6. Not sure how to do this one automatically: Update Send Method VI icon when the corresponding Method icon is updated. (without rescripting the whole message)

*Working PoC

 

I would be interested to hear your thoughts on this:

  • How useful would these be?
  • Would you use the tools if they were available?
  • Do similar tools already exist?
  • Do you have any additional ideas that would help your workflow?
0 Kudos
Message 1 of 19
(5,145 Views)

I am going to alert Sam Taggart about this post because I know that he and Allen Smith have been working on tools to improve the AF DX (Actor Framework Developer Experience).

 

Regards,

Fab

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
Message 2 of 19
(5,098 Views)

Yes, I have done some work with Allen on the UI Actors and created a scripting tool for creating test harnesses.  Unfortunately, I don't have a good solution for having to access the project so much.  I agree it would be nice to not have to access it so much.

 

If you are able to throw whatever you are working on up on Github or GitLab, I would be happy to take a look and collaborate.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
Message 3 of 19
(5,074 Views)

Number 3 on your list can be done with this shortcut menu plugin.

Although I have noticed it becomes very slow when there are a lot of classes/libraries in the project. This can be solved by changing the criteria to determine whether or not to show the menu. The thing that actually slows it down is the property node of a VI that returns the reference to its library. I got a version that just checks if there is a Do.vi next to the VI under test. This is a lot faster and works for all my Send*.vi's.

 

I also omitted the check if the message class inherits from the actor framework message class for 2 reasons :

  • I don't want to use the get library reference property node
  • I also want to be able to use message classes from a packed actor library

You can find my version of the plugin attached to this post. It is saved in LabVIEW2016.

 

Best Regards,

Stefan Lemmens

Intersoft Electronics

Message 4 of 19
(5,071 Views)

Thanks, Fab, Sam & Stefan,

 

@Sam, I've become quite au fait at IDE extension, so I can handle that side of things / if you're interested, I can point you towards the tools I use for Project providers/BD RCMs/QD-Shortcuts. I'll get some more detailed proof of concepts done in the upcoming weeks and share my GitHub repo with you.

 

@Stafan, Thanks for pointing this out. It wouldn't be the first time I've re-created an existing tool! - I've learnt to search/ask before making! 😉

 

nb: Is it possible to properly '@ Mention' someone on here?

Message 5 of 19
(5,047 Views)

Project Provider?  You are way braver than I am.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
0 Kudos
Message 7 of 19
(5,013 Views)

Hi Tommy!

 

Maybe some other useful stuff. (got my inspiration from ROS)

 

  • Being able to block the VI sending the message until you receive a response.
    This would allow you to force synchronization when needed and you would also be able to implement full getters and setters. 

 

  • A visualization tool for tracing messages between actors. Think execution highlighting meets class diagram. 
    It would be amazing to debug that one rogue message in a chain.

Greetz

 

Natan Biesmans, CLA

Surely not everyone was kungfu fighting.
0 Kudos
Message 9 of 19
(4,936 Views)

  • Being able to block the VI sending the message until you receive a response.
    This would allow you to force synchronization when needed and you would also be able to implement full getters and setters. 

I would take quite a bit of convincing that this is a good idea... To me, this screams mega coupling and deadlocks. I never use reply messages. When I need to have synchronous tasks happen (like in a device driver) I will use a proxy actor for buffering.

Regarding 'Getters and Setters', Actors should "share data by communicating" and not "communicate by sharing data", so I struggle to see why this would be a benefit.

 

Message me - Let's take this one offline as it's not really what this thread is about.

 

  • A visualization tool for tracing messages between actors. Think execution highlighting meets class diagram. 
    It would be amazing to debug that one rogue message in a chain.

This is an interesting idea Hmmmm..... I'll have a think about this one. I'm not sure how it would be implemented. But a graphical representation of the message information in DETT sounds epic!


0 Kudos
Message 10 of 19
(4,930 Views)