2026a

# 如何快速开发 APP


本文以 Syslab 平台自带的 APP 曲线拟合工具为例,介绍如何快速开发 APP。

# 曲线拟合 APP 介绍

下面以 Syslab 平台自带的 APP 曲线拟合工具为例,讲述开发和使用 APP 的方法。曲线拟合 APP 提供了一个灵活的界面,您可以在其中使用拟合算法来交互拟合数据并查看曲线图。

曲线拟合工具

# APP 开发测试打包

如果您要自己开发 APP,请参考综合案例介绍

# APP 安装使用

Syslab 平台提供可视化管理命令式管理两种方式,都可以实现对 APP 的安装和使用。

# 可视化管理

Syslab 提供 APP 可视化管理功能,支持安装、启动、编辑、卸载 APP 等功能,APP 管理入口位于工具栏 Ribbon 的 APP 菜单页。

  1. APP 管理入口

    Syslab 的 APP 管理入口,位于工具栏 Ribbon 的 APP 菜单页,提供 APP 管理的快捷操作。位置如下图:

    app管理入口

    APP 的 Ribbon 面板主要由两部分组成:

    • 安装 APP:APP 安装入口。单击按钮,弹出安装 APP 对话框,填写 APP 的相关配置项,单击确定,即可安装 APP 到 APP 展示区。
    • APP 展示区:APP 启动入口。展示 Syslab 内置 APP 和用户自定义安装的 APP,单击 APP 图标,即可启动 APP。单击最右侧的下拉箭头,弹出下拉面板,显示所有已安装的 APP。
  2. 安装 APP

    Syslab APP 管理提供安装 APP 功能,单击安装 APP 按钮,弹出安装 APP 对话框,填写 APP 的相关配置项,单击确定,即可安装 APP 到 APP 展示区。操作步骤如下图所示:

    安装APP4

    下述以曲线拟合工具 APP 为例,介绍如何填写安装 APP 的相关配置项。

    Syslab 中提供了曲线拟合工具 APP 示例,位于<Syslab安装路径>/Examples/10 AppDemos下,建议用户将 APP 放到统一的目录下进行管理。Syslab 提供了用户 APP 存放目录,Windows 系统位于C:/Users/Public/TongYuan/syslab-julia/Apps下;Linux 系统位于~/TongYuan/syslab-julia/Apps下。

    本节以 Windows 系统为例,在用户 APP 目录下创建Cftool文件夹,并将示例程序<Syslab 安装路径>/Examples/10 AppDemos/cpp/dist/cftool-1.0-win64.zip解压后,将内容拷贝到该文件夹下。 曲线拟合APP文件路径4 用户APP目录4

    • Cftool:Cftool APP 文件夹(内部包含示例 APP)。
    • app_default.svg:默认 APP 图标(系统提供,用户无需修改)。
    • app_info.json:用户安装 APP 的配置文件(系统提供,用户无需修改)。

# 操作步骤

  1. 打开 Syslab,Ribbon 工具栏切换至 APP 菜单页。 APP Tab页
  2. 单击安装 APP 按钮,弹出安装 APP 对话框,如图所示,编辑相关配置项。 安装APP编辑界面4
  • APP 名称(必填):当前安装 APP 的名称。
  • APP 版本号:当前安装 APP 的版本号(默认 APP 版本号为 1.0)。
  • APP 启动脚本(必填):当前 APP 的启动脚本,单击 APP 时,将在 Julia REPL 终端执行此脚本。本例中设置启动脚本为 SyslabApp.start("Cftool",2),其中:
    • SyslabApp.start:内置提供的启动 APP 命令;
    • “Cftool”:APP 的名称;
    • “2”:APP 的输入参数。针对本示例,表示 APP 启动时设置多项式指数为 2。
  • APP 可执行文件路径:当前 APP 的可执行文件的路径。
  • APP 注册函数文件路径:高级选项,启动 APP 时将执行该注册函数文件*.jl,详细用法参见控制系统设计 APP 的相关配置。
  • APP 图标:当前 APP 的图标,用户可以选择本地路径中svgjpegjpgpng格式图片,若不进行设置,则统一使用默认图标。
  • APP 作者:当前 APP 的作者。
  • APP 说明:当前 APP 的说明。
  1. 安装验证:单击确定按钮,APP 安装成功,Ribbon 面板成功添加 Cftool APP。

# 启动 APP

单击已安装的 Cftool APP,REPL 终端执行启动脚本,弹出曲线拟合工具窗口,启动 APP 成功启动APP4

# 编辑 APP

Syslab APP 管理提供编辑 APP 功能,支持对已安装 APP 的相关信息进行修改。单击 APP 面板最右侧的下拉箭头,弹出下拉面板,显示所有已安装的 APP,右击已安装的 APP,单击编辑按钮,弹出编辑 APP 对话框,支持对 APP 名称以外的 APP 信息进行修改,如修改 APP 版本号为 2.0。 编辑APP4 单击确定按钮,保存编辑内容,Ribbon 面板同步刷新,当鼠标悬停在 CftoolAPP 时,显示版本号更新为 2.0。 APP信息4

# 卸载 APP

Syslab APP 管理提供卸载 APP 功能,单击 APP 面板最右侧的下拉箭头,弹出下拉菜单,显示所有已安装的 APP,右击已安装的 APP,单击卸载按钮,选中的 APP 从面板移除删除APP4

# APP 与 Syslab 交互

  1. 在 Syslab 中导入测试数据

    曲线拟合工具示例 APP 提供了测试数据,位于<Syslab 安装路径>\Examples\10 AppDemos\cpp\CurveFitTool\test\census.jl。回到 Syslab 命令行窗口,执行导入数据的命令,示例如下:

    julia> include(raw"<Syslab安装路径>\Examples\10 AppDemos\cpp\CurveFitTool\test\census.jl")
    21-element Vector{Float64}:
      3.9
      5.3
      7.2
      9.6
      12.9
      17.1226.5
    248.7
    

    成功导入数据后,在工作区窗口中可以查看到变量的名称 cdatepop。如下图所示: 测试数据4

    cdate 为采样时间,它是一个数组,pop 为采样时间对应的数据,它也是一个数组。接下来的操作会使用到这 2 个数据。

  2. 从 Syslab 工作区获取数据

    曲线拟合工具的图形界面中,在数据区域单击更新按钮,如下图所示: 更新数据4 更新完成后,在 X 数据Y 数据对应的下拉框中,分别选择数据 cdatepop,线图控件将动态绘制拟合曲线,如下图所示: 动态绘制曲线4 您可以在多项式拟合区域,选择修改多项式指数,线图控件将动态绘制对应的新拟合曲线。 修改多项式数据4

  3. 写数据到 Syslab 工作区

    多项式拟合计算的结果包括拟合曲线的 y 值和多项式系数(p1、p2、p3...),可以将这些结果写入 Syslab 工作区。在多项式拟合区域单击导出按钮,将弹出导出对话框,如下图所示: 导出数据4 单击确定按钮,导出完成后,在 Syslab 平台的工作区中将展示上述导出的数据,如下图所示: 工作区导出的数据4 您也可以在 Syslab 命令行窗口中,执行plot()命令来绘制结果曲线图,示例如下:

    julia> plot(cdate, pop, ".", cdate, out)
    2-element Vector{PyCall.PyObject}:
    PyObject <matplotlib.lines.Line2D object at 0x00000000D1B966D0>
    PyObject <matplotlib.lines.Line2D object at 0x00000000D1B96A00>
    

    Syslab 平台中绘制的结果曲线如下图所示: Syslab中绘制的结果图4

# 命令式管理

  1. 初始化

    每次启动 Syslab 命令行窗口后,在使用 APP 前,需要执行命令init_SyslabApp(),以初始化 APP 管理的上下文环境。示例如下: julia> init_syslabapp()

  2. 安装 APP

    以 Syslab 自带的 APP 示例曲线拟合工具为例,将示例程序<Syslab 安装路径>/Examples/10 AppDemos/cpp/dist/cftool-1.0-win64.zip解压到同级目录后,安装 APP 的 julia 代码如下:

    julia> cftool_info = SyslabApp.AppInfo("cftool",
      raw"$(SYSLAB_HOME)/Examples/10 AppDemos/cpp/dist/cftool-1.0-win64/CurveFitTool.exe",
      raw"$(SYSLAB_HOME)/Examples/10 AppDemos/cpp/dist/cftool-1.0-win64/cftool.jl",
      "1.0",
      "Tongyuan",
      "曲线拟合工具")
    
    julia> SyslabApp.install(cftool_info)
    true
    

    以上 AppInfo 为 APP 的描述信息,具体属性描述如下:

    • 参数 1:APP 名称,是 APP 的主键信息,必填项;
    • 参数 2:APP 可执行文件路径,必填项;
    • 参数 3:APP 启动脚本文件,可选项;
    • 参数 4:APP 版本,可选项;
    • 参数 5:APP 作者,可选项;
    • 参数 6:APP 描述信息,可选项。

    其中,“参数 3”APP 启动脚本文件的写法如下:

    # 建议函数名与APP名称一致,函数参数由用户决定。
    function cftool(term)
    # do something
    
    # 启动APP及传入参数,该参数将作为APP启动参数
        SyslabApp.start("cftool", term)
    end
    
  3. 卸载 APP

    在 Syslab 平台的命令行窗口中,使用命令SyslabApp.uninstall(name)来卸载 APP,入参为安装 APP 时输入的参数 1:APP 名称。APP 被卸载后就无法被使用了。示例如下:

    julia> SyslabApp.uninstall("cftool")
    true
    
    julia> SyslabApp.start("cftool")
    ┌ Warning: cftool is not exist!
    └ @ SyslabApp .\scripts\packages\SyslabApp\src\SyslabApp.jl:151
    false
    
    julia> SyslabApp.get_app("cftool")
    ┌ Warning: cftool is not exist!
    └ @ SyslabApp .\scripts\packages\SyslabApp\src\SyslabApp.jl:181
    false
    
  4. 禁用 APP

    在 Syslab 平台的命令行窗口中,使用命令SyslabApp.disable(name)来禁用指定名称的 APP,入参为安装 APP 时输入的参数 1:APP 名称。APP 被禁用后无法再启动。示例如下:

    julia> SyslabApp.disable("cftool")
    true
    
    julia> cftool(3)
    ┌ Warning: cftool is disabled!
    └ @ SyslabApp .\scripts\packages\SyslabApp\src\SyslabApp.jl:156
    false
    
  5. 激活 APP

    在 Syslab 平台的命令行窗口中,使用命令SyslabApp.enable(name)来激活被禁用的 APP,入参为安装 APP 时输入的参数 1:APP 名称。APP 被激活后就可以再次启动了。示例如下:

    julia> SyslabApp.enable("cftool")
    true
    
    julia> cftool(3)
    true
    
  6. 启动 APP

    到这一步您的曲线拟合工具已经安装成功。可以使用命令SyslabApp.start("cftool")来启动该 APP。 命令启动 APP 的示例如下:

    # 方法1
    julia> SyslabApp.start("cftool", 3)
    true
    
    # 方法2:需要上一步的启动脚本文件
    julia> cftool(3)
    true
    

    以上命令(二选一)执行成功后,将启动曲线拟合工具的图形界面。

  7. 查询 APP 列表

    在 Syslab 平台的命令行窗口中,使用命令SyslabApp.get_apps()来查询注册到 Syslab 平台中的所有 APP 信息。示例如下:

    julia> SyslabApp.get_apps()
    Dict{String, Any} with 1 entry:
      "cftool" => Dict{String, Any}("registerFunc"=>"cftool", "name"=>"cftool", 
    "author"=>"Tongyuan", "enabled"=>true, "version"=>"1.0", 
    "path"=>"E:/MwSyslab/Test/Examples/10 AppDemos/x64/Debug/C…
    
  8. 查询指定 APP 信息

    在 Syslab 平台的命令行窗口中,使用命令SyslabApp.get_app(name)来查询注册到 Syslab 平台中的指定名称的 APP 信息,入参为安装 APP 时输入的参数 1:APP 名称。示例如下:

    julia> SyslabApp.get_app("cftool")
    Dict{String, Any} with 7 entries:
      "registerFunc" => "cftool"
      "name"         => "cftool"
      "author"       => "Tongyuan"
      "enabled"      => true
      "version"      => "1.0"
      "path"         => "./Test/Examples/10 AppDemos/x64/Debug/CurveFitTool.exe"
      "description"  => "曲线拟合工具箱"