一种带脚本解析的液路控制语言系统及构建方法
技术领域
本发明涉及医学检验体外诊断仪器的液路控制
技术领域
,尤其涉及一种带脚本解析的液路控制语言系统及构建方法。背景技术
血液分析仪,特定蛋白分析仪、生化分析仪是临床检验中经常使用的重要分析仪器,它通过对血液或者其他体液的分析来测定各种生化指标,并结合其他临床资料,进行综合分析,可以帮助诊断疾病,对器官功能做出评价,决定今后治疗基准等。
传统的仪器控制软件在开发过程中的更新通常是在增加、修改、删除功能时,需要在开发工具中修改代码后重新编译生成目标机可运行程序,通过工具下载到目标机运行。仪器在研发和实际运行过程中需要对仪器液路部件,比如阀、泵等进行控制。在研发的过程中需要液路开发工程师等非软件人员进行调试,将参数告诉软件开发人员,软件开发人员重新构建、编译软件,将软件更新到目标机以便液路开发工程师进行再次调试,给仪器液路部件在后续的实时调试和操作参数更新带来不便。
发明内容
本发明的目的在于提供一种带脚本解析的液路控制语言系统及构建方法,提高仪器液路部件在后续的实时调试和操作参数更新的便利性。
为实现上述目的,第一方面,本发明提供了一种带脚本解析的液路控制语言系统构建方法,包括:
获取液路部件的基本信息,定义控制语句语法,得到控制协议文档;
对所述控制协议文档语句的二进制文件编码方式作出规定,得到脚本编码文档;
根据所述脚本编码文档得到脚本编码工具;
根据所述脚本编码文档,在目标机编码得到解析执行二进制指令文件的功能函数;
根据所述控制协议文档,将整体控制流程分解成具体的控制步骤,编写控制脚本;
根据所述脚本编码工具将所述控制脚本进行编码,生成二进制指令文件;
将所述二进制指令文件传入目标机,并运行至符合设定条件时,完成构建。
其中,所述获取液路部件的基本信息,定义控制语句语法,得到控制协议文档,包括:
基于通用的使用习惯,将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数,形成一份控制协议文档,并且根据所述控制协议文档定义名称、申明和代码的编写方式,其中,所述控制协议文档为液路控制语言的语法。
其中,对所述控制协议文档语句的二进制文件编码方式作出规定,得到脚本编码文档,包括:
对所述控制协议文档中语句的二进制文件编码方式作出规定,得到脚本编码文档,所述脚本编码文档包括指令的格式、每个指令的二进制编码方式和存储的格式。
其中,根据所述脚本编码文档得到脚本编码工具,包括:
根据所述脚本编码文档的规定,逐行读取并生成每行语句对应的二进制指令,将所述二进制指令汇总成二进制指令文件。
其中,根据所述脚本编码文档,在目标机编码得到解析执行二进制指令文件的功能函数,包括:
基于开发的新系统的设定,根据所述脚本编码文档实现对二进制指令文件解码功能,并实现对应的功能函数,运行时根据解码二进制指令文件的结果调用对应的功能函数。
其中,根据所述控制协议文档,将整体控制流程分解成具体的控制步骤,编写控制脚本,包括:
根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,编写控制脚本的名称、申明和代码部分,并依次将所述控制步骤按照规定的格式写入脚本中,形成控制脚本。
其中,根据所述脚本编码工具将所述控制脚本进行编码,生成二进制指令文件,包括:
利用所述脚本编码工具将所述控制脚本进行编码,得到二进制指令文件,并将维护的程序名称文档中的文件编号、脚本文件中定义的名称、生成的二进制指令文件名称一一对应。
其中,将所述二进制指令文件传入目标机,并运行至符合设定条件时,完成构建,包括:
将所述二进制指令文件传入目标机,并利用所述解析执行功能函数对所述二进制指令文件进行解析和执行,直至所述目标机运行符合设定目标且不需要开发新系统后,完成构建;
若所述目标机运行不符合设定目标,则重新编写所述控制脚本,直至运行符合设定目标;
若所述目标机运行符合设定目标但需要开发新系统,则重新编码实现解析执行功能函数至运行符合设定目标且不需要开发新系统。
第二方面,本发明提供一种带脚本解析的液路控制语言系统,所述带脚本解析的液路控制语言系统包括控制协议文档模块、脚本编码文档模块、脚本编码工具模块、解析执行功能函数模块、控制脚本模块和二进制指令文件模块,所述控制协议文档模块和所述脚本编码文档模块连接,所述解析执行功能函数模块与所述所述脚本编码文档模块连接,所述控制脚本模块与所述控制协议文档模块和所述脚本编码工具模块连接,所述二进制指令文件模块与所述解析执行功能函数模块连接,所述脚本编码工具模块与所述脚本编码文档模块和所述二进制指令文件模块连接,
所述控制协议文档模块,用于将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数保存于控制协议文档中;
所述脚本编码文档模块,用于对所述控制协议文档中的语句的二进制编码方式作出规定;
所述脚本编码工具模块,用于逐行读取控制脚本,将控制脚本编码成二进制指令文件;
所述解析执行功能函数模块,用于根据所述脚本编码文档模块对二进制指令文件进行解码,同时选择调用对应的函数并执行;
所述控制脚本模块,用于根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,编写控制脚本的名称、申明和代码部分,并依次将所述控制步骤按照设定的格式和时间顺序写入脚本中;
所述二进制指令文件模块,用于传入目标机,供解析执行功能函数模块解析并执行。
其中,所述脚本编码工具模块具有实时调试单元,用于编写脚本,并生成、保存和下载所述二进制指令文件至目标机,同时发送指令让所述目标机解析所述二进制指令文件并执行。
本发明的一种带脚本解析的液路控制语言系统及构建方法,所述带脚本解析的液路控制语言系统包括控制协议文档模块、脚本编码文档模块、脚本编码工件模块、解析执行功能函数模块、控制脚本模块和二进制指令文件模块,所述控制协议文档模块和所述脚本编码文档模块连接,所述解析执行功能函数模块与所述所述脚本编码文档模块连接,所述控制脚本模块与所述控制协议文档模块和所述脚本编码工具模块连接,所述二进制指令文件模块与所述解析执行功能函数模块连接,所述脚本编码工具模块与所述脚本编码文档模块和所述二进制指令文件模块连接,基于通用的使用习惯,将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数,定义控制语句语法,形成一份控制协议文档,对所述控制协议文档中的二进制编码方式作出规定,得到脚本编码文档,根据脚本编码文档开发脚本编码工具,根据脚本编码工具生成二进指令文件,根据所述脚本编码文档开发解析执行功能函数,根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,形成控制脚本,利用所述脚本编码工具将所述控制脚本进行编码得到二进制指令文件,将所述二进制指令文件传入目标机,解析执行功能函数解析并执行二进制指令文件,并运行至符合设定条件时,完成构建,提高仪器液路部件在后续的实时调试和操作参数更新的便利性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种带脚本解析的液路控制语言系统构建方法的步骤示意图。
图2是本发明提供的一种带脚本解析的液路控制语言系统构建方法的流程示意图。
图3是本发明提供的一种带脚本解析的液路控制语言系统的结构示意图。
图4是本发明提供的一种带脚本解析的液路控制语言系统的系统框架示意图。
1-控制协议文档模块、2-脚本编码文档模块、3-解析执行功能函数模块、4-控制脚本模块、5-二进制指令文件模块、6-脚本编码工具模块、7-实时调试单元。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1和图2,本发明提供一种带脚本解析的液路控制语言系统构建方法,包括:
S101、获取液路部件的基本信息,定义控制语句语法,得到控制协议文档。
具体的,基于通用的使用习惯,将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数等信息,形成一份控制协议文档,该文档即为液路控制语言的语法,同时该文档也规定了控制脚本语句的编写方式;液路开发人员可以根据此文档编写控制脚本,需要对目前使用的液路部件有个全局性的规划,需要包含当前所有的部件和功能,并考虑扩展新部件的可能性。
所述控制协议文档的语法定义了实现脚本的三个部分:名称、申明、代码。其中,名称为该程序的唯一编号,目标机中的加载二进制指令文件的函数需要判断函数传入第一参数是否与该名称相同,如果不同则该函数返回错误。申明类似于其它编程语言头文件的作用,可以在此处包含其他的脚本,当前脚本如果包含了其他的脚本相当于把其他脚本的代码复制到当前的脚本,可以方便脚本的复用;同时申明可以但不限于包含版本号等信息,方便维护人员查阅。代码部分类似于其它编程语言的代码段,按照时间先后通过脚本指令详细描述每一个操作步骤。代码部分包含参数设置、步进电机指令、电磁阀指令、泵操作指令、延时操作、系统调用、预定义指令等。以下是详细的说明:
①参数设置指令包含:LOAD加载指令,用于获取目标机中的参数,第一参数表示该参数的变量名称;STORE保存指令,用于通知目标机持久化该参数,第一参数为参数值,第二参数为参数的变量名称;
②步进电机指令用于步进电机的控制,第一参数为步进电机号,第二参数表示步进电机需要启动还是停止,如果第二参数表示步进电机停止,则不需要使用后面的参数,如果第二参数表示步进电机启动,则继续使用后面的参数,第三参数表示步进电机运动的方向,可以正转可以反转,第四参数表示步进电机运动频率,第五参数表示步进电机运动步数;
③电磁阀指令用于控制电磁阀的开启和关闭,第一参数表示电磁阀号,第二参数表示开启和关闭;
④泵控制指令用于控制泵的开启和关闭,第一参数表示泵号,第二参数表示开启和关闭;
⑤延时操作用于延时,配合步进电机指令、电磁阀指令、泵控制指令使用,比如泵开启之后,使用延时指令延时,然后再关闭泵,可以达到输送一段液体的目的,延时操作第一参数为延时时长,可以以微秒表示;
⑥系统调用指令用于调用目标机对应编号的函数,第一参数表示函数编号,根据不同的实际需要可以约定多个参数。比如该指令可以用于在液路部件运行过程中,调用获取ADC采样结果的函数,目标机可以但不限于通过一个数组的方式,保存各个函数的句柄,调用时通过编号查找函数句柄,然后传入参数调用该函数;
⑦预定义指令,类似于其他变成语言的宏定义行为,第一参数为变量名,第二参数为变量的值。可以为一个变量预定义一个固定的值,将脚本中该值替换为变量名,这样方便开发人员编写和维护,比如对于系统调用指令,可以将第一参数函数编号用预定义指令定义的变量名替换;
⑧其他指令,可以设计其他指令,不限于当前的使用方式。比如可以设计蜂鸣器开关指令,LED灯开关指令等等,类似的设计思想是涵盖在当前发明中的。
S102、对所述控制协议文档语句的二进制文件编码方式作出规定,得到脚本编码文档。
具体的,对所述控制协议文档中语句的二进制文件编码方式作出规定,得到脚本编码文档,所述脚本编码文档包括控制协议文档中包含的每个指令的二进制编码方式和存储的方式,所述脚本编码文档可以规定控制脚本的每一行都保存为固定的指令长度,如用12个字节表示一条指令,其中第一个字节用于表示指令类型,例如,用0x01表示参数设置指令,0x02表示步进电机指令,其他的以此类推;之后的10个字节中,每两个字节用于表示一个参数,也可以根据实际需要设置字节数目;最后一个字节固定为0x0D,用于表示指令结束。
S103、根据所述脚本编码文档得到脚本编码工具。
具体的,根据所述脚本编码文档的规定,逐行读取并生成每行语句对应的二进制指令,将所述二进制指令汇总成二进制指令文件,所述脚本编码文档用于指导脚本编码工具的编码实现,目的是将控制脚本解析并编码成具体的二进制指令文件。脚本编码工具软件并不是目标机软件系统的一部分,而是一个外部工具,使用时需要将生成的二进制指令文件传入目标机。
软件开发人员根据所示脚本编码文档开发脚本编码工具软件可以采用如下的方法:
①逐行读取液路开发人员编写的控制脚本,逐行处理。如果申明中有包含其他的脚本文件,则读取其他脚本文件,优先处理;
②处理其中一行时,按照空格将该行字符串分隔成多个参数,第一个参数表示指令类型,后面的参数表示指令参数,根据脚本编码文档,将这些参数转换成二进制表示存入指令的对应字节并写入二进制指令文件,如果指令参数获取的是变量名字且与预定义指令定义的变量名字相同,将其替换成预定义指令中对应变量名字的实际参数。预定义指令是不需要作为单独的指令进行转换的,也就是说实际形成的二进制指令文件将不会包含预定义指令;
③形成的二进制指令文件文档开头可以包含名称、版本号等信息;
④将二进制指令文件保存在运行脚本编码工具软件的电脑中以备使用;
⑤维护一份文档,将二进制指令文件编号、控制脚本文件中定义的名称、生成的二进制指令文件名称做好对应,方便批量下载到目标机。
S104、根据所述脚本编码文档,在目标机编码得到解析执行二进制指令文件的功能函数。
具体的,基于开发的新系统的设定,根据所述脚本编码文档编码实现对二进制指令文件进行解析,并将解析后得到的指令串进行执行的指令解析模块,同时编码实现对应的执行逻辑代码,得到执行功能函数模块,使得系统能够按照控制脚本中所述的逻辑和控制流程操作对应的液路部件。软件开发人员可以单独实现二进制指令解析和执行进程,独立于主程序,通过进程间通信将主程序读取到的二进制指令文件文本传入解析执行进程进行解析和执行。解析执行进程按照脚本编码文档规定解析指令,按照所述脚本编码文档中的描述,可以但不限于用数组保存解析后的指令串,之后调用执行功能模块对应函数即可。比如判断指令是对于阀、泵、电机的操作指令,可以先实现对应部件的驱动程序,预留对应参数的接口函数,执行功能模块直接调用该接口函数实现控制部件的目的。如果解析出来是延时指令,可以调用linux系统的usleep()函数实现延时,单片机系统可以根据MCU主频编写循环函数实现延时。预先生成一个参数列表数组,如果解析出来的是参数指令,按照编号、参数名、参数值这样的结构体依次存入参数列表数组,根据参数编号获取对应的值,可以方便进行读写,如果需要持久化数据,需要另外实现对应的持久化数据接口函数。
S105、根据所述控制协议文档,将整体控制流程分解成具体的控制步骤,编写控制脚本。
具体的,根据所述控制协议文档中的控制脚本语法,将整体控制流程分解成具体的控制步骤,编写控制脚本的名称、申明和代码部分,并依次将所述控制步骤按照规定的格式和时间顺序写入脚本中,形成控制脚本,其中,规定的格式可以为实际中的控制步骤,形如“指令标识符、参数列表”这样的格式。
S106、根据所述脚本编码工具将所述控制脚本进行编码,生成二进制指令文件。
具体的,利用所述脚本编码工具将所述控制脚本进行读取,并编码得到二进制指令文件,并将维护的程序名称文档中的文件编号、脚本文件中定义的名称、生成的二进制指令文件名称一一对应,方便批量下载到目标机。
S107、将所述二进制指令文件传入目标机,并运行至符合设定条件时,完成构建。
具体的,将所述二进制指令文件传入目标机,利用所述解析执行功能函数对所述二进制指令文件进行解析和执行,直至所述目标机运行符合设定目标且不需要开发新系统后,完成构建,若所述目标机液路部件运行不符合设定目标,则重新编写所述控制脚本,直至液路部件运行符合设定目标;若所述目标机运行符合设定目标但需要开发新系统,则重新在目标机系统中编码实现解析执行功能函数直至运行符合设定目标且不需要开发新系统。二进制指令文件的传输可以但不限于使用网口、串口、USB接口等传输方式,并且完成构建后,在后续开发新仪器时,仪器中运行的软件系统和解析执行功能函数不需要再变动,提高后续调试的便利性。控制脚本的编写语法简单,可以减少液路开发人员学习成本。液路开发人员日常调试仪器不需要再联系软件开发人员进行软件更改和升级,可以自行操作降低开发时间成本,提高便利性,更方便售出仪器的液路操控部分参数升级和维修之后的再调试,不需要再次改动软件代码,减少维护成本。
具体流程如图2所示:将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数等信息,编写一份控制协议文档,该文档定义了控制语句语法,根据控制协议文档编写脚本编码文档,根据脚本编码文档开发脚本编码工具,然后判断是否需要继续开发新系统,若需要继续开发新系统,根据所述脚本编码文档在目标机编码实现解析执行功能函数,这些功能函数对指令进行解析,将解析后的结果执行对应的函数,按照所述控制协议文档编写控制脚本,利用所述脚本编码工具将所述控制脚本进行编码得到二进制指令文件,然后将所述二进制指令文件传入目标机,并观察运行效果,若运行效果不符合预定目标,则重新编写控制脚本,直至运行效果符合预定目标,然后当不需要继续开发新系统后,结束构建,提高仪器液路部件在后续的实时调试和操作参数更新的便利性。
请参阅图3和图4,本发明提供一种带脚本解析的液路控制语言系统,所述带脚本解析的液路控制语言系统包括控制协议文档模块1、脚本编码文档模块2、脚本编码工具模块6、解析执行功能函数模块3、控制脚本模块4和二进制指令文件模块5,所述控制协议文档模块1和所述脚本编码文档模块2连接,所述解析执行功能函数模块3与所述脚本编码文档模块2连接,所述控制脚本模块4与所述控制协议文档模块1和所述脚本编码工具模块6连接,所述二进制指令文件模块5与所述解析执行功能函数模块3连接,所述脚本编码工具模块6与所述脚本编码文档模块2和所述二进制指令模块5连接,
所述控制协议文档模块1,用于将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数保存于控制协议文档中;
所述脚本编码文档模块2,用于对所述控制协议文档中的语句的二进制编码方式作出规定;
所述脚本编码工具模块6,用于逐行读取控制脚本,将控制脚本编码成二进制指令文件;
所述解析执行功能函数模块3,用于根据所述脚本编码文档模块对二进制指令文件进行解码,同时选择调用对应的函数并执行;
所述控制脚本模块4,用于根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,编写控制脚本的名称、申明和代码部分,并依次将所述控制步骤按照设定的格式和时间顺序写入脚本中;
所述二进制指令文件模块5,用于传入目标机,供解析执行功能函数模块解析并执行。
在本实施方式中,所述带脚本解析的液路控制语言系统包括控制协议文档模块1、脚本编码文档模块2、脚本编码工具模块6、解析执行功能函数模块3、控制脚本模块4和二进制指令文件模块5,所述控制协议文档模块1和所述脚本编码文档模块2连接,所述解析执行功能函数模块3与所述脚本编码文档模块2连接,所述控制脚本模块4与所述控制协议文档模块1和所述脚本编码工具模块6连接,所述二进制指令文件模块5与所述解析执行功能函数模块3连接,所述脚本编码工具模块6与所述脚本编码文档模块2和所述二进制指令模块5连接,首先在台式机或者笔记本电脑上,软件开发人员在所述控制协议文档模块1中根据液路操作人员提供的将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数保存于控制协议文档中,并对所述控制协议文档中的语法进行解析,得到脚本编码文档或二进制指令文件生成工具,用于根据所述控制协议文档模块1和所述脚本编码文档模块2对指令进行分割,并将分割后得到的指令串进行解析,同时在所述解析编码功能函数模块3中选择对应的函数来实现对应的指令功能;并在所述控制脚本模块4中根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,编写控制脚本的名称、申明和代码部分,并依次将所述控制步骤按照设定的格式和时间顺序写入脚本中,利用所述脚本编码文档模块2将所述控制脚本进行编码,得到二进制指令文件,然后利用传输接口将所述二进制指令文件通过对应的传输接口传入并存储在目标机中,根据所述脚本编码文档模块2发出的指令,对所述二进制指令文件进行解析和运行,同时并调用进行出来的对应的功能函数驱动对应的程序,进而根据所述控制协议文档对应的信息,调整对应的功能部件,如图4所示,在后续开发新仪器不需要再变动,提高后续调试的便利性,可以减少液路开发人员学习成本,语法简单,并且流程都是按时间顺序执行,符合自然思维习惯;而液路开发人员日常调试仪器不需要再联系软件开发人员进行软件更改和升级,可以自行操作降低开发时间成本,提高便利性,更方便售出仪器的液路操控部分升级和维修之后的再调试,不需要再次改动软件代码,减少维护成本。
进一步的,所述脚本编码工具模块6具有实时调试单元7,用于编写脚本,并生成、保存和下载所述二进制指令文件至目标机,同时发送指令让所述目标机解析所述二进制指令文件并运行。
在本实施方式中,所述脚本编码工具模块6具有实时调试单元7,所述实时调试单元7中的文本编辑框可以用来编写脚本,同时可以调用所述脚本编码文档模块2,并生成并保存所述二进制指令文件至目标机,并还可以借用网口、串口、USB接口等传输方式将所述二进制指令文件下载到所述目标机中,同时发送指令让所述目标机解析所述二进制指令文件并运行。
本发明的一种带脚本解析的液路控制语言系统及构建方法,所述带脚本解析的液路控制语言系统包括控制协议文档模块1、脚本编码文档模块2、脚本编码工具模块6、解析执行功能函数模块3、控制脚本模块4和二进制指令文件模块5,所述控制协议文档模块1和所述脚本编码文档模块2连接,所述解析执行功能函数模块3与所述脚本编码文档模块2连接,所述控制脚本模块4与所述控制协议文档模块1和所述脚本编码工具模块6连接,所述二进制指令文件模块5与所述解析执行功能函数模块3连接,所述脚本编码工具模块6与所述脚本编码文档模块2和所述二进制指令模块5连接,基于通用的使用习惯,将各个通用的液路部件用英文简写命名,并将每个部件的操作方式的英文简写、操作参数以及参数个数,形成一份控制协议文档,对所述控制协议文档中的语法进行解析,得到脚本编码文档,根据脚本编码文档开发脚本编码工具,根据脚本编码工具成二进指令文件,根据所述脚本编码文档开发解析执行功能函数,根据所述控制协议文档中的脚本语法,将整体控制流程分解成具体的控制步骤,形成控制脚本,利用所述脚本编码工具将所述控制脚本进行编码,得到二进制指令文件,将所述二进制指令文件传入目标机,并运行至符合设定条件时,完成构建,提高仪器液路部件在后续的实时调试和操作参数更新的便利性。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。