淘晶池软件使用——实现类似日志的功能

前言

实现类似日志一样,记录信息的功能,类似下图一样。
1

准备工作

1、确定数据的存储形式。
2、规划信息要存储在EEPROM的位置,以及最多可以存储条信息,类似下图。
建议

  • 最好是让存储空间连续,方便遍历。比如让每一条信息存储所用的字节数为8或者其他。
  • 建议信息的时间使用类似时间戳的形式存储,信息内容使用数字或者位来表示对应的内容。如下图,时间的存储分为了三个部分,年存储为数字年,月和日存储为月1000+日,时和分存储为时100+分。
  • 如果使用字符串的话,注意有一个"0/“也是占一个字节的。意思就是如果你要存储的字符串是4个字节的,但实际要加上"0/”,也就是5个字节。
    1

开始操作

1、创建页面

1
2

2、功能代码

数据处理

在这里插入图片描述
代码:

//*******************************************************************************
// 数据处理
//******************************************************************************/
//
// 记录故障
temp_4.val=0
while(temp_4.val<=26)
{
  substr old_info_temp.txt,temp_strs.txt,temp_4.val,1
  if(temp_strs.txt=="1")
  {
    temp_1.val=temp_4.val
    click alarm_save,1   // 保存故障信息
  }
  temp_4.val++
}
//
// 记录告警
temp_4.val=32
while(temp_4.val<=57)
{
  substr old_info_temp.txt,temp_strs.txt,temp_4.val,1
  if(temp_strs.txt=="1")
  {
    temp_1.val=temp_4.val
    click alarm_save,1   // 保存告警信息
  }
  temp_4.val++
}

保存数据

1
代码:

//*******************************************************************************
//  故障和告警信息保存
//                    数据写入的形式:
//                                    年月*1000日时*100分告警 如2024/06/03 12:00存储为2024060031200
//******************************************************************************/
temp_2.val=0
if(temp_1.val<=26)   // 故障
{
  if(gFaultNum.val!=10)
  {
    gFaultNum.val++
  }
  substr Loading.FaultTemp.txt,temp_strs.txt,0,4      // 第一个位置
  covx temp_strs.txt,temp_3.val,0,0
  if(temp_strs.txt==""||temp_3.val==0)               // 第一个位置没有存储有效的时间数据
  {
    click alarm_save,0
    covx temp_1.val,temp_strs.txt,0,0
    if(temp_1.val<10)
    {
      temp_time.txt+="0"+temp_strs.txt
    }else
    {
      temp_time.txt+=temp_strs.txt
    }
    Loading.FaultTemp.txt=temp_time.txt
  }else                                              // 第一个位置已经被写入数据,需要将数据向后移动
  {
    click alarm_save,0
    covx temp_1.val,temp_strs.txt,0,0                 // 需要被添加的数据
    if(temp_1.val<10)
    {
      temp_time.txt+="0"+temp_strs.txt
    }else
    {
      temp_time.txt+=temp_strs.txt
    }
    //
    substr FaultTemp.txt,AFTemp.txt,0,144
    FaultTemp.txt=temp_time.txt+AFTemp.txt             // 更新数据
  }
  //
}else                // 告警
{
  if(gAlarmNum.val!=10)
  {
    gAlarmNum.val++
  }
  substr Loading.AlarmTemp.txt,temp_strs.txt,0,4        // 第一个位置
  covx temp_strs.txt,temp_3.val,0,0
  if(temp_strs.txt==""||temp_3.val==0)                 // 第一个位置没有存储有效的时间数据
  {
    click alarm_save,0
    covx temp_1.val,temp_strs.txt,0,0
    temp_time.txt+=temp_strs.txt
    Loading.AlarmTemp.txt=temp_time.txt
  }else                                               // 第一个位置已经被写入数据,需要将数据向后移动
  {
    click alarm_save,0
    covx temp_1.val,temp_strs.txt,0,0
    temp_time.txt+=temp_strs.txt                       // 需要被添加的数据
    //
    substr Loading.AlarmTemp.txt,AFTemp.txt,0,144
    Loading.AlarmTemp.txt=temp_time.txt+AFTemp.txt      // 更新数据
  }
}

时间处理

比如“2024/02/01 12:05”转换为三部分,第一部分是2024 ,第二部分是02001,第三部分是1205
3
代码:

//*******************************************************************************
// 告警和故障时间
//******************************************************************************/
// 年
covx rtc0,temp_strs.txt,0,0
temp_time.txt=temp_strs.txt
//月*1000+日
temp_3.val=rtc1
temp_3.val*=1000
temp_3.val+=rtc2
covx temp_3.val,temp_strs.txt,0,0
strlen temp_strs.txt,temp_3.val
if(temp_3.val==5)
{
  temp_time.txt+=temp_strs.txt
}else
{
  temp_time.txt+="0"+temp_strs.txt
}
// 时*100+分
temp_3.val=rtc3
temp_3.val*=100
temp_3.val+=rtc4
covx temp_3.val,temp_strs.txt,0,0
strlen temp_strs.txt,temp_3.val
if(temp_3.val==4)
{
  temp_time.txt+=temp_strs.txt
}else
{
  temp_time.txt+="0"+temp_strs.txt
}

离开当前页面存储数据到EEPROM功能

5
代码:

//*******************************************************************************
// 保存故障和告警数据
//******************************************************************************/
//
// 保存故障和告警数量
wepo gFaultNum.val,692
wepo gAlarmNum.val,688
//
// 故障
if(Loading.FaultTemp.txt!="")
{
  temp_1.val=0
  temp_2.val=0
  temp_3.val=864  // 故障开始位置
  while(temp_2.val==0&&temp_1.val<=135)
  {
    substr Loading.FaultTemp.txt,temp_strs.txt,temp_1.val,4
    if(temp_strs.txt=="")   // 无效的数据
    {
      temp_2.val=1
    }else
    {
      substr Loading.FaultTemp.txt,temp_strs.txt,temp_1.val,15
      // 年
      substr temp_strs.txt,temp_time.txt,0,4
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 月 日
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,4,5
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 时 分
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,9,4
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 故障
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,13,2
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      temp_3.val+=4
    }
    temp_1.val+=15
  }
}
//
// 告警
if(Loading.AlarmTemp.txt!="")
{
  temp_1.val=0
  temp_2.val=0
  temp_3.val=704  // 告警开始位置
  while(temp_2.val==0&&temp_1.val<=135)
  {
    substr Loading.AlarmTemp.txt,temp_strs.txt,temp_1.val,4
    if(temp_strs.txt=="")   // 有无效的数据
    {
      temp_2.val=1
    }else
    {
      substr Loading.AlarmTemp.txt,temp_strs.txt,temp_1.val,15
      // 年
      substr temp_strs.txt,temp_time.txt,0,4
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 月 日
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,4,5
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 时 分
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,9,4
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      // 故障
      temp_3.val+=4
      substr temp_strs.txt,temp_time.txt,13,2
      covx temp_time.txt,temp_4.val,0,0
      wepo temp_4.val,temp_3.val
      temp_3.val+=4
    }
    temp_1.val+=15
  }
}

显示页面显示数据

这里就不作什么说明了,稍后将工程直接上传。可以直接查看工程

实际效果

6

工程

如果需要下载工程,工程在文章顶部。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值