发明内容
有鉴于此,本发明的目的在于提供一种指令处理方法及装置,用于对指令进行批量处理,且通过智能化配置对批量处理进行智能控制。技术方案如下:
本发明提供一种指令处理方法,所述方法包括:
获取至少一条第一指令,并在接收到预存结束指令后逐条发送所述至少一条第一指令;
在逐条发送所述至少一条第一指令的过程中获取控制指令;
在所述控制指令为禁止继续执行指令的情况下,确定所述至少一条第一指令中与所述禁止继续执行指令对应的各条第一指令,并禁止发送与所述禁止继续执行指令对应的各条第一指令;
在所述控制指令为正常执行指令的情况下,确定所述至少一条第一指令中与所述正常执行指令对应的各条第一指令,并逐条发送与所述正常执行指令对应的各条第一指令;
在所述控制指令为结束处理指令的情况下,逐条发送与各条第一指令对应的响应指令。
优选地,所述方法还包括:对于各条第一指令:获取该条第一指令的发送时间,在根据该条第一指令的发送时间和预设响应时长确定出与该条第一指令对应的响应指令超时的情况下,对与该条第一指令对应的响应指令进行超时处理。
优选地,所述第一指令为近场测试指令,所述响应指令为近场测试响应结果指令,且基于所述第一指令的获取顺序将第一指令逐条存储在第一指令序列中,基于所述响应指令的接收顺序将响应指令逐条存储在第二指令序列中;
所述在所述控制指令为禁止继续执行指令的情况下,确定所述至少一条第一指令中与所述禁止继续执行指令对应的各条第一指令包括:在所述控制指令为禁止继续执行指令的情况下,确定在获取到所述禁止继续执行指令后所述第一指令序列中剩余的各条第一指令为与所述禁止继续执行指令对应的各条第一指令;
所述在所述控制指令为正常执行指令的情况下,确定所述至少一条第一指令中与所述正常执行指令对应的各条第一指令包括:在所述控制指令为正常执行指令的情况下,确定在获取到所述正常执行指令后所述第一指令序列中剩余的各条第一指令为与所述正常执行指令对应的各条第一指令。
优选地,所述第一指令序列以链表形式存储第一指令,所述第二指令序列以链表形式存储响应指令,且每获取一条第一指令扩展所述第一指令序列的存储空间来存储所获取的该条第一指令,对于各条第一指令:该条第一指令在所述第一指令序列中的位置和与该条第一指令对应的响应指令在所述第二指令序列中的位置一致。
优选地,所述方法还包括:在所述控制指令为正常执行指令的情况下,扩展所述第二指令序列中的存储空间,所述扩展后的存储空间用于存储在所述正常执行指令后获取到的响应指令;
在所述控制指令为禁止继续执行指令的情况下,禁止扩展所述第二指令序列中的存储空间。
优选地,所述方法还包括:在获取到释放指令的情况下,丢弃所述第一指令序列中的各条第一指令和所述第二指令序列中的各条响应指令。
本发明还提供一种指令处理装置,所述装置包括:获取单元、控制单元和发送单元;
所述获取单元,用于获取至少一条第一指令,以及在所述发送单元逐条发送所述至少一条第一指令的过程中获取控制指令;
所述控制单元,用于在接收到预存结束指令后控制所述发送单元逐条发送所述至少一条第一指令;
以及用于在所述控制指令为禁止继续执行指令的情况下,确定所述至少一条第一指令中与所述禁止继续执行指令对应的各条第一指令,并控制所述发送单元禁止发送与所述禁止继续执行指令对应的各条第一指令;
以及用于在所述控制指令为正常执行指令的情况下,确定所述至少一条第一指令中与所述正常执行指令对应的各条第一指令,并控制所述发送单元逐条发送与所述正常执行指令对应的各条第一指令;
以及用于在所述控制指令为结束处理指令的情况下,控制发送单元逐条发送与各条第一指令对应的响应指令。
优选地,所述获取单元,还用于对于各条第一指令:获取该条第一指令的发送时间;
所述控制单元,还用于在根据该条第一指令的发送时间和预设响应时长确定出与该条第一指令对应的响应指令超时的情况下,对与该条第一指令对应的响应指令进行超时处理;
或者
所述第一指令为近场测试指令,所述响应指令为近场测试响应结果指令,且基于所述第一指令的获取顺序将第一指令逐条存储在第一指令序列中,基于所述响应指令的接收顺序将响应指令逐条存储在第二指令序列中,且所述第一指令序列以链表形式存储第一指令,所述第二指令序列以链表形式存储响应指令,且每获取一条第一指令扩展所述第一指令序列的存储空间来存储所获取的该条第一指令,对于各条第一指令:该条第一指令在所述第一指令序列中的位置和与该条第一指令对应的响应指令在所述第二指令序列中的位置一致;
所述控制单元,具体用于在所述控制指令为禁止继续执行指令的情况下,确定在获取到所述禁止继续执行指令后所述第一指令序列中剩余的各条第一指令为与所述禁止继续执行指令对应的各条第一指令;
以及具体用于在所述控制指令为正常执行指令的情况下,确定在获取到所述正常执行指令后所述第一指令序列中剩余的各条第一指令为与所述正常执行指令对应的各条第一指令;
所述控制单元,还用于在所述控制指令为正常执行指令的情况下,扩展所述第二指令序列中的存储空间,所述扩展后的存储空间用于存储在所述正常执行指令后获取到的响应指令,以及在所述控制指令为禁止继续执行指令的情况下,禁止扩展所述第二指令序列中的存储空间。
本发明还提供一种存储介质,所述存储介质上存储有程序,所述程序执行时实现上述指令处理方法。
本发明还提供一种处理器,所述处理器用于运行程序,其中所述程序运行时执行上述指令处理方法。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
藉由上述技术方案,在获取至少一条第一指令后,若接收到预存结束指令则逐条发送至少一条第一指令,实现对第一指令的批量处理,并且在逐条发送第一指令过程中根据获取到的控制指令对第一指令或第一指令对应的响应指令进行不同处理,如在控制指令为禁止继续执行指令的情况下,确定至少一条第一指令中与禁止继续执行指令对应的各条第一指令,从而禁止发送与禁止继续执行指令对应的各条第一指令;在控制指令为正常执行指令的情况下,确定至少一条第一指令中与正常执行指令对应的各条第一指令,并从而逐条发送与正常执行指令对应的各条第一指令,这样就可以通过智能化配置控制指令的方式来控制第一指令的智能发送,实现对第一指令的批量处理的智能控制;在控制指令为结束处理指令的情况下,逐条发送与各条第一指令对应的响应指令,实现对响应指令的批量处理。
具体实施方式
在现有技术中,中转设备在终端之间进行指令透传时均采用单一指令处理方式,即中转设备连接在第一终端和第二终端之间,第一终端将第一指令发送给中转设备,由中转设备将第一指令发送给第二终端,第二终端基于第一指令,得到与第一指令对应的响应指令,并发送响应指令至中转设备,由中转设备发送响应指令至第一终端,而第一终端在接收到响应指令后再次发送其他第一指令,也就是说在完成对一条第一指令的响应后才能够处理其他第一指令,使得中转设备不能对第一指令和响应指令进行批量处理,进而无法对批量处理进行智能控制。
为此本发明实施例提供一种指令处理方法,应用于中转设备中,以实现对第一指令和响应指令进行批量处理,并对批量处理进行智能控制。其中本发明实施例提供的指令处理方法基于的***架构图如图1所示,可以包括:第一终端11、中转设备12和第二终端13,中转设备12用于对第一终端11和第二终端13之间的指令进行透传。
以第一终端11为PC(Personal Computer)端,中转设备12为ARM平台,第二终端13为FPGA(Field Programmable Gate Array,现场可编程门阵列)端,ARM平台是以英国Advanced RISC Machines公司的内核芯片作为处理器,同时附加其他***功能的嵌入式开发平台,PC端发送第一指令至ARM平台,如近场测试指令(用于进行近场测试),ARM平台在PC端发送多条第一指令后,再将这多条第一指令逐条发送给FPGA端,由FPGA端返回第一指令对应的响应指令,如近场测试响应结果指令(用于表示近场测试的结果)至ARM平台,ARM平台在接收到多条近场测试响应结果指令后逐条发送近场测试响应结果至PC端。
其中,ARM平台和PC端可以采用1Gbit/s的以太网通信,并在通信过程中可以基于UDP(User Datagram Protocol,用户数据包协议)进行通信,之所以使用1Gbit/s的以太网通信是:1Gbit/s的以太网速度和带宽上完全可以满足PC端和FPGA端的测试要求,且使用以太网通信可以提升数据传输速率,同时目前PC端均有以太网的通信接口,采用以太网口通信可以增加设备的适用性。而ARM平台和FPGA端可以采用串口通信,如采用Xilinx zynq7000芯片自带的5Mbit/s的内部串口,这样就无需搭配多余的外设接口,节约成本,同时也增强设备的稳定性。
对于ARM平台等中转设备对第一指令和响应指令的控制过程结合下述流程图进行详细说明。
请参阅图2,其示出了本发明实施例提供的指令处理方法的一种流程图,阐述中转设备对第一指令和响应指令的控制过程,具体的可以包括以下步骤:
201:获取至少一条第一指令,并在接收到预存结束指令后逐条发送至少一条第一指令。
在本发明实施例中,每获取到一条第一指令,则将第一指令存储在第一指令序列中,且第一指令序列的存储空间根据获取到的第一指令进行扩展,即每获取一条第一指令则扩展第一指令序列的存储空间来存储所获取的该条第一指令。如第一指令序列当前的存储空间中存储有第一条至第i条第一指令,且第一指令序列当前的存储空间与第一条至第i条第一指令所需空间对应,在获取到第i+1条第一指令后,第一指令序列扩展出存储第i+1条第一指令所需的空间,并将第i+1条第一指令存储在扩展出的空间中,i为大于等于1的自然数,并且基于第一指令的获取顺序将第一指令逐条存储在第一指令序列中,如第i+1条第一指令存储在第i条第一指令之后。
其中,第一指令序列可以以链表形式存储第一指令,且第一指令序列对应有两个指针,分别是:链表地址指针和数据存储指针,链表地址指针用于指向下一个链表的地址,以将两个链表连接起来;而数据存储指针是预留数据的接口指针,用于指向二次开发所需数据的存储地址,达到基于数据存储指针调用二次开发所需数据的目的。
在本发明实施例中,第一指令序列的存储方式如图3所示,在第一指令序列中存储有但不限于有:执行命令类型(Commandtype)、错误是否继续指令(Error_continue)、4位指令数据(Para1~Para4)及预留数据存储位(*data)。
其中,执行命令类型的数据长度为U8(unsigned char 8,8位宽无符号短整型);错误是否继续指令的长度为U32(unsigned char 32,32位宽无符号短整型);4位指令数据的长度为U32(unsigned char 32,32位宽无符号短整型);预留数据存储位为数据存储指针。
与现有近场测试指令相对比来说,在现有近场测试指令的基础上第一指令序列中增加了错误是否继续指令和预留数据存储位,错误是否继续指令用于对第一指令序列中的第一指令的批量处理进行智能控制(后续步骤详细介绍),而预留数据存储位则是用于二次开发调用,对于执行命令类型与4位指令数据来说,其与现有近场测试指令相同,用于发送给FPGA端进行测试,如发送给FPGA端进行PICC(Proximity Card or Object)或PCD(Proximity Coupling Device)测试的测试数据,进而实现单一接口可对应多套数据结构的功能,降低FPGA端的数据识别的复杂度。
而预存结束指令用于指示需要批处理的第一指令均存储在第一指令序列的情况下获得,其用于触发将第一指令序列中的各条第一指令逐条发送。
202:在逐条发送至少一条第一指令的过程中获取控制指令。
在逐条发送至少一条第一指令的过程中,还接收第一指令对应的响应指令,如第一指令为近场测试指令,则在发送近场测试指令过程中,还可以接收到之前发送的近场测试指令对应的近场测试结果响应指令。
在本发明实施例中,响应指令存储在第二指令序列中,且第二指令序列的存储空间根据接收到的响应指令进行扩展,即每接收到一条响应指令则扩展第二指令序列的存储空间来存储所接收到的该条响应指令。如第二指令序列当前的存储空间中存储有第一条至第i条响应指令,且第二指令序列当前的存储空间与第一条至第i条响应指令所需空间对应,在接收到第i+1条响应指令后,第二指令序列扩展出存储第i+1条响应指令所需的空间,并将第i+1条响应指令存储在扩展出的空间中,i为大于等于1的自然数,并且基于响应指令的接收顺序将响应指令逐条存储在第二指令序列中,如第i+1条响应指令存储在第i条响应指令之后。
其中,第二指令序列可以以链表形式存储响应指令,并且对于各条第一指令和第一指令对应的响应指令来说,一条第一指令在第一指令序列中的位置和与这一条第一指令对应的响应指令在第二指令序列中的位置一致,如图4所示。而对于第二指令序列中的数据格式可以参阅图5所示,包括但不限于:状态标志位(Error_status)、数据长度(length)和返回数据(Data[264])。
状态标志位的长度为U8(unsigned char 8,8位宽无符号短整型);数据长度的长度为U8(unsigned char 8,8位宽无符号短整型);返回数据的长度为U8(unsigned char 8,8位宽无符号短整型);状态标志位用于标识相应数据的状态类型,如标识相应数据为正常数据或异常数据,具体的,若状态标志位为0,则指示相应数据为正常数据,若状态标志位为1,则相应数据为异常数据,异常数据包括但不限于超时的数据或校验错误的数据。数据长度用于标识返回数据的长度;返回数据用于存储需要转发的数据,如响应指令为近场测试结果响应指令的情况下,返回数据可以是与测试响应结果相关的数据,如上述正常数据或异常数据等。
并且在逐条发送至少一条第一指令的过程中,需要获取控制指令来对第一指令的发送进行智能控制。而在基于控制指令控制第一指令的发送时还需要结合响应指令,具体请参阅下述步骤的描述。
在这里需要说明的一点是:第一指令序列和第二指令序列的存储空间是根据指令来动态扩展,实现在存储空间上的动态控制,达到了存储空间的动态使用,这样可以大大提高运行效率,提升控制的快捷化和智能化。
203:在控制指令为禁止继续执行指令的情况下,确定至少一条第一指令中与禁止继续执行指令对应的各条第一指令,并禁止发送与禁止继续执行指令对应的各条第一指令。
具体的,在第二指令序列中的返回数据为异常数据,且第一指令序列中的错误是否继续指令表示错误不再继续的情况下,表示得到的控制指令为禁止继续执行指令,此时则需要禁止发送与禁止继续执行指令对应的各条第一指令。
确定与禁止继续执行指令对应的各条第一指令的过程可以是:确定在获取到禁止继续执行指令后第一指令序列中剩余的各条第一指令为与禁止继续执行指令对应的各条第一指令。
如在获取到禁止继续执行指令后,第一指令序列中剩余的各条第一指令为第i条第一指令至第N条第一指令(N为第一指令序列中的第一指令的总条数),则可以将第i条第一指令至第N条指令确定为与禁止继续执行指令对应的各条第一指令。
204:在控制指令为正常执行指令的情况下,确定至少一条第一指令中与正常执行指令对应的各条第一指令,并逐条发送与正常执行指令对应的各条第一指令。
具体的,在第二指令序列中的返回数据为异常数据,且第一指令序列中的错误是否继续指令表示错误仍继续的情况下,表示得到的控制指令为正常执行指令,此时则需要禁止发送与正常执行指令对应的各条第一指令。
确定与正常执行指令对应的各条第一指令的过程可以是:确定在获取到正常执行指令后第一指令序列中剩余的各条第一指令为与正常执行指令对应的各条第一指令。
如在获取到正常执行指令后,第一指令序列中剩余的各条第一指令为第i条第一指令至第N条第一指令(N为第一指令序列中的第一指令的总条数),则可以将第i条第一指令至第N条指令确定为与正常执行指令对应的各条第一指令。
对于错误是否继续指令来说,其表示错误不再继续或表示错误仍继续的方式是通过错误是否继续指令的标识来确定,如错误是否继续指令的标识为0,则说明错误是否继续指令表示错误不再继续,此时禁止发送第一指令;若错误是否继续指令的标识为1,则说明错误是否继续指令表示错误仍继续,此时继续发送第一指令。
从上述可知,通过第一指令序列中的错误是否继续指令和第二指令序列中的状态标识位的联动判断,实现对第一指令序列和第二指令序列的指令的智能控制,如通过错误是否继续指令和状态标识位(表示返回数据为正常数据还是异常数据)的联动判断,实现对第一指令序列的发送的智能控制,相对于现有单一指令发送需要人为判断是否继续发送指令的方式来说,实现控制自动化和智能化。且在禁止发送第一指令的情况下可以节省指令的处理时间和节省第二指令序列的存储空间,并且这种智能控制还可以提前确定出第二指令序列中的异常数据,减轻了透传数据至接收方后接收方解调数据的压力。
此外本发明实施例中第二指令序列的存储空间的扩展与控制指令也相关,如在控制指令为正常执行指令的情况下,扩展第二指令序列中的存储空间;在控制指令为禁止继续执行指令的情况下,禁止扩展第二指令序列中的存储空间。具体的在第二指令序列中的返回数据为异常数据,且控制指令为正常执行指令的情况下,扩展第二指令序列中的存储空间;在第二指令序列中的返回数据为异常数据,且控制指令为禁止继续执行指令的情况下,禁止扩展第二指令序列中的存储空间。若第二指令序列中的返回数据为正常数据,则正常发送各条第一指令并扩展第二指令序列中的存储空间。
205:在控制指令为结束处理指令的情况下,逐条发送与各条第一指令对应的响应指令。
在本发明实施例中,控制指令为结束处理指令有两种情况,一种情况是:在控制指令为禁止继续执行指令的情况下,禁止发送各条第一指令,说明完成对第一指令序列中的第一指令的处理,此时禁止继续执行指令还可以作为结束处理指令,在这种情况下,逐条发送第二指令序列中存储的与各条第一指令(此处的各条第一指令为正常发送的而非禁止继续执行指令后未发送的第一指令)对应的响应指令。
另一种情况是:在控制指令为正常执行指令的情况下,或者在响应指令表示返回数据为正常数据的情况下,第一指令序列中的各条第一指令均会逐条发送出,因此在检测到第一指令序列中的各条第一指令发送出时获取到结束处理指令,在这种情况下,逐条发送第二指令序列中存储的与各条第一指令(此处的各条第一指令为第一指令序列中的所有第一指令)对应的响应指令。
从上述技术方案可知,在获取至少一条第一指令后,若接收到预存结束指令则逐条发送至少一条第一指令,实现对第一指令的批量处理,并且在逐条发送第一指令过程中根据获取到的控制指令对第一指令或第一指令对应的响应指令进行不同处理,如在控制指令为禁止继续执行指令的情况下,确定至少一条第一指令中与禁止继续执行指令对应的各条第一指令,从而禁止发送与禁止继续执行指令对应的各条第一指令;在控制指令为正常执行指令的情况下,确定至少一条第一指令中与正常执行指令对应的各条第一指令,并从而逐条发送与正常执行指令对应的各条第一指令,这样就可以通过智能化配置控制指令的方式来控制第一指令的智能发送,实现对第一指令的批量处理的智能控制;在控制指令为结束处理指令的情况下,逐条发送与各条第一指令对应的响应指令,实现对响应指令的批量处理。
此外,本发明实施例还可以对指令进行其他智能控制,如本发明实施例提供的指令处理方法还可以对指令进行超时控制,如对于各条第一指令:获取该条第一指令的发送时间,在根据该条第一指令的发送时间和预设响应时长确定出与该条第一指令对应的响应指令超时的情况下,对与该条第一指令对应的响应指令进行超时处理。
其中,第一指令的发送时间可以从定时器中获取,对于定时器如何得到时间本实施例不再阐述。并且判断响应指令是否超时的一种可行方式是:以第一指令的发送时间为开始时间,若在开始时间之后的一段时间,如在开始时间之后的预设响应时长是否接收到响应指令,如果没有接收到,说明响应指令超时;如果接收到,说明响应指令未超时,未超时的响应指令则会基于其对应的第一指令的发送时间在第二指令序列中自动排队。
对于超时的响应指令,无论响应指令中的返回数据是否正确都将舍弃返回数据,而在第二指令序列中该响应指令对应的存储空间记录超时标识(如数据0x64),并将状态标志位置为1。
从上述技术方案可知,基于第一指令的发送时间和预设响应时长实现精确时间控制,在基于第一指令的发送时间和预设响应时长确定响应指令超时的情况下,实现对响应指令的智能控制,且未超时的响应指令可以基于各自对应的第一指令的发送时间在第二指令序列中自动排队。
在上述实施例基础上,本发明实施例提供的指令处理方法还可以包括步骤:在获取到释放指令的情况下,丢弃第一指令序列中的各条第一指令和第二指令序列中的各条响应指令。其中,释放指令表示第二指令序列中的响应指令均已发送,此时可以丢弃第一指令序列中的各条第一指令和第二指令序列中的各条响应指令,以释放第一指令序列和第二指令序列的存储空间。
与上述方法实施例相对应,本发明实施例还提供一种指令处理方法,其结构示意图如图6所示,可以包括:获取单元11、控制单元12和发送单元13。
获取单元11,用于获取至少一条第一指令。在本发明实施例中,获取单元11每获取到一条第一指令,则将第一指令存储在第一指令序列中,且第一指令序列的存储空间根据获取到的第一指令进行扩展,即每获取一条第一指令则扩展第一指令序列的存储空间来存储所获取的该条第一指令,且基于第一指令的获取顺序将第一指令逐条存储在第一指令序列中。
其中,第一指令序列可以以链表形式存储第一指令,且第一指令序列对应有两个指针,分别是:链表地址指针和数据存储指针,链表地址指针用于指向下一个链表的地址,以将两个链表连接起来;而数据存储指针是预留数据的接口指针,用于指向二次开发所需数据的存储地址,达到基于数据存储指针调用二次开发所需数据的目的。在本发明实施例中,第一指令序列的存储方式如图3所示,在第一指令序列中存储有但不限于有:执行命令类型(Commandtype)、错误是否继续指令(Error_continue)、4位指令数据(Para1~Para4)及预留数据存储位(*data),对各个字段的介绍请参阅方法实施例中的相关说明,对此本实施例不再阐述。
控制单元12,用于在接收到预存结束指令后控制发送单元13逐条发送至少一条第一指令。其中预存结束指令用于指示需要批处理的第一指令均存储在第一指令序列的情况下获得,其用于触发发送单元13将第一指令序列中的各条第一指令逐条发送。并且在发送单元13逐条发送至少一条第一指令的过程中获取单元11获取控制指令。
相对应的,控制单元12可以根据控制指令的不同执行不同处理,如下列举几种控制指令下控制单元12的处理方式:
一种:控制单元12在控制指令为禁止继续执行指令的情况下,确定至少一条第一指令中与禁止继续执行指令对应的各条第一指令,并控制发送单元13禁止发送与禁止继续执行指令对应的各条第一指令。其中确定与禁止继续执行指令对应的各条第一指令的过程可以是:确定在获取到禁止继续执行指令后第一指令序列中剩余的各条第一指令为与禁止继续执行指令对应的各条第一指令。
另一种:控制单元12在控制指令为正常执行指令的情况下,确定至少一条第一指令中与正常执行指令对应的各条第一指令,并控制发送单元13逐条发送与正常执行指令对应的各条第一指令。确定与正常执行指令对应的各条第一指令的过程可以是:确定在获取到正常执行指令后第一指令序列中剩余的各条第一指令为与正常执行指令对应的各条第一指令。
再一种:控制单元12在控制指令为结束处理指令的情况下,控制发送单元13逐条发送与各条第一指令对应的响应指令。
对于控制单元12如何识别控制指令为哪条指令,请参阅方法实施例中的相关说明。在本发明实施例中,响应指令存储在第二指令序列中,且第二指令序列的存储空间根据接收到的响应指令进行扩展,即每接收到一条响应指令则扩展第二指令序列的存储空间来存储所接收到的该条响应指令,且基于响应指令的接收顺序将响应指令逐条存储在第二指令序列中。
具体的,控制单元12,具体用于在控制指令为禁止继续执行指令的情况下,确定在获取到禁止继续执行指令后第一指令序列中剩余的各条第一指令为与禁止继续执行指令对应的各条第一指令;以及具体用于在控制指令为正常执行指令的情况下,确定在获取到正常执行指令后第一指令序列中剩余的各条第一指令为与正常执行指令对应的各条第一指令。
其中,第二指令序列可以以链表形式存储响应指令,并且对于各条第一指令和第一指令对应的响应指令来说,一条第一指令在第一指令序列中的位置和与这一条第一指令对应的响应指令在第二指令序列中的位置一致,如图4所示。而对于第二指令序列中的数据格式可以参阅图5所示,包括但不限于:状态标志位(Error_status)、数据长度(length)和返回数据(Data[264]),具体请参阅方法实施例中相关说明,对此本实施例不再阐述。
从上述技术方案可知,在获取至少一条第一指令后,若接收到预存结束指令则逐条发送至少一条第一指令,实现对第一指令的批量处理,并且在逐条发送第一指令过程中根据获取到的控制指令对第一指令或第一指令对应的响应指令进行不同处理,如在控制指令为禁止继续执行指令的情况下,确定至少一条第一指令中与禁止继续执行指令对应的各条第一指令,从而禁止发送与禁止继续执行指令对应的各条第一指令;在控制指令为正常执行指令的情况下,确定至少一条第一指令中与正常执行指令对应的各条第一指令,并从而逐条发送与正常执行指令对应的各条第一指令,这样就可以通过智能化配置控制指令的方式来控制第一指令的智能发送,实现对第一指令的批量处理的智能控制;在控制指令为结束处理指令的情况下,逐条发送与各条第一指令对应的响应指令,实现对响应指令的批量处理。
此外,本发明实施例还可以对指令进行其他智能控制,如本发明实施例提供的指令处理装置还可以对指令进行超时控制,如对于各条第一指令:获取单元11获取该条第一指令的发送时间,控制单元12在根据该条第一指令的发送时间和预设响应时长确定出与该条第一指令对应的响应指令超时的情况下,对与该条第一指令对应的响应指令进行超时处理。
其中,第一指令的发送时间可以从定时器中获取,对于定时器如何得到时间本实施例不再阐述。并且判断响应指令是否超时的一种可行方式是:以第一指令的发送时间为开始时间,若在开始时间之后的一段时间,如在开始时间之后的预设响应时长是否接收到响应指令,如果没有接收到,说明响应指令超时;如果接收到,说明响应指令未超时,未超时的响应指令则会基于其对应的第一指令的发送时间在第二指令序列中自动排队。
对于超时的响应指令,无论响应指令中的返回数据是否正确都将舍弃返回数据,而在第二指令序列中该响应指令对应的存储空间记录超时标识(如数据0x64),并将状态标志位置为1。
从上述技术方案可知,基于第一指令的发送时间和预设响应时长实现精确时间控制,在基于第一指令的发送时间和预设响应时长确定响应指令超时的情况下,实现对响应指令的智能控制,且未超时的响应指令可以基于各自对应的第一指令的发送时间在第二指令序列中自动排队。
在上述实施例基础上,本发明实施例提供的指令处理装置中控制单元12还用于在获取到释放指令的情况下,丢弃第一指令序列中的各条第一指令和第二指令序列中的各条响应指令。其中,释放指令表示第二指令序列中的响应指令均已发送,此时可以丢弃第一指令序列中的各条第一指令和第二指令序列中的各条响应指令,以释放第一指令序列和第二指令序列的存储空间。
本发明还提供一种存储介质,存储介质上存储有程序,程序执行时实现上述指令处理方法。
本发明还提供一种处理器,处理器用于运行程序,其中程序运行时执行上述指令处理方法。
对于上述装置和存储介质中各个步骤的实施过程以及解释等请参阅上述方法实施例中的相关说明,对此本发明实施例不再阐述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。