Main Content

padv.TaskTool

Tool to help organize and complete task activities in Process Advisor

Since R2024a

    Description

    A padv.TaskTool object represents a tool that you can add to your task or process to help you organize and complete task activities in Process Advisor. Starting in R2024a, your task tools are available from the options menu for a task in Process Advisor. You add the task tool to your process model by using the addTaskTool function and link the tool to a specific task or process by setting the TaskTools property of the task or process. In Process Advisor, you access task tools by pointing to the task in the Tasks column and opening the options menu (...).

    Task options menu showing a custom task app

    This functionality requires CI/CD Automation for Simulink Check.

    Creation

    Description

    padv.TaskTool(ToolFunction=AppName,Title=Title,Type="TaskApp") creates a task tool that represents a custom app that you can open from the task options menu in Process Advisor. You design the app by using App Designer or uifigure.

    example

    padv.TaskTool(ToolFunction=FunctionName,Title=toolTitle,Type="Command") creates a task tool that represents a command that you can run from the task options menu in Process Advisor.

    example

    padv.TaskTool(___,Arguments=Arguments) passes arguments to the task tool. For example, padv.TaskTool(ToolFunction="blankApp1",Title="My Custom App",Type="TaskApp",Arguments="arg1") passes the argument arg1 to the task app.

    Input Arguments

    expand all

    Name of app to open, specified as a string. Do not include the file extension.

    The app must:

    • Be an app that you design using App Designer or uifigure. You can save the app as an App Designer app (.mlapp), export the App Designer app as an M file, or define the app by using a MATLAB® class (.m).

    • Be on the MATLAB path.

    • Include a TaskContext property that you pass as a name-value argument in the constructor. Process Advisor uses the argument to identify the context of the task in your process.

    • Do one of the following during initialization:

      • Return a figure object from the uifigure function

      • Return an object with a getFigure method that returns a figure object from the uifigure function

      • Return an object with a UIFigure property containing a figure object from the uifigure function

    For example, the following MATLAB class defines a blank task app.

    classdef blankApp1 < matlab.apps.AppBase
        properties (Access = public)
            UIFigure  matlab.ui.Figure
            TaskContext
        end
        methods (Access = private)
            function createComponents(app)
                app.UIFigure = uifigure('Visible', 'on');
            end
        end
        methods (Access = public)
            function app = blankApp1(NameValueArgs)
                arguments
                    NameValueArgs.TaskContext
                end
                app.TaskContext = NameValueArgs.TaskContext;
                createComponents(app);
                if nargout == 0
                    clear app
                end
            end
            function delete(app)
                delete(app.UIFigure)
            end
        end
    end

    Example: "blankApp1"

    Data Types: string

    Name of function to evaluate, specified as a string. Do not include the file extension.

    The function must accept a TaskContext as a name-value argument in its NameValueArgs input. Process Advisor uses this argument to identify the context of the task in your process. Inside the function, specify the command that you want the task tool to execute.

    function out = myTaskCommand(NameValueArgs)
        arguments
            NameValueArgs.TaskContext
        end
        % define task command here
    end

    padv.TaskTool uses the feval function to evaluate the function and any input arguments that you specify in padv.TaskTool.

    Example: "myTaskCommand"

    Data Types: string

    Tool name that appears in Process Advisor app, specified as a string.

    Example: "My Custom App"

    Data Types: string

    Input arguments for tool, specified as a cell array.

    Example: {'arg1'}

    Example: {"arg1", "arg2"}

    Data Types: cell

    Properties

    expand all

    Name of app to open or function to evaluate, specified as a string. Do not include the file extension.

    The value that you specify depends on the type of task app that you create:

    • If the Type property is "TaskApp", specify the name of an app. The app must:

      • Be an app that you design by using App Designer or uifigure.

      • Be on the MATLAB path.

      • Include a TaskContext property that you pass as a name-value argument in the constructor. Process Advisor uses the argument to identify the context of the task in your process.

      • Do one of the following during initialization:

        • Return a figure object from the uifigure function

        • Return an object with a getFigure method that returns a figure object from the uifigure function

        • Return an object with a UIFigure property containing a figure object from the uifigure function

      For example, the following MATLAB class defines a blank task app.

      classdef blankApp1 < matlab.apps.AppBase
          properties (Access = public)
              UIFigure  matlab.ui.Figure
              TaskContext
          end
          methods (Access = private)
              function createComponents(app)
                  app.UIFigure = uifigure('Visible', 'on');
              end
          end
          methods (Access = public)
              function app = blankApp1(NameValueArgs)
                  arguments
                      NameValueArgs.TaskContext
                  end
                  app.TaskContext = NameValueArgs.TaskContext;
                  createComponents(app);
                  if nargout == 0
                      clear app
                  end
              end
              function delete(app)
                  delete(app.UIFigure)
              end
          end
      end

    • If the Type property is "Command", specify the name of a function to evaluate. The function must accept a TaskContext as a name-value argument in its NameValueArgs input. Process Advisor uses this argument to identify the context of the task in your process.

      Inside the function, specify the command that you want the task tool to execute.

      function out = myTaskCommand(NameValueArgs)
          arguments
              NameValueArgs.TaskContext
          end
          % define task command here
      end

      padv.TaskTool uses the feval function to evaluate the function and any input arguments that you specify in padv.TaskTool.

    Example: "blankApp1"

    Example: "fun"

    Data Types: string

    Tool name that appears in Process Advisor app, specified as a string.

    Example: "My Custom App"

    Data Types: string

    Type of tool, specified as either:

    • padv.TaskToolType.TaskApp — Represents a custom app that you can open from the task options menu in Process Advisor. You can design the app by using App Designer or uifigure. Use this type to represent interactive apps that you create for your tasks.

    • padv.TaskToolType.Command — Represents a command that you can run from the task options menu in Process Advisor. Use this type to represent programmatic commands that you execute.

    These values belong to the enumeration class padv.TaskToolType.

    Example: padv.TaskToolType.TaskApp

    Input arguments for tool, specified as a cell array.

    Example: {'arg1'}

    Example: {"arg1", "arg2"}

    Data Types: cell

    Examples

    collapse all

    Starting in R2024a, you can integrate custom apps into your process model by using the addTaskTool function. You create the custom app by using App Designer or uifigure and represent the app by using a padv.TaskTool object. For this example, you add a custom app as a tool for a task and view the tool in the options menu for the task in Process Advisor.

    Open the Process Advisor example project. The model AHRS_Voter opens with the Process Advisor pane to the left of the Simulink® canvas.

    processAdvisorExampleStart

    Create a custom app for a task in the process.

    You can use App Designer to create a custom app that helps you complete activities for a task in your process. In the MATLAB Command Window, open App Designer by entering:

    appdesigner
    Use the App Designer app to interactively develop an app. For this example, you can create and save a blank app. For more information, see App Designer.

    To use your App Designer app as a task tool, you must include a TaskContext property that you pass as a name-value argument in the constructor and your app must return a matlab.ui.Figure object during initialization. You can save your app as an App Designer app (.mlapp), export your App Designer app as an M file, or define your app by using a MATLAB class (.m). For example, the following MATLAB class defines a blank App Designer app that can be a task tool.

    classdef blankApp1 < matlab.apps.AppBase
        properties (Access = public)
            UIFigure  matlab.ui.Figure
            TaskContext
        end
        methods (Access = private)
            function createComponents(app)
                app.UIFigure = uifigure('Visible', 'on');
            end
        end
        methods (Access = public)
            function app = blankApp1(NameValueArgs)
                arguments
                    NameValueArgs.TaskContext
                end
                app.TaskContext = NameValueArgs.TaskContext;
                createComponents(app);
                if nargout == 0
                    clear app
                end
            end
            function delete(app)
                delete(app.UIFigure)
            end
        end
    end

    In the Process Advisor pane, click the Edit process model button to open the processmodel.m file for the project.

    Replace the contents of the processmodel.m file with the following example code. the code defines:

    • myTask — A custom task.

    • myTaskTool — A custom tool for a task. The tool calls the function specified by the ToolFunction argument. In the Process Advisor context menu for a task, the tool has the title My Custom App. Since the tool function, blankApp1, is a .mlapp file for an App Designer app, the Type is set to TaskApp.

    Inside the process model, the code adds the task and tool to the process model and specifies the tool as one of the task tools for the task.

    function processmodel(pm)
        % Define process model for project
    
        arguments
            pm padv.ProcessModel
        end
    
        % --- Task ---
        myTask = padv.Task("MyCustomTask");
    
        % --- TaskTool ---
        myTaskTool = padv.TaskTool(ToolFunction="blankApp1",Title="My Custom App",...
            Type=padv.TaskToolType.TaskApp);
    
        % --- Integrate ---
        pm.addTask(myTask);
        pm.addTaskTool(myTaskTool);
        myTask.TaskTools = myTaskTool;
    
    end

    In Process Advisor, update the task information by clicking Refresh Tasks.

    In the Tasks column, point to MyCustomTask, open the options menu (...), and click My Custom App.

    The App Designer app opens inside Process Advisor. You can use your app to help organize and complete activities related to your tasks.

    Task options menu showing a custom task app

    Starting in R2024a, you can integrate custom commands into your process model by using the addTaskTool function. You represent the custom commands by using padv.TaskTool objects. For this example, you add two custom commands as tools for a task and view the tools in the options menu for the task in Process Advisor.

    Open the Process Advisor example project. The model AHRS_Voter opens with the Process Advisor pane to the left of the Simulink canvas.

    processAdvisorExampleStart

    Define your custom command by creating a new MATLAB function file. The function must accept a TaskContext as a name-value argument and must be on the MATLAB path.

    For this example, you can create a file named myCustomCommand.m and define a custom function that accepts and displays an input argument.

    function out = taskCmd1(inputArg, NamedValueArgs)
        arguments
        inputArg
        NamedValueArgs.TaskContext
        end
    
        disp(inputArg);
        
    end

    In the Process Advisor pane, click the Edit process model button to open the processmodel.m file for the project.

    Replace the contents of the processmodel.m file with the following example code. the code defines:

    • myTask — A custom task.

    • myTaskTool — A custom tool for a task. The tool calls the function specified by the ToolFunction argument. In the Process Advisor context menu for a task, the tool has the title My Command 1. Since the tool function, taskCmd1, is a .m file for a function that defines a command for the task tool to execute, the Type is set to Command. The function accepts an input argument cmd1Arg.

    Inside the process model, the code adds the task and tool to the process model and specifies the tool as one of the task tools for the task.

    function processmodel(pm)
        % Define process model for project
    
        arguments
            pm padv.ProcessModel
        end
    
        % --- Task ---
        myTask = padv.Task("MyTask");
        pm.addTask(myTask);
        
        % --- TaskTool ---
        cmd1Arg = "myInputArg";
        myTaskTool = padv.TaskTool(ToolFunction="taskCmd1",...
            Title="My Command 1",...
            Type=padv.TaskToolType.Command,...
            Arguments={cmd1Arg});
    
        % --- Integrate ---
        pm.addTaskTool(myTaskTool);
        myTask.TaskTools = myTaskTool;
    
    end

    In Process Advisor, update the task information by clicking Refresh Tasks.

    In the Tasks column, point to MyTask, open the options menu (...), and click My Command 1.

    Process Advisor executes the command specified in the taskCmd1 function. The function displays the input argument, "myInputArg", in the MATLAB Command Window.

    Task options menu showing a custom command

    Version History

    Introduced in R2024a