CN102735323A - 防止电子秤使用过程中数据丢失的方法 - Google Patents
防止电子秤使用过程中数据丢失的方法 Download PDFInfo
- Publication number
- CN102735323A CN102735323A CN2012101759570A CN201210175957A CN102735323A CN 102735323 A CN102735323 A CN 102735323A CN 2012101759570 A CN2012101759570 A CN 2012101759570A CN 201210175957 A CN201210175957 A CN 201210175957A CN 102735323 A CN102735323 A CN 102735323A
- Authority
- CN
- China
- Prior art keywords
- data
- eeprom
- variable
- electronic scales
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明提供一种防止电子秤使用过程中数据丢失的方法,所述方法为:在电子秤程序中定义两个变量,变量一和变量二。变量一用于标志电子秤程序是否按照正常的顺序执行,是,则将变量值进行按顺序递增,否,则说明程序指针发生偏移,将引导程序复位,从开始程序进行重新执行,防止发生意外错误;而程序中要将数据写入EEPROM时,在EEPROM写操作中通过变量二、校验等方式进行各种判断,如果判断出来,非正常的写操作,则结束写EEPROM操作。正常的写操作,则将数据写入EEPROM中。本发明可以有效防止电子秤在使用过程中造成数据非法改写,导致数据丢失的现象,提高电子秤的可靠性。
Description
【技术领域】
本发明涉及电子秤的技术领域,尤其涉及一种防止电子秤使用过程中数据丢失的方法。
【背景技术】
电子秤在使用过程中,会发生设置参数丢失现象,比如某个参数的设置值设置为3,过几天或者几个月后,发现该设置值变为0。究其原因,是因为设置值被非正常修改过。其有两种可能会导致设置值被非正常修改:1.电子秤在上下电瞬间,由于电压不稳,电子秤程序指针极有可能跑飞,导致非法修改参数,使得电子秤数据丢失。2.电子秤在使用过程中,受到干扰如静电、电磁辐射,程序指针也会跑飞,导致非法修改参数,使得电子秤数据丢失。程序指针是一个很重要的概念,程序的执行就是靠执行代码,每一条代码都有一个指针指向;即CPU执行代码就是让指针来引导执行的方向。以上电子秤数据丢失的原因,不是人为修改的,而是程序运行不正常造成的。现有的电子秤软件未带有防止电子秤使用过程中数据丢失的功能。则用户使用过程中很容易出现称量的数据丢失或者不正确的现象。本发明要解决的就是通过在软件上增加数据防丢失的方法用来防止数据的非法改写,从而实现电子秤使用过程中数据防丢失的目的。
现有技术中提供了一种“可自动采集称量数据的称量系统”,见公开号为:CN201974234U,公开日为:2011.09.14的中国专利,其包括用于称量物品重量的电子秤,所述的电子秤设有数据输出端口,设有电脑主机,该电脑主机通过自带的数据输入端口与检测仪的数据输出端口相连接。该实用新型可自动采集称量数据的称量系统省去称量时数据的记录及手动录入电脑的过程,称量数据可直接导入电脑特定表格中,可避免人为失误,提高了准确性。但该实用新型不能防止电子秤使用过程的数据丢失的现象。
【发明内容】
本发明要解决的技术问题,在于提供一种防止电子秤使用过程中数据丢失的方法,提高了电子秤的可靠性。
本发明是这样实现的:一种防止电子秤使用过程中数据丢失的方法,包括如下步骤:
步骤10、电子秤开机,在电子秤程序中定义一第一变量、一第二变量;
步骤20、初始化两个变量的值为0;
步骤30、电子秤程序进行初始化时,判断第一变量的值是否为0;否,则电子秤程序指针发生偏移,返回步骤20;是,则进入步骤40;
步骤40、将所述第一变量的值加上任意一个大于0的数值,电子秤程序进入称量时,判断第一变量的值是否为所述数值,否,则电子秤程序指针发生偏移,返回步骤20;是,则将第一变量的值再加上所述数值,并进入步骤50;
步骤50、判断电子秤是否有按键按下,是,则响应按键操作,并进入步骤60;所述按键操作中,进行电子秤校准、修改设置参数后;则需将操作后的数据存入电子秤的存储器EEPROM中;否,则直接进入步骤60;
步骤60、判断第一变量的值是否为所述数值的2倍,否,则返回步骤20;是,则将第一变量的值再加上所述数值,并进入步骤70;
步骤70、电子秤的CPU判断是否有操作后的数据需保存,是,则先把操作后的数据进行按字节异或校验形成预存储校验码,再将第二变量置1,根据需要保存数据的类型给定需要写入的地址并调用写EEPROM函数进行写操作,并进入步骤80;否,则直接进入步骤80;
步骤80、判断电子秤A/D转换器是否收到被测物的数据,是,则采集被测物的数据,并根据EEPROM写入的设置参数,来获取被测物的称重;进入步骤90;否,则直接进入步骤100;
步骤90、刷新电子秤显示屏,并显示被测物的称重或者设置参数值;
步骤100、判断第一变量的值是否为所述数值的3倍,是,则将第一变量的值清0,并返回步骤40;否,则返回步骤20。
本发明具有如下优点:本发明提供一种防止电子秤使用过程中数据丢失的方法,通过在电子秤程序中定义两个变量,变量一和变量二。变量一用于标志电子秤程序是否按照正常的顺序执行,是,则将变量值进行按顺序递增,否,则说明程序指针发生偏移,将引导程序复位,从电子秤的开始程序进行重新执行,防止发生意外错误;而程序执行过程中遇到要将数据写入EEPROM时,在EEPROM函数的写操作中通过变量二、校验等方式进行各种判断,如果判断出来,非正常的写操作,则结束写EEPROM操作。正常的写操作,则将数据写入EEPROM中。本发明可以有效防止电子秤在使用过程中造成数据非法改写,导致数据丢失的现象,提高电子秤的可靠性。
【附图说明】
图1为本发明方法流程示意图。
图2为本发明调用EEPROM函数进行EEPROM写的操作的流程示意图。
【具体实施方式】
本发明分为2个部分,分别主程序指针跑飞捕获以及存储器EEPROM写函数的防误写入。其中,电子秤程序指针跑飞捕获的主要技术特征是:当检测到电子秤程序不是按照正常的顺序执行了,引导程序复位,从电子秤的开始程序进行重新执行,防止发生意外错误;而EEPROM写函数的防误写入的主要技术特征在于:启动EEPROM写操作后,进行各种判断,如果判断出来,非正常的写操作,则结束写EEPROM操作。主程序在执行时,判断到需要写EEPROM时,调用EEPROM写函数。
请参阅图1所示,本发明的一种防止电子秤使用过程中数据丢失的方法,其特征在于:包括如下步骤:
步骤10、电子秤开机,在电子秤程序中定义一第一变量如step、第二变量如bWrite;
步骤20、初始化两个变量的值为0;
步骤30、电子秤程序进行初始化时,判断第一变量的值是否为0;否,则电子秤程序指针发生偏移,返回步骤20;是,则说明电子秤程序是从开始按顺序往下执行的,进入步骤40;
步骤40、将所述第一变量的值加上任意一个大于0的数值(如数值为2),电子秤程序进入称量时,判断第一变量的值是否为所述数值(即step是否等于2),否,则电子秤程序指针发生偏移,返回步骤20;是,则将第一变量的值再加上所述数值(即此时step=4),并进入步骤50;
步骤50、判断电子秤是否有按键按下,是,则响应按键操作,并进入步骤60;所述按键操作中,进行电子秤校准、修改设置参数后,则需将操作后的数据存入电子秤的存储器EEPROM中;否,则直接进入步骤60;
步骤60、判断第一变量的值是否为所述数值的2倍(即step是否等于4),否,则返回步骤20;是,则将第一变量的值再加上所述数值(即此时step=6),并进入步骤70;
步骤70、电子秤的CPU判断是否有操作后的数据需保存,是,则先把操作后的数据进行按字节异或校验形成预存储校验码,再将第二变量置1,根据需要保存数据的类型给定需要写入的地址(即将保存数据进行绑定一个写入的地址)并调用写EEPROM函数进行写操作,并进入步骤80;否,则直接进入步骤80;所述写入的地址范围为0x0000~0xFFFF;
步骤80、判断电子秤A/D转换器是否收到被测物的数据,是,则采集被测物的数据,并根据EEPROM写入的设置参数,来获取被测物的称重;进入步骤90;否,则直接进入步骤100;
步骤90、刷新电子秤显示屏,并显示被测物的称重或者设置参数值;
步骤100、判断第一变量的值是否为所述数值的3倍(即step是否等于6),是,则将第一变量的值清0,并返回步骤40,进行新一轮的检测循环;否,则返回步骤20。
如图2所示,其中,所述步骤70中根据需要保存数据的类型给定需要写入的地址并调用写EEPROM函数进行写操作具体包括如下步骤:
步骤71、将需写入EEPROM的数据(即需要保存的数据)进行按字节异或校验形成一个校验码,将所述预存储校验码和该校验码进行比较;如果一致,则校验通过,进入步骤72;不一致,则校验失败,结束EEPROM写的操作,结束流程;
步骤72、判断第二变量的值是否为1,否,则表示电子秤程序异常进入EEPROM函数,结束EEPROM写的操作,结束流程;是,则进入步骤73;
步骤73、判断所述写入地址是否超出所述存储器EEPROM的存储地址范围,是,则电子秤程序异常进入EEPROM函数,结束EEPROM写的操作,结束流程;否,则进入步骤74;所述存储器EEPROM的存储地址范围是0x0000~0x00FF;
步骤74、根据所述写入地址在存储器EEPROM中查找对应的存储地址,并将所述操作后的数据写入该存储地址对应的EEPROM的单元中;
步骤74.1、判断操作后的数据是否全部写完,是,则进入步骤75;否,则将所述写入地址加1,并提取下一个操作后的数据进行EEPROM写的操作;
步骤75、EEPROM写的操作结束后,将所述第二变量的值置0。
这里值得一提的是:刚开始按照正常启动存储器EEPROM写操作时,如果存储器EEPROM是通过外围I2C总线的连接的,则启动I2C总线;如果存储器EEPROM是电子秤内部的flash器件,则按具体flash器件的时序要求写入相应的字节,如依次写入0x5A,0xA5;来启动存储器EEPROM。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (3)
1.一种防止电子秤使用过程中数据丢失的方法,其特征在于:包括如下步骤:
步骤10、电子秤开机,在电子秤程序中定义一第一变量、一第二变量;
步骤20、初始化两个变量的值为0;
步骤30、电子秤程序进行初始化时,判断第一变量的值是否为0;否,则电子秤程序指针发生偏移,返回步骤20;是,则进入步骤40;
步骤40、将所述第一变量的值加上任意一个大于0的数值,电子秤程序进入称量时,判断第一变量的值是否为所述数值,否,则电子秤程序指针发生偏移,返回步骤20;是,则将第一变量的值再加上所述数值,并进入步骤50;
步骤50、判断电子秤是否有按键按下,是,则响应按键操作,并进入步骤60;所述按键操作中,进行电子秤校准、修改设置参数后,则需将操作后的数据存入电子秤的存储器EEPROM中;否,则直接进入步骤60;
步骤60、判断第一变量的值是否为所述数值的2倍,否,则返回步骤20;是,则将第一变量的值再加上所述数值,并进入步骤70;
步骤70、电子秤的CPU判断是否有操作后的数据需保存,是,则先把操作后的数据进行按字节异或校验形成预存储校验码,再将第二变量置1,根据需要保存数据的类型给定需要写入的地址并调用写EEPROM函数进行写操作,并进入步骤80;否,则直接进入步骤80;
步骤80、判断电子秤A/D转换器是否收到被测物的数据,是,则采集被测物的数据,并根据EEPROM写入的设置参数,来获取被测物的称重;进入步骤90;否,则直接进入步骤100;
步骤90、刷新电子秤显示屏,并显示被测物的称重或者设置参数值;
步骤100、判断第一变量的值是否为所述数值的3倍,是,则将第一变量的值清0,并返回步骤40;否,则返回步骤20。
2.根据权利要求1所述的防止电子秤使用过程中数据丢失的方法,其特征在于:所述步骤70中根据需要保存数据的类型给定需要写入的地址并调用写EEPROM函数进行写操作具体包括如下步骤:
步骤71、将需写入EEPROM的数据进行按字节异或校验形成一个校验码,将所述预存储校验码和该校验码进行比较;如果一致,则校验通过,进入步骤72;不一致,则校验失败,结束EEPROM写的操作,结束流程;
步骤72、判断第二变量的值是否为1,否,则表示电子秤程序异常进入EEPROM函数,结束EEPROM写的操作,结束流程;是,则进入步骤73;
步骤73、判断所述写入地址是否超出所述存储器EEPROM的存储地址范围,是,则电子秤程序异常进入EEPROM函数,结束EEPROM写的操作,结束流程;否,则进入步骤74;
步骤74、根据所述写入的地址在存储器EEPROM中查找对应的存储地址,并将所述操作后的数据写入该存储地址对应的EEPROM的单元中;
步骤75、EEPROM写的操作结束后,将所述第二变量的值置0。
3.根据权利要求2所述的防止电子秤使用过程中数据丢失的方法,其特征在于:在所述步骤74和步骤75之间进一步包括:
步骤74.1、判断操作后的数据是否全部写完,是,则进入步骤75;否,则将所述写入的地址加1,并提取下一个操作后的数据进行EEPROM写的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210175957.0A CN102735323B (zh) | 2012-05-31 | 2012-05-31 | 防止电子秤使用过程中数据丢失的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210175957.0A CN102735323B (zh) | 2012-05-31 | 2012-05-31 | 防止电子秤使用过程中数据丢失的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102735323A true CN102735323A (zh) | 2012-10-17 |
CN102735323B CN102735323B (zh) | 2014-06-04 |
Family
ID=46991236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210175957.0A Active CN102735323B (zh) | 2012-05-31 | 2012-05-31 | 防止电子秤使用过程中数据丢失的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102735323B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984383A (zh) * | 2017-05-31 | 2018-12-11 | 芜湖美的厨卫电器制造有限公司 | 程序跑飞的检测方法、装置及家用电器 |
CN110321078A (zh) * | 2019-06-18 | 2019-10-11 | 海芯科技(厦门)有限公司 | 一种降低系统受干扰误擦写单片机mtp数据的设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874138B1 (en) * | 2000-11-28 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Method and apparatus for resuming execution of a failed computer program |
CN101034369A (zh) * | 2006-03-10 | 2007-09-12 | 北京佳讯飞鸿电气有限责任公司 | 一种软件抗干扰方法及装置 |
CN101599042A (zh) * | 2008-06-02 | 2009-12-09 | 松下电器产业株式会社 | 程序跑飞检测方法及其设备 |
CN201974234U (zh) * | 2011-02-23 | 2011-09-14 | 天津三星电机有限公司 | 可自动采集称量数据的称量系统 |
-
2012
- 2012-05-31 CN CN201210175957.0A patent/CN102735323B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874138B1 (en) * | 2000-11-28 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Method and apparatus for resuming execution of a failed computer program |
CN101034369A (zh) * | 2006-03-10 | 2007-09-12 | 北京佳讯飞鸿电气有限责任公司 | 一种软件抗干扰方法及装置 |
CN101599042A (zh) * | 2008-06-02 | 2009-12-09 | 松下电器产业株式会社 | 程序跑飞检测方法及其设备 |
CN201974234U (zh) * | 2011-02-23 | 2011-09-14 | 天津三星电机有限公司 | 可自动采集称量数据的称量系统 |
Non-Patent Citations (2)
Title |
---|
孔萌等: "微机系统程序跑飞的快速诊断及处理方法", 《长春理工大学学报》, vol. 29, no. 1, 30 March 2006 (2006-03-30) * |
李民喆: "串行EEPROM93C46在衡器仪表中的应用", 《衡器》, vol. 30, no. 6, 30 November 2001 (2001-11-30), pages 13 - 15 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984383A (zh) * | 2017-05-31 | 2018-12-11 | 芜湖美的厨卫电器制造有限公司 | 程序跑飞的检测方法、装置及家用电器 |
CN110321078A (zh) * | 2019-06-18 | 2019-10-11 | 海芯科技(厦门)有限公司 | 一种降低系统受干扰误擦写单片机mtp数据的设计方法 |
CN110321078B (zh) * | 2019-06-18 | 2022-06-17 | 海芯科技(厦门)有限公司 | 一种防止系统受干扰误擦写单片机mtp数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102735323B (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8943423B2 (en) | User interface indicators for changed user interface elements | |
US7613954B2 (en) | Test executive with stack corruption detection | |
US8578339B2 (en) | Automatically adding bytecode to a software application to determine database access information | |
US9292418B2 (en) | Determining the vulnerability of multi-threaded program code to soft errors | |
CN102623069B (zh) | 随机激励闪存模型验证方法 | |
US20220391103A1 (en) | Memory anomaly processing method and system, electronic device, and storage medium | |
US9183114B2 (en) | Error detection on the stack | |
CN102306127B (zh) | 一种ddriii内存识别和初始化方法 | |
JP7377812B2 (ja) | トランザクションにおける例外ハンドリング | |
CN102662717A (zh) | 一种嵌入式系统自引导启动方法 | |
US7793160B1 (en) | Systems and methods for tracing errors | |
CN102422299A (zh) | 信息设备、程序、防止执行不正当程序代码的方法、及计算机能够读取的记录介质 | |
CN103019787A (zh) | 函数调用关系确定方法、热补丁升级方法及装置 | |
US20110314338A1 (en) | Data collisions in concurrent programs | |
EP3063692B1 (en) | Virtual machine introspection | |
CN102768331B (zh) | 一种otp型的mcu测试装置及其测试方法 | |
Balsamo et al. | Exploring ARM mbed support for transient computing in energy harvesting IoT systems | |
CN101364253A (zh) | 反恶意程序隐蔽调试引擎与方法 | |
CN102735323B (zh) | 防止电子秤使用过程中数据丢失的方法 | |
US9170827B2 (en) | Configuration file compatibility | |
CN104063329B (zh) | 64位立即数处理方法及装置 | |
US8510713B1 (en) | Method and system for validating a disassembler | |
US9069900B2 (en) | Method for determining whether a machine code instruction of a machine code program is executed in the machine code program | |
KR101394225B1 (ko) | 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법 | |
CN112542208B (zh) | Sd nand测试方法、装置、存储介质和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |