完成转向功能测试;加入手动自动的基础功能;计划执行部分写完,未实际测试

This commit is contained in:
forbelief 2016-04-29 17:01:10 +08:00
parent 7d46287def
commit ec2ed2d196
21 changed files with 2020 additions and 1680 deletions

View file

@ -1,16 +1,16 @@
/*
* plan_handle.c -
* plan_handle.c -
*
*
*
*
*
*
*
* 访
* tft.c模块访
* 访
*
*
*
*
*
*
*
* 访
* tft.c模块访
* 访
*
*/
#include <stdint.h>
@ -23,6 +23,8 @@
#include "include/tft.h"
#include "include/config.h"
#include "include/pm_flash.h"
#include "include/orient.h"
#include "include/key.h"
typedef struct plan_output_
{
@ -32,8 +34,12 @@ typedef struct plan_output_
static void indata_to_outdata(plan_input *ind, plan_output *outd);
static void ctr_exe(uint8_t activity);
static void plan_ctr_exe(uint8_t activity);
static void plan_inpu_to_tft(void);
static void plan_key_func(void);
static void manul_key_func(void);
static void manul_ctr(void);
static void plan_ctr(void);
static plan_output plan_out[PLAN_DATA_NUM] = { 0 };
plan_input plan_in[PLAN_DATA_NUM] = { 0 };
@ -46,10 +52,14 @@ void plan_handle_init(void)
gpio_Interrupt_init(LGBLUE_PINX, GPO, GPI_DISAB);
gpio_Interrupt_init(LGUVB_PINX, GPO, GPI_DISAB);
gpio_Interrupt_init(WATER_PINX, GPO, GPI_DISAB);
// 还有设置方向的初始化
gpio_Interrupt_init(LG1_PINX, GPO, GPI_DISAB);
gpio_Interrupt_init(LG2_PINX, GPO, GPI_DISAB);
gpio_Interrupt_init(LG3_PINX, GPO, GPI_DISAB);
// 还有设置方向的初始化
/*
* flash到plan_handle模块plan_handle模块到tft模块
* flash到plan_handle模块plan_handle模块到tft模块
*/
flash_read((uint8_t *)&plan_in, sizeof(plan_in));
plan_inpu_to_tft();
@ -64,11 +74,15 @@ static void indata_to_outdata(plan_input *ind, plan_output *outd)
calendar_info st = get_system_time();
uint32_t sys_sec = calendar_to_sec(&st);
ind->pd_t.year = START_YEAR;
ind->pd_t.month = 1;
ind->pd_t.mday = 1;
uint32_t pd_sec = calendar_to_sec(&ind->pd_t);
uint32_t crt_bg_sec = calendar_to_sec(&ind->bg_t) + pd_sec * outd->cnt;
uint32_t crt_ed_sec = calendar_to_sec(&ind->ed_t) + pd_sec * outd->cnt;
if (crt_bg_sec < sys_sec && crt_ed_sec > sys_sec)
uint32_t ctr_bg_sec = calendar_to_sec(&ind->bg_t) + pd_sec * outd->cnt;
uint32_t ctr_ed_sec = calendar_to_sec(&ind->ed_t) + pd_sec * outd->cnt;
if (ctr_bg_sec < sys_sec && ctr_ed_sec > sys_sec)
{
outd->is_reach = 1;
}
@ -84,7 +98,7 @@ static void indata_to_outdata(plan_input *ind, plan_output *outd)
return;
}
static void ctr_exe(uint8_t activity)
static void plan_ctr_exe(uint8_t activity)
{
if (activity >= PLAN_DATA_NUM)
{
@ -95,7 +109,8 @@ static void ctr_exe(uint8_t activity)
}
else
{
//set_orient(plan_in[activity].x_orient, plan_in[activity].y_orient);
orient_presetop(0, PRESET_CALL, activity + 1);
orient_presetop(1, PRESET_CALL, activity + 1);
gpio_set(LGRED_PINX, plan_in[activity].lg_r);
gpio_set(LGBLUE_PINX, plan_in[activity].lg_b);
gpio_set(LGUVB_PINX, plan_in[activity].lg_uvb);
@ -105,7 +120,7 @@ static void ctr_exe(uint8_t activity)
}
void plan_handle(void)
void plan_ctr(void)
{
uint8_t activity = PLAN_DATA_NUM;
@ -121,16 +136,48 @@ void plan_handle(void)
}
}
}
ctr_exe(activity);
plan_ctr_exe(activity);
return;
}
void plan_handle(void)
{
if (gpio_get(AMS_KEY_PINX))
{
plan_ctr();
}
else
{
manul_ctr();
}
return;
}
void key_func(void)
{
if (gpio_get(AMS_KEY_PINX))
{
plan_key_func();
}
else
{
manul_key_func();
}
return;
}
void manul_ctr(void)
{
return;
}
/*
* tft_to_plan_input() - tft显示的数据提取到计划处理的输入数据结构中
* @objn: 0~7
* tft_to_plan_input() - tft显示的数据提取到计划处理的输入数据结构中
* @objn: 0~7
*
* tft输入有改变是被调用
* tft输入有改变是被调用
*/
void tft_to_plan_input(uint8_t objn)
{
@ -141,7 +188,7 @@ void tft_to_plan_input(uint8_t objn)
plan_in[objn].bg_t.min = *get_value_of_kvp("bg_mi", objn);
/*
* tft条目没有年
* 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;
@ -165,9 +212,9 @@ void tft_to_plan_input(uint8_t objn)
/*
* plan_inpu_to_tft() - tft
* plan_inpu_to_tft() - tft
*
* flash中恢复的计划数据重新装入tft
* flash中恢复的计划数据重新装入tft
*/
static void plan_inpu_to_tft(void)
{
@ -180,7 +227,7 @@ static void plan_inpu_to_tft(void)
*get_value_of_kvp("bg_mi", objn) = plan_in[objn].bg_t.min;
/*
* tft条目没有年
* 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;
@ -201,3 +248,279 @@ static void plan_inpu_to_tft(void)
}
return;
}
static void plan_key_func(void)
{
/*
*
*/
switch (get_key_mean(UP_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("UP_KEY 单击\n");
tft_left();
break;
case D_KEY:
printf("UP_KEY 双击\n");
tft_up();
break;
case L_KEY:
printf("UP_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(DOWN_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("DOWN_KEY 单击\n");
tft_right();
break;
case D_KEY:
printf("DOWN_KEY 双击\n");
tft_down();
break;
case L_KEY:
printf("DOWN_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(OK_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("OK_KEY 单击\n");
tft_ok();
break;
case D_KEY:
printf("OK_KEY 双击\n");
break;
case L_KEY:
printf("OK_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(RET_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("RET_KEY 单击\n");
tft_ret();
break;
case D_KEY:
printf("RET_KEY 双击\n");
break;
case L_KEY:
printf("RET_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MR_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MR_KEY 单击\n");
break;
case D_KEY:
printf("MR_KEY 双击\n");
break;
case L_KEY:
printf("MR_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MB_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MB_KEY 单击\n");
break;
case D_KEY:
printf("MB_KEY 双击\n");
break;
case L_KEY:
printf("MB_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MUVB_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MUVB_KEY 单击\n");
break;
case D_KEY:
printf("MUVB_KEY 双击\n");
break;
case L_KEY:
printf("MUVB_KEY 长按\n");
break;
default:
break;
}
return;
}
static void manul_key_func(void)
{
/*
*
*/
static uint8_t mlgr, mlgb, mlguvb;
switch (get_key_mean(UP_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("UP_KEY 单击\n");
orient_setspeed(0, ORIENT_LEFT, 100);
break;
case D_KEY:
printf("UP_KEY 双击\n");
orient_setspeed(0, ORIENT_RIGHT, 100);
break;
case L_KEY:
printf("UP_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(DOWN_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("DOWN_KEY 单击\n");
orient_setspeed(1, ORIENT_LEFT, 100);
break;
case D_KEY:
printf("DOWN_KEY 双击\n");
orient_setspeed(1, ORIENT_RIGHT, 100);
break;
case L_KEY:
printf("DOWN_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(OK_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("OK_KEY 单击\n");
break;
case D_KEY:
printf("OK_KEY 双击\n");
break;
case L_KEY:
printf("OK_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(RET_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("RET_KEY 单击\n");
orient_setmode(0, MODE_MANUL);
orient_setmode(1, MODE_MANUL);
break;
case D_KEY:
printf("RET_KEY 双击\n");
break;
case L_KEY:
printf("RET_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MR_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MR_KEY 单击\n");
mlgr = !mlgr;
gpio_set(LGRED_PINX, mlgr);
break;
case D_KEY:
printf("MR_KEY 双击\n");
break;
case L_KEY:
printf("MR_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MB_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MB_KEY 单击\n");
mlgb = !mlgb;
gpio_set(LGBLUE_PINX, mlgb);
break;
case D_KEY:
printf("MB_KEY 双击\n");
break;
case L_KEY:
printf("MB_KEY 长按\n");
break;
default:
break;
}
switch (get_key_mean(MUVB_KEY))
{
case N_KEY:
//printf("无键\n");
break;
case S_KEY:
printf("MUVB_KEY 单击\n");
mlguvb = !mlguvb;
gpio_set(LGUVB_PINX, mlguvb);
break;
case D_KEY:
printf("MUVB_KEY 双击\n");
break;
case L_KEY:
printf("MUVB_KEY 长按\n");
break;
default:
break;
}
return;
}