Contenido principal

setFunction

Set code mapping information for model function

    Description

    setFunction(myCPPMappingObj,funcID,Name,Value) sets code mapping information for the specified model function. Use this function to set the method name for a model function. For single-tasking periodic functions and Simulink® functions, you can use this function to set the argument specification, including argument names, type qualifiers, and argument order.

    example

    Examples

    collapse all

    Open the model. To access the CodeMappingCPP object associated with the model, use the coder.mapping.api.get function.

    open_system('CppClassRateBased');
    cm = coder.mapping.api.get('CppClassRateBased');

    To access the method name of the initialize function for the model, use the getFunction function. If you did not specify a method name for the initialize function, the getFunction function returns an empty character vector, and the method name in the generated code uses the default method name.

    value = getFunction(cm, 'Initialize', 'MethodName')
    value = 
    'initIntegrator'
    

    Specify a method name for the initialize function by using the setFunction function.

    setFunction(cm, 'Initialize', 'MethodName', 'my_$N')

    The getFunction function now returns the specified method name.

    value = getFunction(cm, 'Initialize', 'MethodName')
    value = 
    'my_$N'
    

    Input Arguments

    collapse all

    C++ code mapping object, returned by a call to either the coder.mapping.utils.create function or the coder.mapping.api.get function.

    The identifier of the model method to set the code mappings property value for, specified as one of the values in the table.

    Type of Model MethodMethod Identifier
    Initialize method

    "Initialize"

    Terminate method

    "Terminate"

    Reset method

    "Reset:slIdentifier", where slIdentifier is the name of the reset method in the model

    Periodic method

    "Periodic:slIdentifier", where slIdentifier is an annotation that corresponds to the sample time period for a periodic or continuous rate

    Example: "Periodic:D1"

    Tip

    For a single-tasking periodic method, you can use "Periodic" without :slIdentifier.

    Periodic update method

    "PeriodicUpdate:slIdentifier", where slIdentifier is an annotation that corresponds to the sample time period for a periodic or continuous rate

    Example: "PeriodicUpdate:D1".

    Tip

    For a single-tasking periodic update method, you can use "PeriodicUpdate" without :slIdentifier.

    Partition method

    "Partition:slIdentifier", where slIdentifier is a partition that was created explicitly from a block in the model and shown in the Simulink Schedule Editor

    Example: "Partition:P1"

    Partition update method

    "PartitionUpdate:slIdentifier", where slIdentifier is a partition created explicitly from a block in the model and shown in the Simulink Schedule Editor

    Example: "PartitionUpdate:P1"

    Simulink function

    "SimulinkFunction:slIdentifier", where slIdentifier is the name of the Simulink function in the model

    Exported method

    "ExportedFunction:slIdentifier", where slIdentifier is the name of the Inport block that drives the control port of the function-call subsystem, or the name of the port if it is driven by an In Bus Element block

    Tip

    When the configuration parameter Single output/update function is cleared, you can specify the update method that corresponds to a partition, periodic multitasking, or periodic single-tasking method. For more information about generating code with a single method for both update and output, see Single output/update function.

    For information about model partitioning, see Create Partitions. To learn more about annotations and sample time information, see Specify Sample Time. To learn how to programmatically obtain sample time information, see simulink.schedule.OrderedSchedule.

    Name-Value Arguments

    collapse all

    Example: 'MethodName', 'my_$N'

    Specify comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments as Name1,Value1,…,NameN,ValueN. The order of the name and value pair arguments does not matter.

    Name for the entry-point method in the generated C++ code, specified as a character vector or string scalar.

    Data Types: char | string

    Argument specification for the entry-point method in the generated C++ code, specified as a character vector or string scalar. The specification is a method prototype that shows argument names, type qualifiers, and argument order, for example, 'y =(u1, const *u2)'.

    For an entry-point method that does not return a value, do not include an output argument in the prototype specification. For example,

    setFunction(cm, 'SimulinkFunction:f','Arguments','(u, *y)');

    When the model function specified is a periodic function, you can also customize parameter names in the argument specification.

    setFunction(cm,'Periodic:D1','Arguments',...
    '(In1_1s & myParam1, In2_2s arg_In2_2s, * Out1 arg_Out1)');

    Data Types: char | string

    Version History

    Introduced in R2021a