关于RK芯片定时开关机周模式的梳理设定

这篇博客也是花费了好几天的工作量,从开始的毫无头绪到各种设定被打乱,直到现在的版本,主要是一种逻辑。

博客demo 封装下载地址: 打怪机器人/PowerRkLibrary

项目里面可以直接引用库文件,调用方法直接看底部说明即可

implementation 'com.gitee.shotter_admin:power-rk-library:1.0.9'

下面的可以不用看了,直接看源码就行了,代码比较工整 。

有时候我们程序员遇到问题会去死磕bug 。 这几天就完成了一个逻辑,一个比较复杂的业务逻辑。这个时候如果一步完成的话会比较复杂的话,其实有更多的选择,比如通过两个界面或者3个相同的界面,去处理不同的业务逻辑.

说远了,不扯了,先看一下后台设定的定时开关机效果图.

嗯,效果看上去比较简洁。但是获取的数据对于设备端来说是个噩梦. 系统的形式开关机需要我输入 年月日,时分秒,精确到秒,一眼看过去,全部都是以星期来定义的.,我是这样梳理的,

 1: 设备定时开关机是 年月日 时分秒

 2 :   服务器的数据的星期

 3:   获取当天的日期,星期,以今天为基准,吧数据库所有的数据增加年月日时分秒

 4:开机时间,关机时间分别分开存储

 5:获取目前的时间戳

 6:使用储存的数据比对,比现在大的,最小的一个就是下一个的关机时间

 7:比关机时间大的最小的一个就是开机时间.

 8:这样就可以获取下一次的开机时间和关机时间

目前已经封装成一个库文件了,这个项目目前已经经过3年的市场洗礼,简单而且稳定,大家已经不需要关注代码本身了,因为逻辑确实比较复杂,

代码已经提交给gitee ,里面标记了 项目的调用方法,具体使用方法,请移步到  gitee .

 源码目录: https://gitee.com/shotter/power-rk-library

# PowerRkLibrary

 

#### 使用说明
  0:判断当前开关机时间  
  CheckTimeRunnable runnable = new CheckTimeRunnable(getApplication(), new OnResultListener() {  
              @Override  
              public void jujleCurrentIsShutDownTime(boolean isShutDown) {  
                  if (isShutDown) {  
                      //当前是开机时间  
                  } else {  
                      //当前是关机时间  
                  }  
              }  
          });  
          new Thread(runnable).start();  


  1:日志操作类
  PowerDbManager powerDbManager = PowerDbManager.getInstance(OrderActivity.this);
  1.1 清空数据
     powerDbManager.clearAllTimeLogDb();

  1.2 查询日志操作类
     List<PowerLogEntity> borOrders = powerDbManager.getDbLogList();

 2:定时开关机操作数据库以及设置方法
    2.1 增加数据库
    TimeLocalEntity timeLocalEntity = new TimeLocalEntity(id, onTime, offTime, "true", "true", "true", "true", "true", "true", "true");
    boolean isSave = powerDbManager.addTimerDb(timeLocalEntity);

    2.2:设置系统定时开关机
    PowerOnOffUtil powerOnOffUtil = new PowerOnOffUtil(OrderActivity.this);
    powerOnOffUtil.changePowerOnOffByWorkModel(powerDbManager);

    2.3:修改数据库
      TimeLocalEntity timeNew = new TimeLocalEntity("1606189497543", "9:30", "16:00", "true", "true", "true", "true", "true", "true", "true");
      powerDbManager.updateTimeById(timeNew);

    2.4:删除某一项数据
      String delId = "1606188290870";
      powerDbManager.delTimerById(delId);

    2.5:查询全部数据库
      List<TimeLocalEntity> borOrders = powerDbManager.queryTimerList();

    2.6:获取某一项数据
    String timeId ="123456";
    TimeLocalEntity timeEntity = powerDbManager.getTimeById(timeId)


 3:获取下一次的开关机时间
    String onTime = PowerOnOffUtil.getPowerOnTime(PowerOnOffLocalActivity.this);
    String offTime = PowerOnOffUtil.getPowerOffTime(PowerOnOffLocalActivity.this);
        /***
         *
         * @param context
         * @param isPowerOnOffTime
         * true  开机时间
         * false 关机时间
         * @return
         */
    String time = PowerOnOffUtil.getNextPowerTimeShow(PowerOnOffLocalActivity.this,boolean isPowerOnOff)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值