用户自定义功能的封装

需求

  • 自定义应用Api用于实现特定的功能
  • 支持参数调整
  • 应用api运行在控制器端

理解

  • 对应用过程进行抽象
  • 流程是固定的,但流程中进行的内容是不一样的
  • “瓶子是固定的,但瓶子可以装水也可以装酒...”

实现--I

用户自定义功能的封装_第1张图片
image.png

用户开发script

  • 一个script就是一个完整的py文件
  • script可以带有输入
  • 在script中进行流程实现
  • 用户script的重点是流程
  • MISA的重点是设备控制


    用户自定义功能的封装_第2张图片
    image.png

将这个调试好的script放置到 控制器的 script目录中

  • 调试时可以直接在PC上进行


    用户自定义功能的封装_第3张图片
    image.png
  • 通过控制器UI或FTP导入用户script

在应用开发中使用rpc调用

用户自定义功能的封装_第4张图片
image.png

用户需要做什么?

  1. 调试开发自定义的script(不限语言,推荐python)
  2. 部署script到MEGAROBO Controller(直接拷贝)
  3. 在用户App中调用自定义的script

得到返回数值

  • main 中调用 sys.exit( n ) 返回
    • 注意: sys.exit() 只能在 __main__ 中进行调用
if __name__=="__main__":
    sys.exit( 100 )

在app中得到返回值

  • rpq
rpq "python G:\work\mc\develope\installer\package\script\demo_motor.py"
"finished,100"
  • 系统错误码:
    -1: 进程执行错误
    -2: 进程创建失败

附:具体的例子

if __name__=="__main__":
    mgr = DevMgr( ip="192.168.1.183" )
    print( mgr.IDN )
    cmd = r"python /home/megarobo/study/package/script/demo_motor.py 1000 5 -1000 5"
    mgr.rpc( cmd )
    print( mgr.rpwaitEnd( cmd ) )

    print( mgr.rpq( cmd ) )
  • 创建DevMgr时填写了IP参数,表示需要进行远程调用
  • cmd为远程设备中的脚本路径
  • rpc
  • 等待调用结束


    用户自定义功能的封装_第5张图片
    image.png

你可能感兴趣的:(用户自定义功能的封装)