📄 powerup.c
字号:
/*
******************************************************************
* XIAMEN YAXON NETWORK CO.LTD.
* XINXI BUILDING,HULI,XIAMEN
* (c) Copyright 2002,XIAMEN YAXON NETWORK CO.LTD. ,XIAMEN
* All Rights Reserved
*
* FileName : PowerUp.C
* Programmer(s): cyb
* Description :
******************************************************************
*/
#define POWERUP_GLOBALS
#include "includes.h"
#include "TimeTask.h"
#include "Lcd.h"
#include "Tools.h"
#include "ErrTask.h"
#include "_Keyboard.h"
#include "systime.h"
#include "uart_drv.h"
#include "Hardware.h"
#include "public.h"
#include "structs.H"
#include "PowerUp.h"
#include "Predictor.h"
#include "ConfigPage.h"
static FORMPAGE *mainformpage;
static TMR_TSK *RefreshMainFormTmr;
static GPOUT WorkIconOut = { 2,3,16,16,1,1,2,2,BORDER_NONE,SCROLLBAR_NONE};
static PHOTOBOX WorkIconPhoto;
static INT8U TimeText[15];
static INT8U StationName[12];
static INT8U StepUp[] = { 0x01,0x01,0x03,0x03,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0xFF,0xFF,
0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01 };
static INT8U StepDown[] = { 0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,
0xFF,0xFF,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x80,0x80 };
static INT8U Auto[] = { 0x80,0x00,0xC0,0x01,0xFF,0xFF,0xC0,0x01,0xA0,0x02,0x90,0x04,0x88,0x08,0x84,0x10,
0x84,0x10,0x88,0x08,0x90,0x04,0xA0,0x02,0xC0,0x01,0xFF,0xFF,0xFF,0xFF,0x00,0x00 };
static INT8U Manual[] = { 0x40,0x00,0x40,0x00,0x50,0x01,0x50,0x01,0x54,0x01,0x54,0x19,0x54,0x19,0x54,0x19,
0x54,0x19,0x54,0x19,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xFC,0x1F,0xF0,0x07,0xE0,0x03 };
static INT8U Steps[] = { 0x01,0x80,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x3F,0xFC,0x7F,0xFE,0xFF,0xFF,
0xFF,0xFF,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x01,0x80 };
static void DplySysTime(void)
{
ASCII_DATE AsciiSysDate;
ASCII_TIME AsciiSysTime;
GetAsciiDate(&AsciiSysDate);
GetAsciiTime(&AsciiSysTime);
memset(TimeText,' ',sizeof(TimeText));
memcpy(&TimeText[0],AsciiSysDate.ac_year,2);
TimeText[2] = '/';
memcpy(&TimeText[3],AsciiSysDate.ac_month,2);
TimeText[5] = '/';
memcpy(&TimeText[6],AsciiSysDate.ac_day,2);
memcpy(&TimeText[10],AsciiSysTime.ac_hour,2);
TimeText[12] = ':';
memcpy(&TimeText[13],AsciiSysTime.ac_minute,2);
}
static void DplyStationName(void)
{
memset(StationName,0,sizeof(StationName));
GetStationName(StationName);
}
static void RefreshMainFormFunc(void)
{
DplySysTime();
DplyStationName();
if (GetFormPageDepth() == 0)
{
Print_LCD(2,0,TimeText,sizeof(TimeText));
Print_LCD(1,1,StationName,sizeof(StationName));
ShowWorkIcon();
}
}
static void MainFormInitFunc(void)
{
WorkIconPhoto.gpout = &WorkIconOut;
DplySysTime();
DplyStationName();
RefreshMainFormTmr = CreateTimer(RefreshMainFormFunc,0);
StartTmr(RefreshMainFormTmr,SECOND,1);
}
void ShowWorkIcon(void)
{
if (GetFormPageDepth() == 0)
{
if(IsWorkAuto())
{
WorkIconPhoto.gpdata = Auto;
RefreshPhotoBox(&WorkIconPhoto);
}
else
{
if(IsManualDeclare())
{
WorkIconPhoto.gpdata = Manual;
RefreshPhotoBox(&WorkIconPhoto);
}
}
}
}
void DplyWorkIcon(INT8U worksta)
{
switch(worksta)
{
case SKIM:
WorkIconPhoto.gpdata = Steps;
break;
case DECLARE:
WorkIconPhoto.gpdata = Manual;
break;
case STEP_UP:
WorkIconPhoto.gpdata = StepUp;
break;
case STEP_DOWN:
WorkIconPhoto.gpdata = StepDown;
break;
}
RefreshPhotoBox(&WorkIconPhoto);
}
static void MainFormHdlKeyFunc(void)
{
INT8U key;
key = GetCurLcdKey();
switch(key)
{
case KEY_UP:
HdlManualPullOut();
break;
case KEY_NCK:
SetDownStream();
break;
case KEY_DOWN:
HdlManualPullIn();
break;
case KEY_ACK:
SetUpStream();
break;
case KEY_rangzuo:
HdlManualRangzuo();
break;
case KEY_chongbo:
HdlManualRepeat();
break;
case KEY_yongji:
HdlManualRongji();
break;
case KEY_ENTER:
CreateConfigPage();
break;
default:
break;
}
}
static void MainFormCreateFunc(void)
{
if (GetFormPageDepth() == 0)
{
Print_LCD(2,0,TimeText,sizeof(TimeText));
Print_LCD(1,1,StationName,sizeof(StationName));
ShowWorkIcon();
}
}
static void MainFormSusPendFunc(void)
{
StopTmr(RefreshMainFormTmr);
}
static void MainFormResumeFunc(void)
{
StartTmr(RefreshMainFormTmr,SECOND,1);
RefreshMainFormFunc();
}
void CreateMainForm(void)
{
mainformpage = AllocateFormPage();
mainformpage->initfunc = MainFormInitFunc;
mainformpage->createfunc = MainFormCreateFunc;
mainformpage->hdlkeyfunc = MainFormHdlKeyFunc;
mainformpage->resumefunc = MainFormResumeFunc;
mainformpage->suspendfunc = MainFormSusPendFunc;
CreateFormPage();
InitKeyBoard();
}
void ActivatePowerUpPage(void)
{
InitLcd();
CreateMainForm();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -