接着上一次,这一次提交完成的有:
数据的断电保存
上电时数据的加载以及刷新
至此,余留的任务有:
方向控制
app
This commit is contained in:
parent
69b9efac27
commit
73d440be4d
13 changed files with 1851 additions and 1791 deletions
|
|
@ -17,10 +17,12 @@
|
|||
|
||||
#include "gpio.h"
|
||||
|
||||
#include "include/tft_plan_internal.h"
|
||||
|
||||
#include "include/plan_handle.h"
|
||||
#include "include/pm_time.h"
|
||||
#include "include/tft.h"
|
||||
#include "config.h"
|
||||
#include "include/config.h"
|
||||
#include "include/pm_flash.h"
|
||||
|
||||
typedef struct plan_output_
|
||||
{
|
||||
|
|
@ -28,24 +30,10 @@ typedef struct plan_output_
|
|||
uint8_t cnt;
|
||||
} plan_output;
|
||||
|
||||
typedef struct plan_input_
|
||||
{
|
||||
calendar_info bg_t;
|
||||
calendar_info ed_t;
|
||||
calendar_info pd_t;
|
||||
|
||||
uint8_t x_orient;
|
||||
uint8_t y_orient;
|
||||
uint8_t lg_r : 1;
|
||||
uint8_t lg_b : 1;
|
||||
uint8_t lg_uvb : 1;
|
||||
uint8_t water : 1;
|
||||
uint8_t sw : 1;
|
||||
} plan_input;
|
||||
|
||||
static void indata_to_outdata(plan_input *ind, plan_output *outd);
|
||||
static void ctr_exe(uint8_t activity);
|
||||
|
||||
static void plan_inpu_to_tft(void);
|
||||
|
||||
static plan_output plan_out[PLAN_DATA_NUM] = { 0 };
|
||||
plan_input plan_in[PLAN_DATA_NUM] = { 0 };
|
||||
|
|
@ -59,6 +47,13 @@ void plan_handle_init(void)
|
|||
gpio_Interrupt_init(LGUVB_PINX, GPO, GPI_DISAB);
|
||||
gpio_Interrupt_init(WATER_PINX, GPO, GPI_DISAB);
|
||||
// 还有设置方向的初始化
|
||||
|
||||
/*
|
||||
* 数据恢复,数据从从flash到plan_handle模块,再从plan_handle模块到tft模块
|
||||
*/
|
||||
flash_read((uint8_t *)&plan_in, sizeof(plan_in));
|
||||
plan_inpu_to_tft();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -130,3 +125,79 @@ void plan_handle(void)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* tft_to_plan_input() - 将tft显示的数据提取到计划处理的输入数据结构中
|
||||
* @objn: 提取的对象号,0~7
|
||||
*
|
||||
* 这个函数应该在tft输入有改变是被调用。
|
||||
*/
|
||||
void tft_to_plan_input(uint8_t objn)
|
||||
{
|
||||
plan_in[objn].bg_t.year = *get_value_of_kvp("bg_y", objn);
|
||||
plan_in[objn].bg_t.month = *get_value_of_kvp("bg_mo", objn);
|
||||
plan_in[objn].bg_t.mday = *get_value_of_kvp("bg_d", objn);
|
||||
plan_in[objn].bg_t.hour = *get_value_of_kvp("bg_h", objn);
|
||||
plan_in[objn].bg_t.min = *get_value_of_kvp("bg_mi", objn);
|
||||
|
||||
/*
|
||||
* 结束时间在tft条目没有年、月、日,赋值为何开始时间相同
|
||||
*/
|
||||
plan_in[objn].ed_t.year = plan_in[objn].bg_t.year;
|
||||
plan_in[objn].ed_t.month = plan_in[objn].bg_t.month;
|
||||
plan_in[objn].ed_t.mday = plan_in[objn].bg_t.mday;
|
||||
plan_in[objn].ed_t.hour = *get_value_of_kvp("ed_h", objn);
|
||||
plan_in[objn].ed_t.min = *get_value_of_kvp("ed_mi", objn);
|
||||
|
||||
plan_in[objn].pd_t.mday = *get_value_of_kvp("pd_d", objn);
|
||||
plan_in[objn].pd_t.hour = *get_value_of_kvp("pd_h", objn);
|
||||
plan_in[objn].pd_t.min = *get_value_of_kvp("pd_mi", objn);
|
||||
|
||||
plan_in[objn].lg_r = *get_value_of_kvp("lg_r", objn);
|
||||
plan_in[objn].lg_b = *get_value_of_kvp("lg_b)", objn);
|
||||
plan_in[objn].lg_uvb = *get_value_of_kvp("lg_uvb", objn);
|
||||
plan_in[objn].water = *get_value_of_kvp("water", objn);
|
||||
|
||||
plan_in[objn].sw = *get_value_of_kvp("sw", objn);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* plan_inpu_to_tft() - 计划数据到tft
|
||||
*
|
||||
* 这个函数是为了在初始化时将从flash中恢复的计划数据重新装入tft
|
||||
*/
|
||||
static void plan_inpu_to_tft(void)
|
||||
{
|
||||
for(uint8_t objn = 0; objn < 8; objn++)
|
||||
{
|
||||
*get_value_of_kvp("bg_y", objn) = plan_in[objn].bg_t.year;
|
||||
*get_value_of_kvp("bg_mo", objn) = plan_in[objn].bg_t.month;
|
||||
*get_value_of_kvp("bg_d", objn) = plan_in[objn].bg_t.mday;
|
||||
*get_value_of_kvp("bg_h", objn) = plan_in[objn].bg_t.hour;
|
||||
*get_value_of_kvp("bg_mi", objn) = plan_in[objn].bg_t.min;
|
||||
|
||||
/*
|
||||
* 结束时间在tft条目没有年、月、日
|
||||
* *get_value_of_kvp("ed_y", objn) = plan_in[objn].ed_t.year;
|
||||
* *get_value_of_kvp("ed_mo", objn) = plan_in[objn].ed_t.month;
|
||||
* *get_value_of_kvp("ed_d", objn) = plan_in[objn].ed_t.mday;
|
||||
*/
|
||||
*get_value_of_kvp("ed_h", objn) = plan_in[objn].ed_t.hour;
|
||||
*get_value_of_kvp("ed_mi", objn) = plan_in[objn].ed_t.min;
|
||||
|
||||
*get_value_of_kvp("pd_d", objn) = plan_in[objn].pd_t.mday;
|
||||
*get_value_of_kvp("pd_h", objn) = plan_in[objn].pd_t.hour;
|
||||
*get_value_of_kvp("pd_mi", objn) = plan_in[objn].pd_t.min;
|
||||
|
||||
*get_value_of_kvp("lg_r", objn) = plan_in[objn].lg_r;
|
||||
*get_value_of_kvp("lg_b", objn) = plan_in[objn].lg_b;
|
||||
*get_value_of_kvp("lg_uvb", objn) = plan_in[objn].lg_uvb;
|
||||
*get_value_of_kvp("water", objn) = plan_in[objn].water;
|
||||
|
||||
*get_value_of_kvp("sw", objn) = plan_in[objn].sw;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue