主要内容

为数据元素和函数类别配置默认的C代码生成

通过指定跨模型的数据元素类别和函数的默认配置,减少为C代码生成准备模型的工作。应用默认配置可以节省时间并降低在代码中引入错误的风险,特别是对于生成多实例代码的大型模型和模型。

您必须已设置示例环境,如中所述搭建示例环境

搭建示例环境

  1. 将这些外部源文件和头文件从matlabroot /工具箱/ rtw / rtwdemos到一个可写的工作文件夹。这些文件定义并声明生成的代码使用的外部数据类型和数据。

    文件 描述
    exDblFloat.h 定义项目数据类型别名为double,DBL_FLOAT。万博1manbetx动态仿真模块®使用PreLoadFcn为模型指定的回调函数来解析此头文件并创建相应的万博1manbetx仿真软件。AliasType对象。
    exInDataMem.c 包括exInDataMem.h并定义变量ex_input1
    exInDataMem.h 包括exDbFloat.h并声明变量ex_input1
    exInDataLut.c exInDataLut.c包括exInDataLut.h并定义变量ex_input2ex_input3,ex_input4
    exInDataLut.h 包括exDbFloat.h并声明变量ex_input2ex_input3,ex_input4
    exCodeDefs.sldd 数据字典
    rtwdemo_configdefaults.slx 模型的例子。
  2. 打开示例模型的副本rtwdemo_configdefaults示例模型rtwdemo_configdefaults。

  3. 在应用程序库中,打开嵌入式编码器应用程序。

配置数据的默认代码生成

这个例子展示了如何使用Code Mappings编辑器来指定模型数据的代码生成需求。该模型使用多个执行速率,并配置为单实例使用。

本例假设数据的代码生成需求如下:

  • 使用项目类型定义DBL_FLOAT在头文件中定义exDblFloat.h

  • 获取数据元素ex_input1来自头文件exInDataMem.h。数据用于计算存储在内存中的值,然后用于类的if-else条件开关块。

  • 获取数据元素ex_input2ex_input3,ex_input4来自头文件exInDataLut.h。数据用于查找表表1而且表二

  • 从头文件导入模型的数据exInDataMem.h而且exInDataLut.h是类型的DBL_FLOAT,一个项目标准。

  • 参数K1必须可调以启用校准。

  • 数据存储模式定义模型中共享的数据。Logical Operator块写入数据存储,Rate Transition块从数据存储读取数据。

  • 数据元素X控件的延迟单位延迟块。

  • 存储模型内部的数据,比如延迟X,在一段内存中标注internalDataMem

  • 将输出数据声明导出到头文件exSysOut.h和定义exSysOut.c

  • 在生成的代码中,按照表中指定的方式命名表示输入和输出的变量,以便它们与外部头文件和定义文件中的变量名称相匹配。

尽管模型使用一些数据的单个实例,但示例配置默认设置以演示不同类型的映射。当您向模型中添加块时,新的数据元素将获得默认的代码生成映射。

为根导入配置默认设置

指定声明输入数据的外部头文件。四个根导入中的三个从头文件中声明的变量中读取输入exInDataLut.h。将该头文件设置为默认值。

  1. 开放模式rtwdemo_configdefaults。将副本保存到可写位置。

  2. 打开嵌入式编码器应用程序。

  3. C代码选项卡上,选择代码接口>默认代码映射。这将打开代码映射编辑器数据默认值选项卡。

  4. 数据默认值选项卡,扩大导入和输出。然后,选择港口

  5. 将存储类设置为ImportFromFile

  6. 单击图标以配置其他代码映射属性图标和设置头文件exInDataLut.h

配置模型参数的默认设置

为您希望可调的模型工作区参数配置默认设置。

  1. 在代码映射编辑器中,单击数据默认值选项卡。

  2. 数据默认值选项卡,扩大参数

  3. 在这一行模型参数,点击文字'Auto'将被内联。“模型配置参数”对话框打开到代码生成>优化窗格。集默认参数行为可调。应用更改并关闭对话框。在“代码映射”编辑器中,的右侧文本模型参数现在读Auto是可调的

  4. 类的存储类,可在生成的模型参数代码中包含全局变量定义和声明模型参数类别ExportedGlobal

为内部数据定义内存段

定义一个存储单元延迟的内存部分X,模型内部的数据。

  1. 通过选择打开嵌入式编码器字典代码接口>嵌入式编码器词典

  2. 在左窗格的“嵌入式编码器字典”中,单击记忆的部分

  3. 点击创建

  4. 在表的新行中,命名新的内存部分internalDataMem。还设置:

    • 之前的声明启动INTERNALDATA

    • 发布声明#pragma end INTERNALDATA

    • 语句包围变量组

  5. 关闭字典。

有关更多信息,请参见通过插入Pragmas控制数据和函数在内存中的位置

配置内部数据的默认设置

为内部数据设置包含内存部分的默认代码生成配置internalDataMem

  1. 在代码映射编辑器中,单击数据默认值选项卡。

  2. 数据默认值选项卡,扩大信号

  3. 选择类别信号、状态和内部数据

  4. 单击图标以配置其他代码映射属性图标和设置记忆的部分internalDataMem

配置根输出端口的默认设置

为生成的代码写入输出的变量指定默认的外部头文件和定义文件。

  1. 在代码映射编辑器中,单击数据默认值选项卡。

  2. 数据默认值选项卡,扩大导入和输出

  3. 选择类别外港

  4. 将存储类设置为ExportToFile

  5. 单击图标以配置其他代码映射属性图标和设置头文件exSysOut.h而且定义文件exSysOut.c

将默认配置应用于单个数据元素

除非显式地将各个数据元素映射到替代存储类设置,否则Code Mappings编辑器假定元素的存储类为汽车。当数据元素的存储类为时汽车,代码生成器可能为了优化目的而消除或更改相关代码的表示。如果不可能进行优化,代码生成器将应用模型默认配置。

  • 要避免优化并强制代码生成器使用默认配置,请将单个元素的存储类设置为模型的默认

  • 若要覆盖默认配置,请指定满足该数据元素代码生成要求的存储类。

对于本例,配置代码生成器将默认存储类设置应用到这些数据元素:

  • 港口In2In3,In4

  • 外港着干活

  • 模型参数K1

  • 状态X

  1. 在代码映射编辑器中,单击港口选项卡。

  2. 选择用于导入的行In2In3,In4。然后,对于选中的一个导入,将存储类设置为模型默认值:ImportFromFile。所选三个导入的存储类更改为模型默认值:ImportFromFile

  3. 单击外港选项卡。对于输出港着干活,设置存储类为模型默认值:ExportToFile

  4. 单击参数选项卡。扩大模型参数。然后,对于参数K1,设置存储类为模型默认值:ExportedGlobal

  5. 单击信号/州选项卡。扩大。国家X,设置存储类为型号默认:default

  6. 保存模型。

生成和验证代码

生成代码并验证生成的代码。

  • 在文件中rtwdemo_configdefaults.h,搜索# include包含声明外部输入数据的头文件的语句。

    #include "exInDataLut.h"

  • 打开的文件rtwdemo_configdefaults.c。代码初始化增益变量K1并使用模型中的变量阶跃函数exFast_step1

    Dbl_float k1 = 2.0;……void exFast_step1(void) {DBL_FLOAT rtb_Gain;rtb_Gain = K1 * look1_binlc(ex_input2, (&(rtTable1_bp01Data[0])), (&(rtTable1_tableData[0])), 10U);rtDWork。RateTransition_Buffer0 = rtb_增益;}……}
  • 在文件rtwdemo_configdefaults.c,找# pragma定义内存段的控制行INTERNALDATA(本地数据存储、单位延迟和常量)。

    #pragma start INTERNALDATA D_Work rtDWork;#pragma end INTERNALDATA…#pragma start INTERNALDATA static RT_MODEL;#pragma end INTERNALDATA…pragma start INTERNALDATA extern D_Work rtDWork;#pragma end INTERNALDATA
  • 打开的文件exSysOut.c。的导出数据定义ex_output

    #包括“rtwdemo_configdefaults.h”
  • 打开共享文件exSysOut.h。文件声明ex_output。获得访问权限ex_output,外部代码可以包含此头文件。

    ex_output;

配置函数的默认代码生成

这个例子展示了如何使用Code Mappings编辑器来指定模型函数的代码生成需求。该模型使用多个执行速率,并配置为单实例使用。代码生成器生成初始化、执行和终止入口点函数。由于模型使用多个费率,代码生成器为每个费率生成一个执行函数。

这个例子假设这些代码生成需求:

  • 将生成的初始化和终止函数存储在内存段中functionSlowMem并在内存部分执行函数functionFastMem

  • 使用命名规则exSlow_ $ N的名字初始化而且终止功能。使用命名规则exFast_ $ N来命名执行函数。

定义内存段

定义两个内存部分:functionSlowMem用于初始化和终止函数和functionFastMem用于执行函数。

  1. 打开嵌入式编码器应用程序。

  2. 通过选择打开嵌入式编码器字典代码接口>嵌入式编码器词典

  3. 在左窗格的“嵌入式编码器字典”中,单击记忆的部分

  4. 点击创建

  5. 在表的新行中,命名新的内存部分functionFastMem。然后,设置:

    • 之前的声明启动FASTMEM

    • 发布声明#pragma结束FASTMEM

  6. 点击添加一次。命名内存部分functionSlowMem。然后,设置:

    • 之前的声明启动SLOWMEM

    • 发布声明#pragma结束SLOWMEM

定义函数定制模板

在配置功能类别时,需要定义功能定制模板。除非在嵌入式编码器字典中定义与模型相关联的模板,否则唯一可用的模板是默认的。根据需求,在字典中定义两个函数定制模板:一个为初始化函数和终止函数指定命名规则和内存段,一个为执行函数指定命名规则和内存段。

  1. 在“嵌入式编码器字典”中,单击功能定制模板

  2. 点击创建

  3. 在表的新行中,命名新模板exFastFunction。然后,设置:

    • 函数名exFast_ $ N。此命名规则应用前缀exFast_到标识函数的默认代码生成器名称的名称(例如,初始化一步).

    • 记忆的部分functionFastMem。中定义的内存段与此映射关联定义内存段使用新模板。

  4. 点击创建一次。命名模板exSlowFunction。然后,设置:

    • 函数名exSlow_ $ N

    • 记忆的部分functionSlowMem

  5. 关闭字典。

配置功能默认设置

  1. C代码选项卡上,单击代码接口>默认代码映射

  2. 在代码映射编辑器中,单击功能默认值选项卡。

  3. 配置初始化和终止入口点函数。的类别初始化和终止,选择模板exSlowFunction

  4. 配置执行入口点函数。的类别执行,选择模板exFastFunction

  5. 保存模型。

生成和验证代码

  1. 生成的代码。

  2. 代码观点:

    • 打开的文件rtwdemo_configdefaults.c。请按搜索字段。一个菜单列出了生成的入口点函数:

      • exFast_step0(周期性调用,每0.5秒一次)

      • exFast_step1(周期性调用,每1秒一次)

      • exFast_step2(周期性调用,每1.5秒一次)

      • exSlow_initialize

    • 以获得访问函数代码中的入口点rtwdemo_configdefaults.c,单击函数名称。验证编译指示围绕函数代码的控制语句。例如:

      ……#pragma start FASTMEM void exFast_step2(void) /*采样时间:[1.5s, 0.0s] */ {boolean_T rtb_DataStoreRead;rtb_DataStoreRead = ((ex_input1 > 10.0) || (ex_input1 < -10.0));rtDWork。RateTransition1_Buffer0 = rtb_DataStoreRead;} #pragma end FASTMEM #pragma start SLOWMEM void exSlow_initialize(void){/*(不需要初始化代码)*/}#pragma end SLOWMEM . .
    • 打开的文件rtwdemo_configdefaults.h。使用搜索找到# pragma定义内存段的控制行FASTMEM而且SLOWMEM。验证编译指示控制语句围绕着声明。例如:

      ……start SLOWMEM extern void exSlow_initialize(void);#pragma start FASTMEM extern void exFast_step0(void);#pragma end FASTMEM…

配置用于代码生成的模型元素,其定义存储在共享数据字典中

您可以使用在Simulink数据字典中设置的定义来配置默认数据和函数代码生成。万博1manbetx数据字典支持在模型之间共享代码定义。此示例展示了如何将模型从使用特定于模型的嵌入式编码器字典中的代码定义更改为使用共享数据字典中的嵌入式编码器字典中的定义。如果你已经完成了配置数据的默认代码生成而且配置函数的默认代码生成您已经将这些代码定义添加到与模型关联的嵌入式编码器字典中rtwdemo_configdefaults

  • 记忆的部分internalDataMem之前的声明设置为启动INTERNALDATA而且发布声明设置为#pragma end INTERNALDATA

  • 记忆的部分functionFastMem之前的声明设置为启动FASTMEM而且发布声明设置为#pragma结束FASTMEM

  • 记忆的部分functionSlowMem之前的声明设置为启动SLOWMEM而且发布声明设置为#pragma结束SLOWMEM

  • 功能定制模板exFastFunction函数命名规则exFast_ $ N记忆部分functionFastMem

  • 功能定制模板exSlowFunction函数命名规则exSlow_ $ N记忆部分functionSlowMem

更新模型rtwdemo_configdefaults使用数据字典exCodeDefs中的相同代码定义。sldd而不是本地模型嵌入式编码器字典中的定义。

您必须已设置示例环境,如中所述搭建示例环境

链接模型到共享数据字典

  1. 在Simuli万博1manbetxnk编辑器中,选择建模>数据字典链接

  2. 在“模型属性”对话框中外部数据选项卡,浏览到数据字典文件副本的位置exCodeDefs然后选择该文件。

  3. 点击迁移数据

  4. 在“将模型链接到数据字典”对话框中,单击应用

  5. 在“数据迁移”对话框中,单击迁移。数据迁移完成后,单击好吧

回顾链接数据字典的内容

  1. 在模型画布的左下角,单击模型数据图标。

  2. 从模型数据源列表中,单击外部数据

  3. 在模型资源管理器中模型层次结构窗格中,展开exCodeDefs节点。

  4. 右键单击嵌入式编码器词典

  5. 单击打开嵌入式编码器字典显示的按钮。

  6. 在“嵌入式编码器字典”中,查看功能定制模板而且记忆的部分选项卡。

  7. 关闭嵌入式编码器字典。

从模型嵌入式编码器字典中删除模型源代码定义

  1. 打开嵌入式编码器应用程序。

  2. C代码选项卡上,选择代码接口>嵌入式编码器词典

  3. 删除在模型中本地创建的代码定义。

    • 功能定制模板表中,选择的行exSlowFunction而且exFastFunction设置为rtwdemo_configdefaults。单击删除图标。

    • 记忆的部分表中,选择的行functionFastMemfunctionSlowMem,internalDataMem设置为rtwdemo_configdefaults。单击删除图标。

  4. 关闭字典。

  5. 保存模型。

为代码生成配置默认类别

  1. C代码选项卡上,选择代码接口>默认代码映射

  2. 在代码映射编辑器中,单击数据默认值选项卡。

  3. 扩大信号。选择类别信号、状态和内部数据

  4. 单击图标以配置其他代码映射属性图标。集记忆的部分internalDataMem

  5. 单击功能默认值选项卡。

    • 初始化和终止类别,选择功能定制模板exSlowFunction

    • 执行类别,选择模板exFastFunction

  6. 保存模型。

  7. 生成并审查代码。

有关设置嵌入式编码器字典的详细信息,请参见为软件架构定义存储类、内存段和功能模板

以编程方式配置默认数据和功能代码生成

这个例子展示了如何配置默认数据和生成示例模型的函数代码rtwdemo_configdefaults该示例使用默认映射编程接口来指定模型数据和函数的代码生成要求。使用该接口来自动化配置,或者如果您喜欢以编程方式配置模型。有关使用代码映射编辑器配置默认数据和函数代码生成的信息,请参见为数据元素和函数类别配置默认的C代码生成

打开模型

该模型rtwdemo_configdefaults使用多个执行速率,并配置为单实例使用。

open_system (“rtwdemo_configdefaults”

代码生成要求

对于本例,以下是代码生成需求:

  • 为类型的数据导入项目类型定义, DBL_FLOAT,从头文件exDblFloat.h

  • 输入信号ex_input1用于计算存储在内存中的值,并用于Switch块中的if-else条件。从头文件中导入信号数据exInDataMem.h

  • 进口的信号ex_input2ex_input3,ex_input4查找表表1而且表二。从头文件中导入信号数据exInDataLut.h

  • 从头文件导入模型的数据exInDataMem.h而且exInDataLut.h是类型的DBL_FLOAT,一个项目标准。

  • 参数较低的K1,K2是存储在模型工作区中的参数对象。在生成的代码中将参数表示为全局变量。

  • 数据元素X表示单位延迟块的延迟。

  • 在内存部分中存储模型内部的数据internalDataMem

  • 将生成的初始化和终止函数存储在内存段中functionSlowMem并在内存部分执行函数functionFastMem

  • 使用标识符命名规则exSlow_ $ N的名字初始化而且终止入口点函数。使用命名规则exFast_ $ N命名0.5秒和1.5秒周期函数的执行函数。设置1秒周期函数的名称为exFast_1sec

  • 将输出数据声明导出到头文件exSysOut.h和定义exSysOut.c

对于这个例子,某人(比如系统架构师)之前已经在嵌入式编码器字典中创建了这些代码定义,该字典是Simulink数据字典的一部分万博1manbetxexCodeDefs.sldd

  • 记忆的部分internalDataMemfunctionFastMem,functionSlowMem

  • 功能定制模板exFastFunction而且exSlowFunction

获取模型的数据和函数代码映射

获取示例模型的代码映射rtwdemo_configdefaults通过在函数调用中指定模型的名称coder.mapping.api.get。该函数返回一个对象,该对象表示模型的代码映射。在随后调用API中的其他函数时,将该对象指定为第一个参数。

如果模型不存在代码映射,则通过调用coder.mapping.utils.create

Cm = code .mapping.api.get(“rtwdemo_configdefaults”);

设置相关类别、属性和值组合

的调用设置相关的类别、属性和值组合setDataDefaults而且setFunctionDefaults。为这些函数指定的前两个参数是返回的代码映射对象coder.mapping.api.get和数据或函数类别的名称。此外,您还可以指定名称-值对参数,这些参数指定要设置的默认配置信息,例如存储类和存储类属性。

在这个例子中,你设置默认值:

  • 导入块、输出块和模型参数的存储类

  • 内存部分用于内部数据(例如信号和块状态)

  • 导入和输出端口块的头文件和定义文件

  • 函数自定义模板,用于初始化、终止和执行函数

配置数据默认值setDataDefault(厘米,“港口”“StorageClass”“ImportFromFile”“HeaderFile”“exInDataLut.h”);setDataDefault(厘米,“输出港”“StorageClass”“ExportToFile”“HeaderFile”“exSysOut.h”...“DefinitionFile”“exSysOut.c”);setDataDefault(厘米,“ModelParameters”“StorageClass”“ExportedGlobal”);setDataDefault(厘米,“InternalData”“MemorySection”“internalDataMem”);配置函数默认值setFunctionDefault(厘米,“InitializeTerminate”“FunctionCustomizationTemplate”“exSlowFunction”);setFunctionDefault(厘米,“执行”“FunctionCustomizationTemplate”“exFastFunction”);

验证默认映射

的调用来验证默认映射getDataDefaults和getFunctionDefaults。为这些函数指定的前两个参数是返回的代码映射对象coder.mapping.api.get和数据或函数类别的名称。此外,您还可以指定希望函数返回的配置信息的名称,例如存储类的名称或存储类属性。

在这个例子中,你验证这些默认设置:

  • 导入块、输出块和模型参数的存储类

  • 内存部分用于内部数据(例如信号数据和块状态)

  • 导入和输出端口块的头文件和定义文件

  • 函数自定义模板,用于初始化、终止和执行函数

验证默认数据配置defscInports = getDataDefault(cm,“港口”“StorageClass”
defscInports = 'ImportFromFile'
defhfileInports = getDataDefault(cm,“港口”“HeaderFile”
defhfileInports = 'exInDataLut.h'
defscOutport = getDataDefault(cm,“输出港”“StorageClass”
defscOutport = 'ExportToFile'
defhfileOutport = getDataDefault(cm,“输出港”“HeaderFile”
defhfileOutport = 'exSysOut.h'
defdffileOutport = getDataDefault(cm,“输出港”“DefinitionFile”
defdffileOutport = 'exSysOut.c'
defscParams = getDataDefault(cm,“ModelParameters”“StorageClass”
defscParams = 'ExportedGlobal'
defmemInternal = getDataDefault(cm,“InternalData”“MemorySection”
defmemInternal = 'internalDataMem'
检查默认功能配置deftempInitTerm = getFunctionDefault(cm,“InitializeTerminate”“FunctionCustomizationTemplate”
deftempInitTerm = 'exSlowFunction'
deftempExecution = getFunctionDefault(cm,“执行”“FunctionCustomizationTemplate”
deftempExecution = 'exFastFunction'

将各个数据元素配置为使用默认配置设置

每个模型数据元素的存储类都设置为汽车,这意味着代码生成器可能为了优化目的而消除或更改相关代码的表示。如果不可能进行优化,代码生成器将应用模型默认配置。

  • 要避免优化并强制代码生成器使用默认配置,请将存储类设置为模型的默认

  • 若要覆盖默认配置,请指定满足该导入的代码生成要求的存储类。

对于本例,您将代码生成器配置为将默认存储类设置应用于import块、Output块、模型参数和状态X为单位延迟块。使用找到函数获取不同类别的模型中数据元素的名称。然后,使用返回的值找到在呼叫setInportsetOutportsetModelParameter,设置状态将存储类设置为模型的默认。使用调用getInportgetOutportgetModelParameter,getState为了验证,存储类设置。

在每个函数调用中,指定返回的代码映射对象coder.mapping.api.get。此外:

  • 的调用找到函数时,指定一个值,该值指示希望函数返回的代码映射信息。

  • 调用setInportsetOutportsetModelParameter,设置状态确定要配置的数据元素和指定要设置的配置信息(如存储类或存储类属性)的名-值对参数。

  • 调用getInportgetOutportgetModelParameter,getState确定要为其返回配置信息的数据元素,以及希望函数返回的信息类型。

输入= find(cm,“港口”);setInport (cm、输入、“StorageClass”“模型默认”);输出= find(cm,“输出港”);setOutport (cm、输出“StorageClass”“模型默认”);Params = find(cm,“ModelParameters”);setModelParameter (cm,参数,“StorageClass”“模型默认”);状态= find(cm,“州”);设置状态(cm、状态“StorageClass”“模型默认”);scIn1 = getInport(cm,“三机”“StorageClass”
scIn1 = '默认型号'
scIn2 = getInport(cm,“In2”“StorageClass”
scIn2 = '默认型号'
scIn3 = getInport(cm,“In3”“StorageClass”
scIn3 = '默认型号'
scIn4 = getInport(cm,“In4”“StorageClass”
scIn4 = '默认型号'
scK1 = getModelParameter(cm,“K1”“StorageClass”
scK1 = '默认型号'
scTable2 = getModelParameter(cm,“表”“StorageClass”
scTable2 = '默认模型'
scK2 = getModelParameter(cm,“K2”“StorageClass”
scK2 = '默认型号'
scX = getState(cm,rtwdemo_configdefaults /延迟的“StorageClass”
scX = '默认型号'

                

覆盖导入块In1的默认头文件设置

以前,您将导入的默认头文件设置为exInDataLut.h。需求指定您为import块导入数据三机一体来自头文件exInDataMem.h

轮廓尺寸三机一体,将默认存储类重写为ImportFromFile头文件设置为exInDataMem.h用一个电话setInport。函数调用指定返回的代码映射对象coder.mapping.api.get、要配置的Inport块的名称,以及指定函数集的名-值对参数StorageClassImportFromFile而且HeaderFileexInDataMem.h

setInport(厘米,“三机”“StorageClass”“ImportFromFile”“HeaderFile”“exInDataMem.h”);

检查头文件设置

验证导入块的更新头文件设置三机一体用一个电话getInport.函数调用指定返回的代码映射对象coder.mapping.api.get,感兴趣的import块的名称,以及要返回的配置信息。

hfileIn1 = getInport(cm,“三机”“StorageClass”
hfileIn1 = 'ImportFromFile'

覆盖步骤功能的默认功能名设置

前面,您将执行函数的默认函数自定义模板设置为functionFastMem,应用命名规则exFast_ $ N到为模型生成的三个步骤函数。需求指定了函数的名称周期:D2,其采样时间为1秒exFast_1sec。

将函数名设置为setFunction.函数调用指定返回的代码映射对象coder.mapping.api.get,函数的源,Periodic:D2,以及指定函数将函数名设置为的名称-值对参数exFast_1sec

setFunction(厘米,“周期:D2”“FunctionName”“exFast_1sec”

验证函数名设置

验证执行函数的更新函数名设置周期:D2用一个电话getFunction.函数调用指定返回的代码映射对象coder.mapping.api.get利息和财产的功能FunctionName

function = getFunction(cm,“周期:D2”“FunctionName”
functionName = 'exFast_1sec'

相关链接

相关的话题