接着上一次,这一次提交完成的有:

数据的断电保存
    上电时数据的加载以及刷新
至此,余留的任务有:
    方向控制
    app
This commit is contained in:
forbelief 2016-04-23 19:38:38 +08:00
parent 69b9efac27
commit 73d440be4d
13 changed files with 1851 additions and 1791 deletions

View file

@ -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;
}