📄 ftydevmain.cpp
字号:
//DevMain.c
////////////////////////////////////////////////////////////////////
//本 c 文件统筹整个系统。
//
//文件层次:
//作者:黄伟德
//日期:2005
//版本:初版,V1.0
////////////////////////////////////////////////////////////////////
#include "config.h"
//#include "stdafx.h"
#include "target.h"
#include "sed1335_driver.h"
extern U8 Data373_2;
extern void HappyLED(U8 stat);
extern U8 KeyScan();
/**********************************************************************
**系统需要保持的设置(全局变量),每次开机从EEPROM读出,被修改时写入EEPROM
**1.语言设置------------------------g_ucLanguageIndex
**2.串口设置---------------g_ucProtocol
** ---------------g_ucBaudRate
** ---------------g_ucMachineAddr
**3.数据过滤模式--------------------g_ucFilterMode
**4.加速触发参数-----------g_ucTriggerParam(有三个参数,对应三种过滤模式)
** .打印设置
#define ROM_ADDR_LANGUAGE (U16)0
#define ROM_ADDR_PROTOCOL (U16)1
#define ROM_ADDR_BAUDRATE (U16)2
#define ROM_ADDR_MACHINEADDR (U16)3
#define ROM_ADDR_FILTERMODE (U16)4
//占三个字节 addr5 - addr7
#define ROM_ADDR_TRIGGERPARA (U16)5
#define ROM_ADDR_ (U16)
**********************************************************************/
U8 g_ucLanguageIndex;
U16 g_AcceleDataBuf[500];
U16 g_wNBuf[16];
U8 g_ucMessageCode;
U8 g_ucKeyDownData;
U8 g_ucKeyData;
U8 g_ucOldSubMenu;
BOOL g_bTriggerMode;
U8 RegNoData[10];
MENU_ITEM_DATA g_CurrentData;
BIT_IN_U8_UNION g_BitInU8Stat[3];
_UP_HOST_CMD_INFO g_HostCmdInfo;
_DEV_FTY100_DATA g_FTY_Data;
U8 g_ucStatusCode;
U8 g_ucProtocol;
U8 g_ucMachineAddr;
U8 g_ucBaudRate;
U8 ucSubMenu;
U8 g_ucFilterMode;
U8 g_ucTriggerParam;
extern U16 g_wSavedDataLen;
extern U16 g_wLastDataRecord;
void Init_g_Verialble(void)
{
#ifndef _AFXDLL
U8 Buf[32];
memset((U8*)Buf,0,sizeof(Buf));
Read24c256((U8*)Buf,(U16)0,10);
if((Buf[ROM_ADDR_LANGUAGE] & 0x03) > 1) g_ucLanguageIndex = 1;
else g_ucLanguageIndex = Buf[ROM_ADDR_LANGUAGE];
if(Buf[ROM_ADDR_LANGUAGE] & 0x04) g_bTriggerMode = TRIGGER_MANUAL;
else g_bTriggerMode = TRIGGER_AUTO;
if(Buf[ROM_ADDR_FILTERMODE]>2) g_ucFilterMode = 0;
else g_ucFilterMode = Buf[ROM_ADDR_FILTERMODE];
if(Buf[ROM_ADDR_PROTOCOL]>2) g_ucProtocol = 0;
else g_ucProtocol = Buf[ROM_ADDR_PROTOCOL];
if(Buf[ROM_ADDR_BAUDRATE]>2) g_ucBaudRate = 0;
else g_ucBaudRate = Buf[ROM_ADDR_BAUDRATE];
if(Buf[ROM_ADDR_MACHINEADDR]>31)g_ucMachineAddr = 1;
else g_ucMachineAddr = Buf[ROM_ADDR_MACHINEADDR];
if( Buf[ROM_ADDR_TRIGGERPARA+g_ucFilterMode] < 10 ||
Buf[ROM_ADDR_TRIGGERPARA+g_ucFilterMode] > 100 )
g_ucTriggerParam = 20;
else g_ucTriggerParam = Buf[ROM_ADDR_TRIGGERPARA+g_ucFilterMode];
// g_ucTriggerParam = 20;
if(Buf[ROM_ADDR_REG_NO]>34) Buf[ROM_ADDR_REG_NO]=0;
*(U16*)(RegNoData) = *((U16*)((U8*)(ShortProvinceName+2*Buf[ROM_ADDR_REG_NO])));
if(Buf[ROM_ADDR_REG_NO+1]<'A' || Buf[ROM_ADDR_REG_NO+1]>'Z' ) RegNoData[2] = 'A';
else RegNoData[2] = Buf[ROM_ADDR_REG_NO+1];
RegNoData[3] = '-';
RegNoData[4] = '5';
RegNoData[5] = '5';
RegNoData[6] = '5';
RegNoData[7] = '5';
RegNoData[8] = '5';
RegNoData[9] = 0;
memset((U8*)Buf,0,4);
Read24c256((U8*)Buf,(U16)ROM_ADDR_SAVE_DATA_LAST,4);
g_wLastDataRecord = *(U16*)((U8*)Buf);
if(g_wLastDataRecord > SAVE_DATA_MAX_NUM-1) g_wLastDataRecord = 0;
g_wSavedDataLen = *(U16*)((U8*)Buf+2);
if(g_wSavedDataLen > SAVE_DATA_MAX_NUM) g_wSavedDataLen = SAVE_DATA_MAX_NUM;
// g_ucLanguageIndex = 1;
// g_ucProtocol = PROTOCOL_FOFEN;
// g_ucMachineAddr = 2;
// g_ucBaudRate = 0;
// g_ucFilterMode = 0;
// g_ucTriggerParam = 20;
// g_bTriggerMode = TRIGGER_AUTO;
#endif
g_ucKeyDownData = 0;
g_ucKeyData = 0;
ucSubMenu = 1;
g_ucOldSubMenu = 1;
memset((U8*)&g_HostCmdInfo, 0,sizeof(_UP_HOST_CMD_INFO) );
memset((U8*)g_wNBuf, 0,sizeof(g_wNBuf) );
memset((U8*)g_AcceleDataBuf,0,sizeof(g_AcceleDataBuf) );
}
int main(void)
{
MENU_ITEM_DATA ChangeMenu;
for(g_wNBuf[1]=0; g_wNBuf[1]<5000; g_wNBuf[1]++);
TargetInit(); // 硬件初始化,
LPC21F_PIO_CfgAllInput();
LPC21F_GPIO_CfgOutput(LPC21_PIO_1_BASE,P1_16_23|P1_24|P1_25|P1_26|P1_27|P1_28|P1_30);
LPC21F_GPIO_CfgOutput(LPC21_PIO_0_BASE,0xfffff&(~(KEY1|KEY2|KEY3|KEY4|KEY5|KEY6)));
LPC21F_GPIO_ClearOutput(LPC21_PIO_1_BASE,P1_24|P1_25|P1_26|P1_27);// 373的锁存控制全部为0
Data373_2 = 0xff;
Write373_2(Data373_2);
for(g_wNBuf[0]=0;g_wNBuf[0]<10;g_wNBuf[0]++)
{
HappyLED(1);
for(g_wNBuf[1]=0; g_wNBuf[1]<5000; g_wNBuf[1]++);
HappyLED(0);
for(g_wNBuf[1]=0; g_wNBuf[1]<5000; g_wNBuf[1]++);
}
g_wNBuf[0]=g_wNBuf[1]=0;
initLCD();
ClearLCD(0x40,0,0,40,240);
ClearLCD(0x00,0,0,40,240);
Init_g_Verialble(); // 全局变量 初始化
memset((U8*)&ChangeMenu,0,sizeof(MENU_ITEM_DATA));
memcpy((U8*)&g_CurrentData,(U8*)MenuArray,sizeof(MENU_ITEM_DATA));
WarmUpMeasure(&ucSubMenu);
HT1380_ReadTime();
g_ucKeyDownData = KEY_OK;
KeyNote();
while (TRUE)
{
WHILE_LOOP:
memcpy((U8*)&ChangeMenu,(U8*)&g_CurrentData,sizeof(MENU_ITEM_DATA));
if(g_ucKeyDownData == 0)
{
ClearLCD(0x40,0,0,40,210);
if (g_CurrentData.pParentMenu == NULL)
{// 显示菜单
DispString((const S8*)(CommonTip[TIP_ID_MENU+g_ucLanguageIndex*COMMON_TIP_MAX_NUM]),14,6,0);
}
else
DispString((const S8*)(g_CurrentData.pParentMenu->pString[g_CurrentData.ucNumInParent-1+g_ucLanguageIndex*g_CurrentData.pParentMenu->ucMaxSubItem]),14,6,0);
DispSubMenuItem(g_CurrentData);
DispSubMenuNum(g_ucOldSubMenu/*g_CurrentData.pChildMenu->ucNumInParent*/,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
}
memcpy((U8*)&ChangeMenu,(U8*)(ChangeMenu.pChildMenu+g_ucOldSubMenu-1),sizeof(MENU_ITEM_DATA));
DispHandTip(ChangeMenu.ucNumInParent,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
//memcpy(&ChangeMenu,MenuArray+g_ucOldSubMenu,sizeof(MENU_ITEM_DATA));
while(TRUE)
{
DispHHMMSS(30,0);
if(!SleepAndQueryMsg(1000))
{
switch(g_ucKeyData)
{
case KEY_ESCAPE:
g_ucOldSubMenu = g_CurrentData.ucNumInParent;
if (g_CurrentData.pParentMenu != NULL)
{
memcpy((U8*)&g_CurrentData,(U8*)(g_CurrentData.pParentMenu),sizeof(MENU_ITEM_DATA));
goto WHILE_LOOP;
}
break;
case KEY_UP:
memcpy((U8*)&ChangeMenu,(U8*)(ChangeMenu.pUpMenu),sizeof(MENU_ITEM_DATA));
DispSubMenuNum(ChangeMenu.ucNumInParent,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
DispHandTip(ChangeMenu.ucNumInParent,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
break;
case KEY_DOWN:
memcpy((U8*)&ChangeMenu,(U8*)(ChangeMenu.pDownMenu),sizeof(MENU_ITEM_DATA));
DispSubMenuNum(ChangeMenu.ucNumInParent,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
DispHandTip(ChangeMenu.ucNumInParent,g_CurrentData.ucMaxSubItem,
g_CurrentData.ucX0,g_CurrentData.ucY0,g_CurrentData.ucLineWidth);
break;
case KEY_OK:
if (ChangeMenu.pString == NULL)
{
if(!ChangeMenu.Function(&ucSubMenu))
goto WHILE_LOOP;
g_ucOldSubMenu = ChangeMenu.ucNumInParent;
}
else
{
memcpy((U8*)&g_CurrentData,(U8*)&ChangeMenu,sizeof(MENU_ITEM_DATA));
g_ucOldSubMenu = 1;
}
goto WHILE_LOOP;
}
}
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -