系统进入解释器模式后,允许编程人员在任务运行时发送并插队运行脚本语句,只需要脚本语句为有效的python语句即可,用户可以将脚本语句通过30020端口,发送到控制器,控制器解收之后,会根据当前的状态,对语句进行编译运行。发送到30020端口的脚本语句,会已队列的方式存储在控制软件内部,并按顺序执行,脚本语句必须为单行语句,并以\n作为结束符,如 set_tcp([0,0,0,0,0,0])\n
。
解释器模式接收到可执行的脚本语句后,将会通过返回以下格式信息,告知客户端。ack: <id>: <statements>
id为接受的语句被分配的唯一id,后续的一些状态命令字返回值,会以该id信息返回。
如果任务未处于运行状态,或脚本语句发生编译错误,解释器会返回命令抛弃信息以及抛弃原因,格式如下。discard: <reason>: <statement>
解释器模式的脚本命令均为标准python脚本函数,可以任务中或者解释器脚本队列中排队等待调用。
interpreter_mode(clearQueueOnEnter = True, clearOnEnd = True)
end_interpreter()
interpreter_mode
函数会退出,该函数可以在任务的子线程中调用,也可以通过30020,发送到解释器模式中,在脚本队列中等待调用。clear_interpreter()
解释器模式的关键字命令,为非python脚本函数,此类命令会在接收到后,马上被执行,不会进入脚本队列等待执行。
skipbuffer
statelastexecuted
state: <id>: statelastexecuted
statelastinterpreted
state: <id>: statelastinterpreted
statelastcleared
该命令会返回最后的被清除(调用clear_interpreter
或解释器模式退出)的命令id,返回格式如下:state: <id>: statelastcleared
stateunexecuted
该命令会返回当前队列中还未执行的脚本命令(已skipbuffer的命令不会计数在内),返回格式如下:state: <#unexecuted>: stateunexecuted