初始化demo版本
This commit is contained in:
13
examples/hmi/inc/hmi_camera.h
Normal file
13
examples/hmi/inc/hmi_camera.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef HMI_CAMERA_H
|
||||
#define HMI_CAMERA_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
extern const MenuImage_t sgc_CameraImage;
|
||||
|
||||
void Hmi_CameraEnter(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_CameraExit(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_CameraLoad(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_CameraTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
20
examples/hmi/inc/hmi_common.h
Normal file
20
examples/hmi/inc/hmi_common.h
Normal file
@ -0,0 +1,20 @@
|
||||
#ifndef HMI_COMMON_H
|
||||
#define HMI_COMMON_H
|
||||
|
||||
#include "menu.h"
|
||||
|
||||
/* 自定义图标数据 */
|
||||
typedef struct
|
||||
{
|
||||
const char *pImageFrame;
|
||||
const char *pImage;
|
||||
} MenuImage_t;
|
||||
|
||||
// 清除屏幕
|
||||
#define CLEAR() printf("\033[2J")
|
||||
// 定位光标
|
||||
#define MOVETO(x,y) printf("\033[%d;%dH", (x), (y))
|
||||
|
||||
void Hmi_OnCommonFunction(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
12
examples/hmi/inc/hmi_more_set.h
Normal file
12
examples/hmi/inc/hmi_more_set.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef HMI_MORE_SET_H
|
||||
#define HMI_MORE_SET_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
|
||||
void Hmi_MoreSetEnter(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MoreSetExit(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MoreSetLoad(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MoreSetTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
14
examples/hmi/inc/hmi_music.h
Normal file
14
examples/hmi/inc/hmi_music.h
Normal file
@ -0,0 +1,14 @@
|
||||
#ifndef HMI_MUSIC_H
|
||||
#define HMI_MUSIC_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
|
||||
extern const MenuImage_t sgc_MusicImage;
|
||||
|
||||
void Hmi_MusicEnter(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MusicExit(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MusicLoad(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MusicTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
13
examples/hmi/inc/hmi_set.h
Normal file
13
examples/hmi/inc/hmi_set.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef HMI_SET_H
|
||||
#define HMI_SET_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
extern const MenuImage_t sgc_SettingImage;
|
||||
|
||||
void Hmi_SetEnter(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_SetExit(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_SetLoad(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_SetTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
12
examples/hmi/inc/hmi_video.h
Normal file
12
examples/hmi/inc/hmi_video.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef HMI_VIDEO_H
|
||||
#define HMI_VIDEO_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
extern const MenuImage_t sgc_VideoImage;
|
||||
|
||||
void Hmi_VideoLoad(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_VideoExit(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_VideoTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
9
examples/hmi/inc/mainhmi.h
Normal file
9
examples/hmi/inc/mainhmi.h
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef MAIN_HMI_H
|
||||
#define MAIN_HMI_H
|
||||
|
||||
#include "hmi_common.h"
|
||||
|
||||
void Hmi_LoadMainHmi(const MenuItemInfo_t *pItemInfo);
|
||||
void Hmi_MainTask(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
#endif
|
||||
103
examples/hmi/src/hmi_camera.c
Normal file
103
examples/hmi/src/hmi_camera.c
Normal file
@ -0,0 +1,103 @@
|
||||
#include "hmi_camera.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
const MenuImage_t sgc_CameraImage = {
|
||||
"**********",
|
||||
"&"
|
||||
};
|
||||
|
||||
|
||||
MenuList_t sg_CameraMenuTable[] =
|
||||
{
|
||||
MENU_ITEM_BIND("TEXT_PHOTO", NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_PHOTOGRAPHY, NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
|
||||
};
|
||||
|
||||
static void ShowCameraMenu(MenuShow_t *ptShowInfo)
|
||||
{
|
||||
uint8_t showNum = 3;
|
||||
menusize_t tmpselect;
|
||||
|
||||
Menu_LimitShowListNum(ptShowInfo, &showNum);
|
||||
|
||||
printf("\e[0;30;46m ------------- %s ------------- \e[0m\n", get_text(ptShowInfo->uMenuDesc.textId));
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %d. %-34s\e[0m\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %d. %-34s\e[0m\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Hmi_CameraEnter(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
Menu_Bind(sg_CameraMenuTable, MENU_GET_NUM(sg_CameraMenuTable), ShowCameraMenu);
|
||||
}
|
||||
|
||||
void Hmi_CameraLoad(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
CLEAR();
|
||||
MOVETO(0, 0);
|
||||
printf("---%s-----\n", get_text(TEXT_LOADING));
|
||||
}
|
||||
|
||||
void Hmi_CameraExit(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s...\n", get_text(TEXT_VIDEO), get_text(TEXT_STOPPING_PLAYBACK));
|
||||
printf("--------------------------\n");
|
||||
#ifdef _WIN32
|
||||
Sleep(1000);
|
||||
#else
|
||||
sleep(1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Hmi_CameraTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("%s(0-%s; 1-%s%s; 2-%s; 3-%s; 4-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_RETURN), get_text(TEXT_RETURN), get_text(TEXT_MAIN_MENU),
|
||||
get_text(TEXT_ENTER), get_text(TEXT_NEXT), get_text(TEXT_PREVIOUS));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case 0:
|
||||
Menu_Exit(true);
|
||||
break;
|
||||
case 1:
|
||||
Menu_Reset();
|
||||
break;
|
||||
case 2:
|
||||
Menu_Enter();
|
||||
break;
|
||||
case 3:
|
||||
Menu_SelectNext(true);
|
||||
break;
|
||||
case 4:
|
||||
Menu_SelectPrevious(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
28
examples/hmi/src/hmi_common.c
Normal file
28
examples/hmi/src/hmi_common.c
Normal file
@ -0,0 +1,28 @@
|
||||
#include "hmi_common.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
void Hmi_OnCommonFunction(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(pItemInfo->uMenuDesc.textId), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd); // 空格作用是忽略上次的回车
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
110
examples/hmi/src/hmi_more_set.c
Normal file
110
examples/hmi/src/hmi_more_set.c
Normal file
@ -0,0 +1,110 @@
|
||||
#include "hmi_more_set.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
MenuList_t sg_MoreSetMenuTable[] =
|
||||
{
|
||||
MENU_ITEM_BIND(TEXT_UPGRADE, NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_ABOUT, NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
|
||||
};
|
||||
|
||||
static void ShowMoreSetMenu(MenuShow_t *ptShowInfo)
|
||||
{
|
||||
uint8_t showNum = 3;
|
||||
uint8_t showsubNum = 3;
|
||||
menusize_t tmpselect;
|
||||
|
||||
MenuShow_t tParentMenuShowInfo;
|
||||
|
||||
if (Menu_QueryParentMenu(&tParentMenuShowInfo, 1) != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Menu_LimitShowListNum(&tParentMenuShowInfo, &showNum);
|
||||
Menu_LimitShowListNum(ptShowInfo, &showsubNum);
|
||||
|
||||
printf("\e[0;30;46m ------------- %s ------------- \e[0m\n", get_text(tParentMenuShowInfo.uMenuDesc.textId));
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + tParentMenuShowInfo.showBaseItem;
|
||||
|
||||
if (tmpselect == tParentMenuShowInfo.selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %d. %-16s\e[0m |", tmpselect + 1, get_text(tParentMenuShowInfo.uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %d. %-16s\e[0m |", tmpselect + 1, get_text(tParentMenuShowInfo.uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
|
||||
if (i < showsubNum)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf(" \e[0;30;47m %-14s\e[0m", get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
else
|
||||
{
|
||||
printf(" \e[7;30;47m %-14s\e[0m", get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void Hmi_MoreSetEnter(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
Menu_Bind(sg_MoreSetMenuTable, MENU_GET_NUM(sg_MoreSetMenuTable), ShowMoreSetMenu);
|
||||
}
|
||||
|
||||
void Hmi_MoreSetLoad(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_MoreSetExit(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_MoreSetTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("%s(0-%s; 1-%s%s; 2-%s; 3-%s; 4-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_RETURN), get_text(TEXT_RETURN), get_text(TEXT_MAIN_MENU),
|
||||
get_text(TEXT_ENTER), get_text(TEXT_NEXT), get_text(TEXT_PREVIOUS));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case 0:
|
||||
Menu_Exit(false);
|
||||
break;
|
||||
case 1:
|
||||
Menu_Reset();
|
||||
break;
|
||||
case 2:
|
||||
Menu_Enter();
|
||||
break;
|
||||
case 3:
|
||||
Menu_SelectNext(true);
|
||||
break;
|
||||
case 4:
|
||||
Menu_SelectPrevious(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
58
examples/hmi/src/hmi_music.c
Normal file
58
examples/hmi/src/hmi_music.c
Normal file
@ -0,0 +1,58 @@
|
||||
#include "hmi_music.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
static bool sg_isInit = false;
|
||||
|
||||
const MenuImage_t sgc_MusicImage = {
|
||||
"mmmmmmmmmm",
|
||||
"@"
|
||||
};
|
||||
|
||||
void Hmi_MusicEnter(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_MusicExit(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_MusicLoad(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
sg_isInit = true;
|
||||
}
|
||||
|
||||
void Hmi_MusicTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd = 0;
|
||||
|
||||
if (sg_isInit)
|
||||
{
|
||||
sg_isInit = false;
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(pItemInfo->uMenuDesc.textId), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
#ifdef _WIN32
|
||||
Sleep(1000);
|
||||
#else
|
||||
sleep(1);
|
||||
#endif
|
||||
}
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
176
examples/hmi/src/hmi_set.c
Normal file
176
examples/hmi/src/hmi_set.c
Normal file
@ -0,0 +1,176 @@
|
||||
#include "hmi_set.h"
|
||||
#include "hmi_more_set.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
const MenuImage_t sgc_SettingImage = {
|
||||
"$$$$$$$$$$",
|
||||
"%"
|
||||
};
|
||||
|
||||
static void OnLanguageFunction(const MenuItemInfo_t *pItemInfo);
|
||||
static void OnBluetoothFunction(const MenuItemInfo_t *pItemInfo);
|
||||
static void OnBatteryFunction(const MenuItemInfo_t *pItemInfo);
|
||||
static void OnStorageFunction(const MenuItemInfo_t *pItemInfo);
|
||||
|
||||
MenuList_t sg_SetMenuTable[] =
|
||||
{
|
||||
MENU_ITEM_BIND(TEXT_LANGUAGE, NULL, NULL, NULL, OnLanguageFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_BLUETOOTH, NULL, NULL, NULL, OnBluetoothFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_BATTERY, NULL, NULL, NULL, OnBatteryFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_STORE, NULL, NULL, NULL, OnStorageFunction, NULL),
|
||||
MENU_ITEM_BIND(TEXT_MORE, Hmi_MoreSetEnter, Hmi_MoreSetExit, Hmi_MoreSetLoad, Hmi_MoreSetTask, NULL),
|
||||
};
|
||||
|
||||
static void ShowSetMenu(MenuShow_t *ptShowInfo)
|
||||
{
|
||||
uint8_t showNum = 3;
|
||||
menusize_t tmpselect;
|
||||
|
||||
Menu_LimitShowListNum(ptShowInfo, &showNum);
|
||||
|
||||
printf("\e[0;30;46m ------------- %s ------------- \e[0m\n", get_text(ptShowInfo->uMenuDesc.textId));
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %d. %-16s\e[0m |\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %d. %-16s\e[0m |\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Hmi_SetEnter(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
Menu_Bind(sg_SetMenuTable, MENU_GET_NUM(sg_SetMenuTable), ShowSetMenu);
|
||||
}
|
||||
|
||||
void Hmi_SetLoad(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_SetExit(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Hmi_SetTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("%s(0-%s; 1-%s; 2-%s; 3-%s; 4-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_RETURN), get_text(TEXT_RETURN_MAIN_MENU),
|
||||
get_text(TEXT_ENTER), get_text(TEXT_NEXT), get_text(TEXT_PREVIOUS));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case 0:
|
||||
Menu_Exit(false);
|
||||
break;
|
||||
case 1:
|
||||
Menu_Reset();
|
||||
break;
|
||||
case 2:
|
||||
Menu_Enter();
|
||||
break;
|
||||
case 3:
|
||||
Menu_SelectNext(true);
|
||||
break;
|
||||
case 4:
|
||||
Menu_SelectPrevious(true);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void OnLanguageFunction(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(TEXT_LANGUAGE), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-中文; 1-English): ",
|
||||
get_text(TEXT_SELECT_OPTION));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
set_language(SYSTEM_LANGUAGE_CHINESE);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_language(SYSTEM_LANGUAGE_ENGLISH);
|
||||
}
|
||||
|
||||
Menu_Exit(false);
|
||||
}
|
||||
|
||||
static void OnBluetoothFunction(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(TEXT_BLUETOOTH), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
|
||||
static void OnBatteryFunction(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(TEXT_BATTERY), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
|
||||
static void OnStorageFunction(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(TEXT_STORE), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
67
examples/hmi/src/hmi_video.c
Normal file
67
examples/hmi/src/hmi_video.c
Normal file
@ -0,0 +1,67 @@
|
||||
#include "hmi_video.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
const MenuImage_t sgc_VideoImage = {
|
||||
"vvvvvvvvvv",
|
||||
"#"
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
void Hmi_VideoLoad(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
printf("--------------------------\n");
|
||||
printf(" %s %s...\n", get_text(pItemInfo->uMenuDesc.textId), get_text(TEXT_LOADING));
|
||||
printf("--------------------------\n");
|
||||
#ifdef _WIN32
|
||||
Sleep(1000);
|
||||
#else
|
||||
sleep(1);
|
||||
#endif
|
||||
CLEAR();
|
||||
MOVETO(0, 0);
|
||||
}
|
||||
|
||||
void Hmi_VideoExit(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
CLEAR();
|
||||
MOVETO(0, 0);
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s %s...\n", get_text(pItemInfo->uMenuDesc.textId), get_text(TEXT_EXIT));
|
||||
printf("--------------------------\n");
|
||||
#ifdef _WIN32
|
||||
Sleep(1000);
|
||||
#else
|
||||
sleep(1);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Hmi_VideoTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("--------------------------\n");
|
||||
printf(" %s%s\n", get_text(pItemInfo->uMenuDesc.textId), get_text(TEXT_FUNCTION_TEST));
|
||||
printf("--------------------------\n");
|
||||
|
||||
printf("%s(0-%s): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
|
||||
|
||||
if (cmd == 0)
|
||||
{
|
||||
Menu_Exit(false);
|
||||
}
|
||||
}
|
||||
140
examples/hmi/src/mainhmi.c
Normal file
140
examples/hmi/src/mainhmi.c
Normal file
@ -0,0 +1,140 @@
|
||||
#include "mainhmi.h"
|
||||
#include "hmi_camera.h"
|
||||
#include "hmi_music.h"
|
||||
#include "hmi_set.h"
|
||||
#include "hmi_video.h"
|
||||
#include "hmi_common.h"
|
||||
#include "menu.h"
|
||||
#include "language.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
MenuList_t sg_MainMenuTable[] =
|
||||
{
|
||||
MENU_ITEM_BIND(TEXT_MUSIC, Hmi_MusicEnter, Hmi_MusicExit, Hmi_MusicLoad, Hmi_MusicTask, (MenuImage_t *)&sgc_MusicImage),
|
||||
|
||||
MENU_ITEM_BIND(TEXT_VIDEO, NULL, Hmi_VideoExit, Hmi_VideoLoad, Hmi_VideoTask, (MenuImage_t *)&sgc_VideoImage),
|
||||
|
||||
MENU_ITEM_BIND(TEXT_CAMERA, Hmi_CameraEnter, Hmi_CameraExit, Hmi_CameraLoad, Hmi_CameraTask, (MenuImage_t *)&sgc_CameraImage),
|
||||
|
||||
MENU_ITEM_BIND(TEXT_SETTING, Hmi_SetEnter, Hmi_SetExit, Hmi_SetLoad, Hmi_SetTask, (MenuImage_t *)&sgc_SettingImage),
|
||||
};
|
||||
|
||||
|
||||
|
||||
static void ShowMainMenu(MenuShow_t *ptShowInfo)
|
||||
{
|
||||
uint8_t showNum = 3;
|
||||
MenuImage_t *pMenuImage;
|
||||
menusize_t tmpselect;
|
||||
|
||||
Menu_LimitShowListNum(ptShowInfo, &showNum);
|
||||
|
||||
printf("\e[0;30;47m ------------- %s ------------- \e[0m\n", get_text(ptShowInfo->uMenuDesc.textId));
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
pMenuImage = (MenuImage_t *)ptShowInfo->pItemsListExtendData[tmpselect];
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %-10s \e[0m", pMenuImage->pImageFrame);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %-10s \e[0m", pMenuImage->pImageFrame);
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
pMenuImage = (MenuImage_t *)ptShowInfo->pItemsListExtendData[tmpselect];
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %-s%-8s%-s \e[0m", pMenuImage->pImage, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId), pMenuImage->pImage);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %-s%-8s%-s \e[0m", pMenuImage->pImage, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId), pMenuImage->pImage);
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
for (int i = 0; i < showNum; i++)
|
||||
{
|
||||
tmpselect = i + ptShowInfo->showBaseItem;
|
||||
pMenuImage = (MenuImage_t *)ptShowInfo->pItemsListExtendData[tmpselect];
|
||||
|
||||
if (tmpselect == ptShowInfo->selectItem)
|
||||
{
|
||||
printf("\e[0;30;47m %-10s \e[0m", pMenuImage->pImageFrame);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\e[7;30;47m %-10s \e[0m", pMenuImage->pImageFrame);
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void Hmi_LoadMainHmi(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
Menu_Bind(sg_MainMenuTable, MENU_GET_NUM(sg_MainMenuTable), ShowMainMenu);
|
||||
}
|
||||
|
||||
void Hmi_MainTask(const MenuItemInfo_t *pItemInfo)
|
||||
{
|
||||
int cmd;
|
||||
|
||||
printf("%s(0-%s; 2-%s; 3-%s; 4-%s; 5-%s(%s); 6-%s(%s); 7-%s(%s)): ",
|
||||
get_text(TEXT_SELECT_OPTION), get_text(TEXT_EXIT_MAIN_MENU),
|
||||
get_text(TEXT_ENTER), get_text(TEXT_NEXT), get_text(TEXT_PREVIOUS),
|
||||
get_text(TEXT_MUSIC), get_text(TEXT_SHORTCUT),
|
||||
get_text(TEXT_LANGUAGE), get_text(TEXT_SHORTCUT),
|
||||
get_text(TEXT_MORE_SETTING), get_text(TEXT_SHORTCUT));
|
||||
scanf(" %d", &cmd);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case 0:
|
||||
Menu_MainExit();
|
||||
break;
|
||||
case 1:
|
||||
Menu_Reset();
|
||||
break;
|
||||
case 2:
|
||||
Menu_Enter();
|
||||
break;
|
||||
case 3:
|
||||
Menu_SelectNext(true);
|
||||
break;
|
||||
case 4:
|
||||
Menu_SelectPrevious(true);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
Menu_ShortcutEnter(true, 1, 0);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
Menu_ShortcutEnter(true, 2, 3, 0);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
Menu_ShortcutEnter(true, 2, 3, 4);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user