1. 通道接口

1.1 通道从站发送接口

算子名称 sys.send
参数类型 参数名 参数说明
输入参数 string_t channel 通道名称,如:CANopenChannel
string_t msgId 消息类型,如:tuopan
object_t / propset_t props 消息数据
返回值 void
功能描述 用于从站模式给主站发送数据。
1. 如果是CAN总线等抢占式通道,则立即发送;
1. 如果是485等轮询通道,系统将暂存数据,等候主节点轮询时发送。
  • object_t类型消息数据用法:

    1. sys.send("CANopenChannel", "tuopan", {
    2. var1 = 1,
    3. var2 = 2.0,
    4. var3 = "str"
    5. })
  • propset_t类型消息数据用法: ```lua table = sys.propset_t({

    1. var1 = 1,

    var2 = 2.0, var3 = “str” })

table2 = sys.propset_t({ var4 = 1, var5 = 2.0, var6 = “str” })

table:append(table2)

sys.send(“CANopenChannel”, “tuopan”, table)

  1. <a name="uRw4V"></a>
  2. ## 1.2 通道主站发送接口
  3. | 算子名称 | sys.sendto | | |
  4. | --- | --- | --- | --- |
  5. | | 参数类型 | 参数名 | 参数说明 |
  6. | 输入参数 | string_t | channel | 通道名称,如:CANopenChannel |
  7. | | string_t | node | 从站节点标识 |
  8. | | string_t | msgId | 消息类型,如:tuopan |
  9. | | object_t / propset_t | props | 消息数据 |
  10. | 返回值 | void | | <br /> |
  11. | 功能描述 | 用于主站模式发送数据到指定从站。<br />1. node参数是指init.lua脚本中add_node指令指定的节点名称,而不是真实的物理地址,系统会自动将节点标识翻译成物理地址。<br /> | | |
  12. <a name="pi3Kd"></a>
  13. # 2 相机接口
  14. <a name="Ku74m"></a>
  15. ## 2.1 相机软触发接口
  16. | 算子名称 | sys.trigger_camera | | |
  17. | --- | --- | --- | --- |
  18. | | 参数类型 | 参数名 | 参数说明 |
  19. | 输入参数 | string_t | decoder | 解码器名称,如:Ifm3dDecoder |
  20. | | propset_t / string_t / nil | cameras | 相机标识 |
  21. | 返回值 | void | | <br /> |
  22. | 功能描述 | 用于主站模式发送数据到指定从站。<br />1. camera参数是指init.lua脚本中add_camera指令指定的相机标识,而不是真实的物理地址,系统会自动将相机标识转换成相机特定的连接参数。<br />1. 可指定单个相机标识,或通过{}指定多个相机标识。<br />1. 不指定相机标识时,系统将对该解码器插件下所有连接的相机进行软触发。<br /> | | |
  23. 用法举例:
  24. ```lua
  25. function main(node, props)
  26. if props::has("Tuppan_Enable") then -- 收到触发信号
  27. -- trigger camera
  28. sys.trigger_camera("Ifm3dDecoder") -- 触发所有相机
  29. sys.trigger_camera("Ifm3dDecoder", "lft_") -- 触发1个相机
  30. sys.trigger_camera("Ifm3dDecoder", { "lft_", "rgt_" }) -- 触发2个相机
  31. end
  32. return 0
  33. end

3 数据缓存接口

3.1 写缓存接口

算子名称 sys.set_cache
参数类型 参数名 参数说明
输入参数 string_t key 解码器名称,如:Ifm3dDecoder
object_t value 缓存数据
返回值 propset_t props 缓存数据返回
功能描述 暂时缓存数据,用于在多个脚本处理过程中,后续脚本使用,如第1个相机处理完左半边数据,暂存到缓存中,等第2个相机处理完有半边数据后,再取出左半边数据,合并处理后得出后续结果。

示例脚本:

  1. if camera == "lft_" then
  2. Left = sys.set_cache("Left", {
  3. LeftTopX = upleg_pos.OBB_position.x * 1000,
  4. LeftTopY = upleg_pos.OBB_position.y * 1000,
  5. LeftTopZ = upleg_pos.OBB_position.z * 1000,
  6. LeftTopFlags = 0,
  7. })
  8. Right = sys.get_cache("Right")
  9. end
  10. if camera == "rgt_" then
  11. Left = sys.get_cache("Left")
  12. Right = sys.set_cache("Right", {
  13. RightTopX = upleg_pos.OBB_position.x * 1000,
  14. RightTopY = upleg_pos.OBB_position.y * 1000,
  15. RightTopZ = upleg_pos.OBB_position.z * 1000,
  16. RightTopFlags = 0,
  17. })
  18. end
  19. if Left.empty then
  20. Left = sys.propset_t({
  21. LeftTopX = 0,
  22. LeftTopY = 0,
  23. LeftTopZ = 0,
  24. LeftTopFlags = 0,
  25. })
  26. end
  27. if Right.empty then
  28. Right = sys.propset_t({
  29. RightTopX = 0,
  30. RightTopY = 0,
  31. RightTopZ = 0,
  32. RightTopFlags = 0,
  33. })
  34. end
  35. data = sys.propset_t()
  36. data:append(Left)
  37. data:append(Right)