金融设备循环机芯日志信息写入方法及读取方法与流程

文档序号:11135520阅读:311来源:国知局
金融设备循环机芯日志信息写入方法及读取方法与制造工艺

本发明属于金融设备日志数据记录处理技术领域,具体涉及一种金融设备循环机芯日志信息写入方法及读取方法。



背景技术:

金融设备的循环机芯在工作中涉及到很多关键的信息,其中包含着各种工作状态,为了能够完整记录机芯的工作处理状况,以便在出现故障时可以获取到足够的信息来进行故障原因的分析,提供维护,诊断错误,对账依据等;循环机芯设计有专门的信息记录系统,记录工作过程中各种重要的信息。然而目前的循环机芯的信息记录方法的日志记录循环读写不够稳定,不利于对数据的分析。



技术实现要素:

本发明的目的在于解决上述技术问题而提供一种金融设备循环机芯日志信息写入方法及读取方法,以解决现有信息记录系统存在信息记录不准,读取数据错乱的技术问题,其可以使数据记录按照一定的格式准确进行记录,从而方便查看及阅读分析。

为实现上述目的,本发明采用如下技术方案:

一种金融设备循环机芯日志信息写入方法,其是用flash存储循环机芯记录的日志数据,用EEPROM存储flash存储的日志数据的的数据据地址;通过循环写入法向flash中写入日志数据,在将日志数据存写入flash时,执行以下步骤:

在判断日志数据的长度符合预设阈值后,则从EEPROM内固定地址中读取当前写flash数据地址,然后判断该当前写flash数据地址是否是flash扇区首地址;

如果是flash扇区首地址,则在擦除该flash扇区首地址对应的flash扇区后,将日志数据写入flash后在EEPROM固定地址存入当前写flash的数据地址;

如果不是flash扇区首地址,将日志数据直接写入flash后在EEPROM固定地址存入当前写flash的数据地址;

如果一个flash扇区的日志数据写入成功,则在该日志数据写入成功的flash扇区的首4个字节存入上一个flash扇区的末地址。

在擦除该flash扇区首地址对应的flash扇区后的步骤之后,还包括以下步骤:

判断该flash扇区首地址对应的flash扇区是否擦除成功,如果是则将日志数据写入该flash扇区,否则继续擦除该flash扇区的下一个flash扇区并继续判断是否擦除成功,若最后一个flash扇区擦除失败则返回擦除第一个flash扇区,直到其中一个flash扇区擦除成功后,将该日志数据写入该擦除成功的flash扇区。

在一个flash扇区中写数据后,还包括以下步骤:

判断在该flash扇区中数据是否写成功,如果成功则退出,否则擦除该flash扇区的下一个flash扇区并在擦除成功后将日志数据写入成功擦除的flash扇区。

在判断日志数据的长度不符合预设阈值后,则退出该写日志数据步骤。

本发明的目的还在于提供一种金融设备循环机芯日志信息读取方法,包括以下步骤:

接收日志数据读取指令;

响应该日志数据读取指令,返回相应的日志条数;

逐条读取返回的日志条数对应的日志数据并逐条返回给SP层;

其中,在逐条读取日志数据并逐条返回时,根据日志数据的字节数和日志头标记遍历,当读到一flash扇区首地址时,取出存入其中的地址然后跳到该扇区首地址存的数据地址对flash中的日志数据读取。

本发明可以完整准确地记录金融设备的循环机芯的工作处理状况,以便在出现故障时,可以获取到足够的信息来进行故障原因的分析,提供维护、错误诊断以及对账依据,也方便在以后进行准确的读取。

附图说明

图1是本发明的金融设备循环机芯日志信息写入方法的流程图。

图2是本发明的金融设备循环机芯日志信息读取方法的流程图;

图3是本发明在读取日志数据后与上位机的交互流程图。

具体实施方式

下面,结合实例对本发明的实质性特点和优势作进一步的说明,但本发明并不局限于所列的实施例。

参见图1所示,一种金融设备循环机芯日志信息写入方法,其是用flash存储循环机芯记录的日志数据,用EEPROM存储flash存储的日志数据的的数据据地址;通过循环写入法向flash中写入日志数据,在将日志数据存写入flash时,执行以下步骤:

在判断日志数据的长度符合预设阈值后,则从EEPROM内固定地址中读取当前写flash数据地址,然后判断该当前写flash数据地址是否是flash扇区首地址;

如果是flash扇区首地址,则在擦除该flash扇区首地址对应的flash扇区后,将日志数据写入flash后在EEPROM固定地址存入当前写flash的数据地址;

如果不是flash扇区首地址,将日志数据直接写入flash后在EEPROM固定地址存入当前写flash的数据地址;

如果一个flash扇区的日志数据写入成功,则在该日志数据写入成功的flash扇区的首4个字节存入上一个flash扇区的末地址。

本发明中,在向flash中写数据是采用循环写入的方法,也就是当flash写满后新的数据覆盖旧的数据,在每笔交易执行完之后会调用日志模块的接口将执行结果写入flash时采用上述的步骤进行。

本发明中,在擦除该flash扇区首地址对应的flash扇区后的步骤之后,还包括以下步骤:

判断该flash扇区首地址对应的flash扇区是否擦除成功,如果是则将日志数据写入该flash扇区,否则继续擦除该flash扇区的下一个flash扇区并继续判断是否擦除成功,若最后一个flash扇区擦除失败则返回擦除第一个flash扇区,直到其中一个flash扇区擦除成功后,将该日志数据写入该擦除成功的flash扇区,实现日志数据的循环写入。

本发明中,如果从EEPROM内固定地址中读取当前写flash数据地址不是flash扇区首地址,在将日志数据直接写入flash后在EEPROM固定地址存入当前写flash的数据地址的过程中,同样是采用循环写入法进行数据的写入flash,参见图1所示,在将日志数据写入该非flash扇区首地址的flash扇区后,判断是否写成功,成功则退出,否则继续擦除该flash扇区的下一个flash扇区并继续判断是否擦除成功,若最后一个flash扇区擦除失败则返回擦除第一个flash扇区,直到其中一个flash扇区擦除成功后,将该日志数据写入该擦除成功的flash扇区,实现日志数据的循环写入。

本发明在一个flash扇区中写数据后,还包括以下步骤:

判断在该flash扇区中数据是否写成功,如果成功则退出,否则擦除该flash扇区的下一个flash扇区并在擦除成功后将日志数据写入成功擦除的flash扇区。

进一步的,本发明中,在对一个flash扇区进行擦除时,如果首次擦除不成功,还可以在预设的擦除次数内进行多次,如3次,反复进行擦除,如果进行预设次数擦除后,还不能擦除成功,则退出该擦除过程,对下一扇区进行擦除并写日志数据到flash中。

需要说明的是,本发明开始写日志数据时,首先对数据进行预处理,并在判断日志数据的长度是否符合要求,是否合理,是否符合预设的长度阈值,如果不符合预设长度阈值后,则退出该写数据步骤,如果符合则从EEPROM内固定地址中读取当前写flash数据地址再进行后续的写日志数据步骤。

本发明中,在向flash中写数据或擦除扇区时可能会出现错误,通过一个flash扇区的前4个字节记录上一个flash扇区的末地址,可以防止读取没有任何意义的数据。

在跨flash扇区写入数据时,先擦除flash扇区,其中擦除flash扇区的时候会进行相关判断,避免坏死flash扇区,在最后一个flash扇区写完后接着往第一个flash扇区写,实现日志的循环写。如果写入正确,则在该flash扇区的首4个字节存入上一个扇flash区的末地址,这样,在读数据时,当读到flash扇区的首4个字节的地址时,则将flash扇区中该4个字节的值赋值给地址指针,并继续根据地址指针进行读取数据,这样读写数据可以保证数据包的完整性。

本发明中,在一个flash扇区的首4个字节存入上一个扇flash区的末地址后,会占用EEPROM的4个字节,该的占用EEPROM的4个字节数据指针永远指向下一次写入数据的首地址,这样,在读数据时,当读到flash扇区的首4个字节的地址时,则将flash扇区中该4个字节的值赋值给地址指针,并继续根据地址指针进行读取数据,这样读写数据可以保证数据包的完整性

需要说明的是,本发明中,所述EEPROM存储有日志数据记录的时间数据,该时间数据可以年、月、日来记录,从而可以实现通过此部分数据来读取以天为时间单位的部分日志数据;具有多项此类的数据保存在EEPROM中。

本发明中,为了方便按时间查询日志数据,在EEPROM中优选以天为时间单位而记录当天开始的数据地址和结束的数据地址,并在写日志数据到flash上时,将最后操作的数据地址保存在EEPROM中。

本发明的目的还在于提供一种金融设备循环机芯日志信息读取方法,包括以下步骤,参见图2所示:

接收日志数据读取指令;

响应该日志数据读取指令,返回相应的日志条数;

逐条读取返回的日志条数对应的日志数据并逐条返回给SP层;

其中,在逐条读取日志数据并逐条返回时,根据日志数据的字节数和日志头标记遍历,当读到一个flash扇区首地址时,取出存入其中的地址然后跳到该扇区首地址存的数据地址对flash中的日志数据进行读取。

需要说明的是,本发明中,具体的,在读数据时,当读到一个flash扇区的首4个字节的地址时,则将该flash扇区中该4个字节的值赋值给地址指针,并继续根据地址指针进行读取数据,这样读写数据可以保证数据包的完整性。

所述当读到一个flash扇区首地址时,取出存入其中的地址然后跳到该扇区首地址存的数据地址对flash中的日志数据进行读取,是指取出flash扇区首地址中的数据地址,然后跳到该扇区首地址存的数据地址。

需要说明的是,本发明中,所述日志数据读取指令可以是读取所有日志数据的指令,也可以是读取一段时间内的日志数据的指令,或是一条日志数据的指令,但不论是读所有日志数据还是读取其中某一条,或是一段时间内的日志数据,但在本发明中,日志数据的返回格式都是一样的,都是一条一条的返回给上位机。

本发明中,在获取指令要求的日志数据的条数时,如果读取方式是按照条数来读的话,这个指令就是命令发送下来的条数,如果是按照时间段来读,就是该时间段内所有日志数据的条数,如果是读全部就是flash中存储的所有日志的条数。

需要说明的是,本发明中,对于读取日志数据指令,命令处理层可不作处理,命令解析可以在日志的接口函数中实现,以及返回值也是在该接口函数中发送出去。

由于日志数据发送是按条发送,所以首先要确定符合指令要求的日志的首地址,然后一条一条发送,根据日志的字节数和日志头标记来遍历;因为在写日志数据时,有可能在一个flash扇区中后面剩余的地址不能成功写入日志数据,只能把日志数据写在这个flash扇区后面可用的flash扇区,故在下一个可写flash扇区的首地址中存入上一次写完日志数据时的flash扇区的数据地址,当读到flash扇区首地址时,取出该flash扇区首地址中的地址,然后跳到该扇区首地址存的数据地址,对flash中的日志数据进行读取,从而避免读取无用数据,这样就实现了日志的准确读取。

本发明在与上位机进行数据交互时,可以按图3所示流程进行,下位机在收到读取日志的指令后,获取读取日志指令中的数据内容,分析读取日志指令中的数据是按条读取,按时间读取,还是读取所有的日志数据,然后根据分析的读取日志指令中的数据内容,向上位机返回所读日志条数,并向上位机按条数返回日志,供上位机使用,从而实现了日志数据的有效读取。

本发明可以完整准确地记录金融设备的循环机芯的工作处理状况,以便在出现故障时,可以获取到足够的信息来进行故障原因的分析,提供维护、错误诊断以及对账依据,也方便在以后进行准确的读取。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1