停车牌停车时间判定 Lua Sample(api 0.2)¶
1. 包资源¶
目前 Lua zip 包结构如下,(压缩 zip 包时确保顶级目录如上图所示,不要针对整个目录压缩),其中:

debug_server: 包含一些 lua 调试工具,可忽略。
lua_path :包含了需要一些第三方的 Lua 库
luac_path :包含了一些用 C 实现的 Lua 库,这些都可以由开发者自行扩展
main.lua :Lua 包的入口文件,请不要更改上述文件及目录名。
stop_sign.xodr :是一个包含停车标志的地图,这个 Lua 判定包要完成的功能就是判断车辆是否在停车牌 10 米范围内合法车道上停车了大于 3 秒的时间。
更详细的规则是:
在离开停车牌区域的时候,判断是否有过在区域内停车超过3秒,如果有,没事,如果没有,报错。
2. 代码注释¶
# 下方代码完成引用路径的设置,不用更改。

# 设置一些案例配置。

# on_init 函数会在案例载入时执行,完成初始化工作,目前只是检查 lua api 版本是否相符。

# on_loop 函数每一帧都会被调用,C++会将 当前车辆列表(vehicles),上一帧的车辆列表(pre_vehicles),主车 id(main_id) 都传入进来。

# 案例结束时调用,可以为空。
32 行 判断主车是否在标志牌区域内
36 行 获取当前是否是停止状态
37 行 设置了一个内置变量,值是 “处于停车牌内并且是停车状态”
38 行 stopped_time 值就是 维持 “处于停车牌内并且是停车状态” 变量为真的时间长度,也就是 在区域内停车了多久
42- 44 行 如果时间足够长,设置案例成功
46 - 47 行 检测”in_region” 是否由真变假了,也就是判断离开停车牌区域的时机。
48 - 54 行 如果离开的时候,案例成功了,就返回成功,否则返回失败。如果还 没离开区域,还不知道是否成功,则返回 simone.PENDING, 表示结果还未知。
