云台底层控制写完,未测试
This commit is contained in:
parent
73d440be4d
commit
7d46287def
9 changed files with 2079 additions and 1766 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1946,9 +1946,6 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\debug.c</name>
|
<name>$PROJ_DIR$\..\src\app\debug.c</name>
|
||||||
</file>
|
</file>
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\src\app\display.c</name>
|
|
||||||
</file>
|
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\input.c</name>
|
<name>$PROJ_DIR$\..\src\app\input.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
@ -1970,6 +1967,9 @@
|
||||||
<configuration>Debug</configuration>
|
<configuration>Debug</configuration>
|
||||||
</excluded>
|
</excluded>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\src\app\orient.c</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\output.c</name>
|
<name>$PROJ_DIR$\..\src\app\output.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
|
||||||
|
|
@ -222,9 +222,6 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\debug.c</name>
|
<name>$PROJ_DIR$\..\src\app\debug.c</name>
|
||||||
</file>
|
</file>
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\src\app\display.c</name>
|
|
||||||
</file>
|
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\input.c</name>
|
<name>$PROJ_DIR$\..\src\app\input.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
@ -243,6 +240,9 @@
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\NormalDemo_Flash.c</name>
|
<name>$PROJ_DIR$\..\src\app\NormalDemo_Flash.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\..\src\app\orient.c</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\src\app\output.c</name>
|
<name>$PROJ_DIR$\..\src\app\output.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* config.h - 配置整个工程
|
* config.h - 配置整个工程
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
@ -12,36 +12,37 @@
|
||||||
/*
|
/*
|
||||||
* 模拟定时器使用的定时器
|
* 模拟定时器使用的定时器
|
||||||
*/
|
*/
|
||||||
#define SIMULAT_TIMER_PITX PIT1
|
#define SIMULAT_TIMER_PITX PIT1
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 8266
|
* µ÷ÊÔÄ£¿é,»ò8266
|
||||||
*/
|
*/
|
||||||
#define WIFI_UARTX UART0 // PTA1,PTA2
|
#define WIFI_UARTX UART0 // PTA1,PTA2
|
||||||
|
#define DEBUG_UARTX UART0 // PTA1,PTA2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* µ÷ÊÔÄ£¿é,»òÔÆÌ¨
|
* ÔÆÌ¨
|
||||||
*/
|
*/
|
||||||
#define DEBUG_UARTX UART1 // PTC3,PTC4
|
#define ORIENT_UARTX UART1 // PTC3,PTC4
|
||||||
|
#define RE_DE_PINX PTC1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 输入模块
|
* 输入模块
|
||||||
*/
|
*/
|
||||||
#define UP_KEY_PINX PTE20
|
#define UP_KEY_PINX PTA4
|
||||||
#define DOWN_KEY_PINX PTA17
|
#define DOWN_KEY_PINX PTA5
|
||||||
#define OK_KEY_PINX PTE23
|
#define OK_KEY_PINX PTE20
|
||||||
#define RET_KEY_PINX PTA4
|
#define RET_KEY_PINX PTE30
|
||||||
#define AMS_KEY_PINX PTA5
|
#define AMS_KEY_PINX PTD5
|
||||||
#define WIFI_KEY_PINX PTD7
|
#define WIFI_KEY_PINX PTD7
|
||||||
#define MR_KEY_PINX PTE30
|
#define MR_KEY_PINX PTE23
|
||||||
#define MB_KEY_PINX PTA16
|
#define MB_KEY_PINX PTA16
|
||||||
#define MUVB_KEY_PINX PTD6
|
#define MUVB_KEY_PINX PTD4
|
||||||
// knob用必须是PTA或PTD端口的
|
// knob用必须是PTA或PTD端口的
|
||||||
#define KNOB_A_PINX PTD6
|
#define KNOB_A_PINX PTD7
|
||||||
#define KNOB_B_PINX PTD7
|
#define KNOB_B_PINX PTD6
|
||||||
#define KNOB_KEY_PINX PTD4
|
#define KNOB_KEY_PINX PTE20
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -56,19 +57,21 @@
|
||||||
*/
|
*/
|
||||||
#define DS1302_CE_PINX PTB2
|
#define DS1302_CE_PINX PTB2
|
||||||
#define DS1302_CLK_PINX PTB1
|
#define DS1302_CLK_PINX PTB1
|
||||||
#define DS1302_IO_PINX PTB0
|
#define DS1302_IO_PINX PTB3
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 控制执行模块
|
* 控制执行模块
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define LGRED_PINX PTC12
|
#define LGRED_PINX PTC17
|
||||||
#define LGBLUE_PINX PTC13
|
#define LGBLUE_PINX PTC16
|
||||||
#define LGUVB_PINX PTC15
|
#define LGUVB_PINX PTC13
|
||||||
#define WATER_PINX PTC16
|
#define WATER_PINX PTD1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* led控制,多选几个任意端口
|
* led控制,多选几个任意端口
|
||||||
*/
|
*/
|
||||||
|
#define LG1_PINX PTC9
|
||||||
|
#define LG2_PINX PTC8
|
||||||
|
#define LG3_PINX PTC7
|
||||||
#endif // CONFIG_H
|
#endif // CONFIG_H
|
||||||
|
|
|
||||||
51
plan_manage_main/src/app/include/orient.h
Normal file
51
plan_manage_main/src/app/include/orient.h
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* orient.h - 方向控制
|
||||||
|
*
|
||||||
|
* 所有如上,所有如下
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef ORIENT_H
|
||||||
|
#define ORIENT_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum orient_
|
||||||
|
{
|
||||||
|
ORIENT_UP = 0, ORIENT_DOWN, ORIENT_RIGHT, ORIENT_LEFT
|
||||||
|
} orient;
|
||||||
|
|
||||||
|
typedef enum preset_op_
|
||||||
|
{
|
||||||
|
PRESET_SET = 0, PRESET_CLEAR, PRESET_CALL
|
||||||
|
} preset_op;
|
||||||
|
|
||||||
|
typedef enum orient_mode_
|
||||||
|
{
|
||||||
|
MODE_AUTO = 0, MODE_MANUL
|
||||||
|
} orient_mode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void orient_init(void);
|
||||||
|
|
||||||
|
void orient_setspeed(uint8_t addr, orient ori, uint8_t spd);
|
||||||
|
|
||||||
|
void orient_setpreset(uint8_t addr, preset_op op, uint8_t npre);
|
||||||
|
|
||||||
|
void orient_setmode(uint8_t addr, orient_mode mod);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* ORIENT_H */
|
||||||
|
|
||||||
118
plan_manage_main/src/app/orient.c
Normal file
118
plan_manage_main/src/app/orient.c
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
/*
|
||||||
|
* orient.c - 关于光照方向控制的模块
|
||||||
|
*
|
||||||
|
* 所有如上,所有如下
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
|
#include "include/orient.h"
|
||||||
|
#include "include/config.h"
|
||||||
|
|
||||||
|
|
||||||
|
void orient_init(void)
|
||||||
|
{
|
||||||
|
uart_init(ORIENT_UARTX, 2400);
|
||||||
|
orient_setmode(0, MODE_MANUL);
|
||||||
|
orient_setmode(1, MODE_MANUL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* orient_setspeed() - 设置方向控制的速度以及角度
|
||||||
|
*
|
||||||
|
* @addr: 地址码
|
||||||
|
* @ori: 方向
|
||||||
|
* @spd: 表示速度,范围在0~100
|
||||||
|
*/
|
||||||
|
void orient_setspeed(uint8_t addr, orient ori, uint8_t spd)
|
||||||
|
{
|
||||||
|
uint8_t cmd[7] = { 0xff, addr, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
|
|
||||||
|
switch (ori)
|
||||||
|
{
|
||||||
|
case ORIENT_UP:
|
||||||
|
cmd[3] = 0x08;
|
||||||
|
break;
|
||||||
|
case ORIENT_DOWN:
|
||||||
|
cmd[3] = 0x10;
|
||||||
|
break;
|
||||||
|
case ORIENT_LEFT:
|
||||||
|
cmd[3] = 0x04;
|
||||||
|
break;
|
||||||
|
case ORIENT_RIGHT:
|
||||||
|
cmd[3] = 0x02;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spd > 100)
|
||||||
|
{
|
||||||
|
spd = 100;
|
||||||
|
}
|
||||||
|
cmd[4] = 0x3f * spd / 100;
|
||||||
|
cmd[6] = cmd[1] + cmd[2] + cmd[3] + cmd[4] + cmd[5];
|
||||||
|
|
||||||
|
uart_sendN(ORIENT_UARTX, cmd, 7);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* orient_setpreset() - 设置预置点
|
||||||
|
*
|
||||||
|
* @addr: 地址码
|
||||||
|
* @op: 对预置点的操作
|
||||||
|
* @npre: 预置点编号
|
||||||
|
*/
|
||||||
|
void orient_setpreset(uint8_t addr, preset_op op, uint8_t npre)
|
||||||
|
{
|
||||||
|
uint8_t cmd[7] = { 0xff, addr, 0x00, 0x00, 0x00, npre, 0x00 };
|
||||||
|
|
||||||
|
switch (op)
|
||||||
|
{
|
||||||
|
case PRESET_SET:
|
||||||
|
cmd[3] = 0x03;
|
||||||
|
break;
|
||||||
|
case PRESET_CALL:
|
||||||
|
cmd[3] = 0x07;
|
||||||
|
break;
|
||||||
|
case PRESET_CLEAR:
|
||||||
|
cmd[3] = 0x05;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd[6] = cmd[1] + cmd[2] + cmd[3] + cmd[4] + cmd[5];
|
||||||
|
uart_sendN(ORIENT_UARTX, cmd, 7);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* orient_setmode() - 设置云台模式
|
||||||
|
*
|
||||||
|
* @addr: 地址码
|
||||||
|
* @mod: 模式标志
|
||||||
|
*/
|
||||||
|
void orient_setmode(uint8_t addr, orient_mode mod)
|
||||||
|
{
|
||||||
|
uint8_t cmd[7] = { 0xff, addr, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
|
|
||||||
|
switch (mod)
|
||||||
|
{
|
||||||
|
case MODE_AUTO:
|
||||||
|
cmd[2] = 0x90;
|
||||||
|
break;
|
||||||
|
case MODE_MANUL:
|
||||||
|
cmd[2] = 0x00;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cmd[6] = cmd[1] + cmd[2] + cmd[3] + cmd[4] + cmd[5];
|
||||||
|
|
||||||
|
uart_sendN(ORIENT_UARTX, cmd, 7);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
#include "include/pm_time.h"
|
#include "include/pm_time.h"
|
||||||
#include "include/plan_handle.h"
|
#include "include/plan_handle.h"
|
||||||
#include "include/pm_flash.h"
|
#include "include/pm_flash.h"
|
||||||
|
#include "include/orient.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -26,5 +27,6 @@ void pm_init(void)
|
||||||
tft_init();
|
tft_init();
|
||||||
ds1302_init();
|
ds1302_init();
|
||||||
plan_handle_init(); // 计划处理初始化必须在flash初始化之后
|
plan_handle_init(); // 计划处理初始化必须在flash初始化之后
|
||||||
|
orient_init();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,76 @@
|
||||||
* tft.c - tft ÏÔʾÆÁµÄ½Ó¿Ú
|
* tft.c - tft ÏÔʾÆÁµÄ½Ó¿Ú
|
||||||
*
|
*
|
||||||
* uart hmi·½Ê½
|
* uart hmi·½Ê½
|
||||||
|
* 这个模块的核心是一个状态机框架,如下
|
||||||
|
* switch (tft_stt.pgn)
|
||||||
|
* {
|
||||||
|
* case ORIGINAL_PG:
|
||||||
|
* switch (kvp_menu[etn].attr)
|
||||||
|
* {
|
||||||
|
* case R_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_PIC:
|
||||||
|
* break;
|
||||||
|
* case SW_PAGE:
|
||||||
|
* break;
|
||||||
|
* case R_TXT:
|
||||||
|
* break;
|
||||||
|
* default:
|
||||||
|
* break;
|
||||||
|
* }
|
||||||
|
* break;
|
||||||
|
* case MENU_PG:
|
||||||
|
* switch (kvp_menu[etn].attr)
|
||||||
|
* {
|
||||||
|
* case R_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_PIC:
|
||||||
|
* break;
|
||||||
|
* case SW_PAGE:
|
||||||
|
* break;
|
||||||
|
* case R_TXT:
|
||||||
|
* break;
|
||||||
|
* default:
|
||||||
|
* break;
|
||||||
|
* }
|
||||||
|
* break;
|
||||||
|
* case OBJ_SET_PG:
|
||||||
|
* switch (kvp_obj_set[tft_stt.objn][etn].attr)
|
||||||
|
* {
|
||||||
|
* case R_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_NUM:
|
||||||
|
* break;
|
||||||
|
* case RW_PIC:
|
||||||
|
* break;
|
||||||
|
* case SW_PAGE:
|
||||||
|
* break;
|
||||||
|
* case R_TXT:
|
||||||
|
* break;
|
||||||
|
* default:
|
||||||
|
* break;
|
||||||
|
* }
|
||||||
|
* break;
|
||||||
|
* default:
|
||||||
|
* break;
|
||||||
|
* }
|
||||||
|
* 关于显示的所有,最终都会体现在这个框架里,也就是所谓的状态机里,逻辑简单,细节繁琐
|
||||||
|
*
|
||||||
|
* 解释几个关键变量:
|
||||||
|
* tft_stt - 包含状态机当前的状态信息
|
||||||
|
* kvp_* - 数组,每一个元素具有一个页面中单个元素的数据信息,它的集合组成整个页
|
||||||
|
* 面的数据信息,它的元素顺序应该符合页面中的实际顺序,也即它的元素顺序表示了页
|
||||||
|
* 面元素的顺序信息
|
||||||
|
* *_lyt - 数组,配合kvp_*描述一个页面的布局,其每一个元素表示页面中对应行中第一
|
||||||
|
* 个元素在kvp_*数组中的下标
|
||||||
|
* 每一对*_lyt和kvp_*完整的表示了一个页面,也就是数据信息和布局信息
|
||||||
|
* ( * 号意指通配符;页面是按行分割的)
|
||||||
|
*
|
||||||
|
* 所有如上,所有如下
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
@ -17,6 +87,8 @@
|
||||||
#include "include/plan_handle.h"
|
#include "include/plan_handle.h"
|
||||||
#include "include/tft_plan_internal.h"
|
#include "include/tft_plan_internal.h"
|
||||||
#include "include/pm_flash.h"
|
#include "include/pm_flash.h"
|
||||||
|
#include "include/orient.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -37,7 +109,7 @@ typedef enum page_name_
|
||||||
|
|
||||||
typedef enum entry_attr_
|
typedef enum entry_attr_
|
||||||
{
|
{
|
||||||
R_NUM = 0, RW_NUM, RW_PIC, SW_PAGE, R_TXT
|
R_NUM = 0, RW_NUM, RW_PIC, SW_PAGE, R_TXT, RW_TXT
|
||||||
} entry_attr;
|
} entry_attr;
|
||||||
|
|
||||||
typedef enum tft_colour_
|
typedef enum tft_colour_
|
||||||
|
|
@ -66,82 +138,82 @@ static kv_pair kvp_menu[] = {
|
||||||
{ "obj4", 4, SW_PAGE },
|
{ "obj4", 4, SW_PAGE },
|
||||||
{ "obj5", 5, SW_PAGE },
|
{ "obj5", 5, SW_PAGE },
|
||||||
{ "obj6", 6, SW_PAGE },
|
{ "obj6", 6, SW_PAGE },
|
||||||
{ "obj7", 7, SW_PAGE },
|
{ "obj7", 7, SW_PAGE },
|
||||||
{ "note", 0, R_TXT }
|
{ "note", 0, R_TXT }
|
||||||
};
|
};
|
||||||
|
|
||||||
kv_pair kvp_obj_set[][PLAN_DATA_NUM] =
|
kv_pair kvp_obj_set[][PLAN_DATA_NUM] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
{ "ob", 1, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 1, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 0
|
}, // 0
|
||||||
{
|
{
|
||||||
{ "ob", 2, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 2, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 1
|
}, // 1
|
||||||
{
|
{
|
||||||
{ "ob", 3, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 3, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 2
|
}, // 2
|
||||||
{
|
{
|
||||||
{ "ob", 4, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 4, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 3
|
}, // 3
|
||||||
{
|
{
|
||||||
{ "ob", 5, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 5, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 4
|
}, // 4
|
||||||
{
|
{
|
||||||
{ "ob", 6, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 6, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 5
|
}, // 5
|
||||||
{
|
{
|
||||||
{ "ob", 7, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 7, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 6
|
}, // 6
|
||||||
{
|
{
|
||||||
{ "ob", 8, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
{ "ob", 8, R_NUM}, { "sw", 1, RW_PIC },// 0~1
|
||||||
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
{ "bg_y", 2016, RW_NUM }, { "bg_mo", 4, RW_NUM }, { "bg_d", 14, RW_NUM }, // 2~4
|
||||||
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
{ "bg_h", 14, RW_NUM }, { "bg_mi", 0, RW_NUM }, { "ed_h", 14, RW_NUM }, { "ed_mi", 0, RW_NUM }, // 5~8
|
||||||
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
{ "lg_r", 0, RW_PIC}, { "lg_b", 0, RW_PIC }, { "lg_uvb", 0, RW_PIC }, { "water", 0, RW_PIC }, // 9~12
|
||||||
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
{ "pd_d", 3, RW_NUM }, { "pd_h", 3, RW_NUM }, { "pd_mi", 3, RW_NUM }, // 13~15
|
||||||
{ "x", 0, RW_NUM }, { "y", 0, RW_NUM }, // 16~17
|
{ "x", 0, RW_TXT }, { "y", 0, RW_TXT }, // 16~17
|
||||||
{ "cnt", 0, R_NUM } //18
|
{ "cnt", 0, R_NUM } //18
|
||||||
}, // 7
|
}, // 7
|
||||||
};
|
};
|
||||||
|
|
@ -158,7 +230,7 @@ static void sw_to_obj(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void tft_init(void)
|
void tft_init(void)
|
||||||
{
|
{
|
||||||
uart_init(TFT_UARTX, 9600);
|
uart_init(TFT_UARTX, 9600);
|
||||||
|
|
@ -489,19 +561,19 @@ void refrush_obj(void)
|
||||||
switch (kvp_obj_set[tft_stt.objn][tft_stt.etn].attr)
|
switch (kvp_obj_set[tft_stt.objn][tft_stt.etn].attr)
|
||||||
{
|
{
|
||||||
case R_NUM:
|
case R_NUM:
|
||||||
sprintf(tft_cmd_str,"%s.val=%d",
|
sprintf(tft_cmd_str,"%s.val=%d",
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
break;
|
break;
|
||||||
case RW_NUM:
|
case RW_NUM:
|
||||||
sprintf(tft_cmd_str,"%s.val=%d",
|
sprintf(tft_cmd_str,"%s.val=%d",
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
break;
|
break;
|
||||||
case RW_PIC:
|
case RW_PIC:
|
||||||
sprintf(tft_cmd_str, "vis %s,%d",
|
sprintf(tft_cmd_str, "vis %s,%d",
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
|
|
@ -536,7 +608,7 @@ void tft_ret(void)
|
||||||
tft_stt.etn = 0;
|
tft_stt.etn = 0;
|
||||||
tft_send_cmd("page menu");
|
tft_send_cmd("page menu");
|
||||||
tft_page_refresh();
|
tft_page_refresh();
|
||||||
|
|
||||||
sw_to_obj();
|
sw_to_obj();
|
||||||
tft_to_plan_input(tft_stt.objn);
|
tft_to_plan_input(tft_stt.objn);
|
||||||
enter_critical();
|
enter_critical();
|
||||||
|
|
@ -673,7 +745,7 @@ static void tft_input(void)
|
||||||
{
|
{
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].value =
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value =
|
||||||
!kvp_obj_set[tft_stt.objn][tft_stt.etn].value;
|
!kvp_obj_set[tft_stt.objn][tft_stt.etn].value;
|
||||||
sprintf(tft_cmd_str, "vis %s,%d",
|
sprintf(tft_cmd_str, "vis %s,%d",
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
||||||
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
|
|
@ -682,6 +754,50 @@ static void tft_input(void)
|
||||||
tft_set_color(tft_stt.etn, TFT_PURPLE);
|
tft_set_color(tft_stt.etn, TFT_PURPLE);
|
||||||
clear_key_m();
|
clear_key_m();
|
||||||
break;
|
break;
|
||||||
|
case RW_TXT:
|
||||||
|
tft_set_color(tft_stt.etn, TFT_RED);
|
||||||
|
in_lmt = tft_input_limit(kvp_obj_set[tft_stt.objn][tft_stt.etn].key);
|
||||||
|
bg_v = kvp_obj_set[tft_stt.objn][tft_stt.etn].value;
|
||||||
|
knob_enable();
|
||||||
|
uint8_t addr = 0;
|
||||||
|
if (strcmp(kvp_obj_set[tft_stt.objn][tft_stt.etn].key, "x") == 0)
|
||||||
|
{
|
||||||
|
addr = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
addr = 1;
|
||||||
|
}
|
||||||
|
while (get_key_mean(RET_KEY) == N_KEY)
|
||||||
|
{
|
||||||
|
in_v = bg_v + get_knob_val();
|
||||||
|
if (in_v < in_lmt.min)
|
||||||
|
{
|
||||||
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value = in_lmt.min;
|
||||||
|
bg_v = in_lmt.min;
|
||||||
|
knob_clear();
|
||||||
|
}
|
||||||
|
else if (in_v > in_lmt.max)
|
||||||
|
{
|
||||||
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value = in_lmt.max;
|
||||||
|
bg_v = in_lmt.max;
|
||||||
|
knob_clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value = in_v;
|
||||||
|
}
|
||||||
|
sprintf(tft_cmd_str, "%s.txt=\"%d\"", kvp_obj_set[tft_stt.objn][tft_stt.etn].key,
|
||||||
|
kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
|
tft_send_cmd(tft_cmd_str);
|
||||||
|
|
||||||
|
orient_setspeed(addr, kvp_obj_set[tft_stt.objn][tft_stt.etn].value >= 0 ? ORIENT_RIGHT : ORIENT_LEFT, kvp_obj_set[tft_stt.objn][tft_stt.etn].value);
|
||||||
|
}
|
||||||
|
orient_setmode(addr, MODE_MANUL);
|
||||||
|
knob_disable();
|
||||||
|
tft_set_color(tft_stt.etn, TFT_PURPLE);
|
||||||
|
clear_key_m();
|
||||||
|
break;
|
||||||
case SW_PAGE:
|
case SW_PAGE:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -694,7 +810,7 @@ static void tft_input(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void tft_ok(void)
|
void tft_ok(void)
|
||||||
{
|
{
|
||||||
switch (tft_stt.pgn)
|
switch (tft_stt.pgn)
|
||||||
{
|
{
|
||||||
case ORIGINAL_PG:
|
case ORIGINAL_PG:
|
||||||
|
|
@ -827,7 +943,7 @@ void tft_page_refresh(void)
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
break;
|
break;
|
||||||
case RW_PIC:
|
case RW_PIC:
|
||||||
sprintf(tft_cmd_str, "vis %s,%d",
|
sprintf(tft_cmd_str, "vis %s,%d",
|
||||||
kvp_obj_set[tft_stt.objn][etn].key,
|
kvp_obj_set[tft_stt.objn][etn].key,
|
||||||
kvp_obj_set[tft_stt.objn][etn].value);
|
kvp_obj_set[tft_stt.objn][etn].value);
|
||||||
tft_send_cmd(tft_cmd_str);
|
tft_send_cmd(tft_cmd_str);
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue