📄 menu.h
字号:
#ifndef __MENU_h__
#define __MENU_h__
#include "step_motor.h"
/**********************
* 目录结构体定义 *
**********************/
struct MenuItem
{
short MenuCount;
char *DisplayString;
void (*Subs)();
struct MenuItem *ChildrenMenus;
struct MenuItem *ParentMenus;
}Null;
void NullSubs(void)
{
}
/****************************************************
* 使用说明: *
* 要定义一个菜单,需要做以下几步工作 *
* 1、定义一个结构体数组 *
* 2、如果这个菜单是子菜单,那么把上级菜单的 *
* *ChildrenMenus指针指向该数组的首地址, *
* 并且设置ParentMenus为上层目录的地址 *
* 3、如果这个菜单是 根菜单,那么直接将MenuPoint *
* 指针指向该数组的首地址 *
* 4、通过写一个函数为该数组的每一个元素初始化 *
* 5、如果菜单项是最终选项,那么将*ChildrenMenus *
* 置为NULL,将函数指针*Subs指向实现功能的 *
* 函数。 *
****************************************************/
struct MenuItem MotorMenu[4];
struct MenuItem P_Degree[5];
struct MenuItem N_Degree[4];
/***********************
* 函 数 声 明 区 *
***********************/
void MainMenuInit(void);
void P_DegreeInit(void);
void N_DegreeInit(void);
/**************************************************************
* 函数说明:编辑菜单初始化函数 *
**************************************************************/
void N_DegreeInit(void)
{
N_Degree[0].MenuCount = 5;
N_Degree[0].DisplayString = " 7.5 度 ";
N_Degree[0].Subs = Turn_7_5t;
N_Degree[0].ChildrenMenus = &Null;
N_Degree[0].ParentMenus = MotorMenu;
N_Degree[1].MenuCount = 5;
N_Degree[1].DisplayString = " 15度 ";
N_Degree[1].Subs = Turn_15t;
N_Degree[1].ChildrenMenus = &Null;
N_Degree[1].ParentMenus = MotorMenu;
N_Degree[2].MenuCount = 5;
N_Degree[2].DisplayString = " 30度 ";
N_Degree[2].Subs = Turn_30t;
N_Degree[2].ChildrenMenus = &Null;
N_Degree[2].ParentMenus = &Null;
N_Degree[3].MenuCount = 5;
N_Degree[3].DisplayString = " 60度 ";
N_Degree[3].Subs = Turn_60t;
N_Degree[3].ChildrenMenus = &Null;
N_Degree[3].ParentMenus = MotorMenu;
N_Degree[4].MenuCount = 5;
N_Degree[4].DisplayString = " 90度 ";
N_Degree[4].Subs = Turn_90t;
N_Degree[4].ChildrenMenus = &Null;
N_Degree[4].ParentMenus = MotorMenu;
}
/**************************************************************
* 函数说明:文件菜单函数初始化 *
**************************************************************/
void P_DegreeInit(void)
{
P_Degree[0].MenuCount = 5;
P_Degree[0].DisplayString = " 7.5 度 ";
P_Degree[0].Subs = Turn_7_5;
P_Degree[0].ChildrenMenus = &Null;
P_Degree[0].ParentMenus = MotorMenu;
P_Degree[1].MenuCount = 5;
P_Degree[1].DisplayString = " 15度 ";
P_Degree[1].Subs = Turn_15;
P_Degree[1].ChildrenMenus = &Null;
P_Degree[1].ParentMenus = MotorMenu;
P_Degree[2].MenuCount = 5;
P_Degree[2].DisplayString = " 30度 ";
P_Degree[2].Subs = Turn_30;
P_Degree[2].ChildrenMenus = &Null;
P_Degree[2].ParentMenus = &Null;
P_Degree[3].MenuCount = 5;
P_Degree[3].DisplayString = " 60度 ";
P_Degree[3].Subs = Turn_60;
P_Degree[3].ChildrenMenus = &Null;
P_Degree[3].ParentMenus = MotorMenu;
P_Degree[4].MenuCount = 5;
P_Degree[4].DisplayString = " 90度 ";
P_Degree[4].Subs = Turn_90;
P_Degree[4].ChildrenMenus = &Null;
P_Degree[4].ParentMenus = MotorMenu;
}
/**************************************************************
* 函数说明:根菜单初始化 *
**************************************************************/
void MainMenuInit(void)
{
MotorMenu[0].MenuCount = 2;
MotorMenu[0].DisplayString = " 正转 ";
MotorMenu[0].Subs = NullSubs;
MotorMenu[0].ChildrenMenus = P_Degree;
MotorMenu[0].ParentMenus = &Null;
MotorMenu[1].MenuCount = 2;
MotorMenu[1].DisplayString = " 反转 ";
MotorMenu[1].Subs = NullSubs;
MotorMenu[1].ChildrenMenus = N_Degree;
MotorMenu[1].ParentMenus = &Null;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -