port_test.c
来自「this program is ubicontent example sourc」· C语言 代码 · 共 1,847 行 · 第 1/4 页
C
1,847 行
return;
}
}
//览侩橇肺弊伐 捞亥飘 勤甸矾
static boolean port_test_OnStart(port_test *pMe, uint16 wParam, AEEAppStart * pStart)
{
boolean ret;
AEESIOConfig cfg;
int nErr; //馆券蔼阑 啊瘤绰 函荐
int AlarmMode;
int i;
_D("OnStart");
AlarmMode = File_Access_Open(pMe); // 券版汲沥蔼阑 啊廉柯促.
//port init start
ret = ObjectCreate(pMe); //器飘 牢胶畔胶狼 林家甫 罐澜
if(ret == FALSE)
{
_D("Error opening port");
return FALSE;
}
cfg.dwBaudRate = 57600;
cfg.nDataBits = AEESIO_DATABITS_8;
cfg.nStopBits = AEESIO_STOPBITS_1;
// cfg.fFlowControl = AEESIO_FLOW_NONE;
cfg.fParity = AEESIO_PARITY_NONE;
IPORT_IOCtl(pMe->pPort, AEESIO_IOCTL_SCONFIG, (uint32)&cfg);
nErr = IPORT_Open(pMe->pPort, AEESIO_PORT_SIO1); //且寸等 牢磐其捞胶 林家甫 捞侩秦辑 盔窍绰 器飘甫 凯澜
if (nErr != SUCCESS && nErr != AEEPORT_WAIT) //焊烹 20ms 扁促覆,弥家 20ms扁促啡促啊 write秦具窃(鸥捞赣静搁达)
{
_D("Error opening port");
return FALSE; //0阑 府畔 =FALSE
}
//port init end
ISHELL_CreateInstance(GetActiveShell(pMe),AEECLSID_SOUNDPLAYER,(void**)&pMe->pSP);
for(i = 0 ; i <= 8; i++)
{
ISHELL_CreateInstance(GetActiveShell(pMe),AEECLSID_SOUNDPLAYER,(void**)&pMe->Menu[i]);
}
pMe->nCurMenu = 50;
if (AlarmMode >= 1){
// Alarm Mode
_D("Alarm Mode...");
DisplayInit(pMe);
ISHELL_SetTimer(GetActiveShell(pMe), 5000, TimerSetAction, pMe);
}else{
// Control Mode
pMe->loadingImage = ISHELL_LoadImage(GetActiveShell(pMe), "./res/logo.bci");
IIMAGE_Start(pMe->loadingImage,0,0);
ISHELL_SetTimer(GetActiveShell(pMe),1000,(PFNNOTIFY)TimerCallback,pMe);
CALLBACK_Init(&pMe->cbReadable, (PFNNOTIFY)OnRead, pMe);//OnRead荤侩磊窃荐,(PFNNOTIFY)碍力屈函券port_test屈栏肺
IPORT_Readable(pMe->pPort, &pMe->cbReadable);
}
return(ret);
}
static boolean port_test_OnStop(port_test *pMe, uint16 wParam, boolean * pCloseFlag)
{
_D("OnStop");
return(TRUE);
}
static boolean port_test_OnSuspend(port_test *pMe, AEESuspendReason reason, AEESuspendInfo * pInfo)
{
int AlarmMode;
_D("OnSuspend");
AlarmMode = File_Access_Open(pMe); // 券版汲沥蔼阑 啊廉柯促.
if (AlarmMode >= 1){
// Alarm Mode
_D("Alarm Mode...");
pMe->nCurMenu = 19;
ISHELL_SetTimer(GetActiveShell(pMe), 5000, TimerSetAction, pMe);
}
return(TRUE);
}
static boolean port_test_OnResume(port_test *pMe, uint16 wParam, AEEAppStart * pStart)
{
_D("OnResume");
return(TRUE);
}
static boolean port_test_OnMessage(port_test *pMe, uint16 smsEncoding, void * pszMsg)
{
_D("OnMessage");
return(TRUE);
}
static boolean port_test_OnAlarm(port_test *pMe, uint16 wParam, boolean * pCloseFlag)
{
_D("OnAlarm %d", wParam);
File_Access_Open(pMe); // 券版汲沥蔼阑 啊廉柯促.
pMe->FlagProgramStart = wParam;
File_Access_Close(pMe);
ISHELL_StartApplet(GetActiveShell(pMe), 0x1111000f); //汲沥等 舅恩矫埃捞 瘤唱搁 舅恩 捞亥飘俊 急攫等 备巩甸阑 角青
return(TRUE);
}
//虐 菩靛 捞亥飘 勤甸矾
void alarm_key_select(port_test * pMe, int index)
{
// 舅恩 辑宏皋春俊 箭磊 涝仿
_D("alarm_key_select testing ... %d", index);
if(pMe->nAlarmSetIndex == 0)
{
if(pMe->nAlarmSetHour < 10)
{
pMe->nAlarmSetHour = (pMe->nAlarmSetHour*10) + index;
}else{
pMe->nAlarmSetHour = index;
}
}
if(pMe->nAlarmSetIndex == 1)
{
if(pMe->nAlarmSetMin < 10)
{
pMe->nAlarmSetMin = (pMe->nAlarmSetMin*10) + index;
}else{
pMe->nAlarmSetMin = index;
}
}
if(pMe->nAlarmSetIndex == 2)
{
if(pMe->nAlarmSetObj < 10)
{
pMe->nAlarmSetObj = (pMe->nAlarmSetObj*10) + index;
}else{
pMe->nAlarmSetObj = index;
}
}
DisplayMenu(pMe);
}
void key_select(port_test * pMe, int index) // 辑宏皋春俊辑 虐急琶
{
int i;
char * mainText;
char mp3Text[16];
switch(pMe->nCurItem)
{
case 0: // 档绢遏
pMe->nDoorLockItem[index][0] = 1;
SetAction(pMe, DOORLOCK, RELAY, OPEN, TRUE);
break;
case 1: // 炼疙
if(index == 0)
{
pMe->nLedItem[index][0] = pMe->nLedItem[index][0]*(-1)+1;
for(i = 1 ; i<= 6 ; i++)
{
pMe->nLedItem[i][0] = pMe->nLedItem[index][0];
SetAction(pMe, pMe->nLedItem[i][1], RELAY, 6 - pMe->nLedItem[index][0], FALSE);
Sleep(10000);
}
ISOUNDPLAYER_Stop(pMe->pSP);
SNPRINTF(mp3Text, sizeof(mp3Text), "./mp3/led%d%d.mp3", index, pMe->nLedItem[index][0]);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mp3Text);
ISOUNDPLAYER_Play(pMe->pSP);
}else{
pMe->nLedItem[index][0] = pMe->nLedItem[index][0]*(-1)+1;
SetAction(pMe, pMe->nLedItem[index][1], RELAY, 6 - pMe->nLedItem[index][0], TRUE);
}
break;
case 2: // 颇况
pMe->nPowerItem[index][0] = pMe->nPowerItem[index][0]*(-1)+1;
SetAction(pMe, pMe->nPowerItem[index][1], RELAY, 6 - pMe->nPowerItem[index][0], TRUE);
break;
case 3: // 目刨
pMe->nCurtainItem[index][0] = pMe->nCurtainItem[index][0]*(-1)+1;
SetAction(pMe, pMe->nCurtainItem[index][1], 6 - pMe->nCurtainItem[index][0], 6 - pMe->nCurtainItem[index][0], TRUE);
break;
case 4: // 啊胶
pMe->nGasItem[index][0] = pMe->nGasItem[index][0]*(-1)+1;
SetAction(pMe, pMe->nGasItem[index][1], 8 - pMe->nGasItem[index][0], 8 - pMe->nGasItem[index][0], TRUE);
break;
case 5: // 救傈
pMe->nSafeItem[index][0] = pMe->nSafeItem[index][0]*(-1)+1;
SNPRINTF(mp3Text, sizeof(mp3Text), "./mp3/det%d%d.mp3", index, pMe->nSafeItem[index][0]);
ISOUNDPLAYER_Stop(pMe->pSP);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mp3Text);
ISOUNDPLAYER_Play(pMe->pSP);
break;
case 6: // 葛靛
pMe->nModeItem[index][0] = 1;
ISHELL_SetTimer(GetActiveShell(pMe), 3000, TimerMp3Action2, pMe);
switch(index)
{
case 0:
for(i = 1 ; i<= 6 ; i++)
{
pMe->nLedItem[i][0] = 0;
SetAction(pMe, pMe->nLedItem[i][1], RELAY, OFF1, FALSE); //傈殿
Sleep(10000);
}
pMe->nPowerItem[0][0] = 0;
pMe->nPowerItem[2][0] = 0;
pMe->nPowerItem[3][0] = 0;
SetAction(pMe, pMe->nPowerItem[0][1], RELAY, OFF1, FALSE); //TV
SetAction(pMe, pMe->nPowerItem[2][1], RELAY, OFF1, FALSE); //埔
SetAction(pMe, pMe->nPowerItem[3][1], RELAY, OFF1, FALSE); //俊绢能
pMe->nCurtainItem[0][0] = 1;
SetAction(pMe, pMe->nCurtainItem[0][1], ON1, ON1, FALSE); //目刨
pMe->nGasItem[0][0] = 0;
SetAction(pMe, pMe->nGasItem[0][1], CLOSE, CLOSE, FALSE); //啊胶
mainText = "./mp3/modegoout.mp3";
ISOUNDPLAYER_Stop(pMe->pSP);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mainText);
ISOUNDPLAYER_Play(pMe->pSP);
break;
case 1:
for(i = 1 ; i<= 6 ; i++)
{
pMe->nLedItem[i][0] = 0;
SetAction(pMe, pMe->nLedItem[i][1], RELAY, OFF1, FALSE); //傈殿
Sleep(10000);
}
pMe->nPowerItem[0][0] = 0;
pMe->nPowerItem[2][0] = 0;
pMe->nPowerItem[3][0] = 0;
SetAction(pMe, pMe->nPowerItem[0][1], RELAY, OFF1, FALSE); //TV
SetAction(pMe, pMe->nPowerItem[2][1], RELAY, OFF1, FALSE); //埔
SetAction(pMe, pMe->nPowerItem[3][1], RELAY, OFF1, FALSE); //俊绢能
pMe->nCurtainItem[0][0] = 1;
SetAction(pMe, pMe->nCurtainItem[0][1], ON1, ON1, FALSE); //目刨
pMe->nGasItem[0][0] = 0;
SetAction(pMe, pMe->nGasItem[0][1], CLOSE, CLOSE, FALSE); //啊胶
mainText = "./mp3/modesleep.mp3";
ISOUNDPLAYER_Stop(pMe->pSP);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mainText);
ISOUNDPLAYER_Play(pMe->pSP);
break;
case 2:
for(i = 1 ; i<= 6 ; i++)
{
pMe->nLedItem[i][0] = 1;
SetAction(pMe, pMe->nLedItem[i][1], RELAY, ON1, FALSE); //傈殿
Sleep(10000);
}
pMe->nPowerItem[0][0] = 1;
SetAction(pMe, pMe->nPowerItem[0][1], RELAY, ON1, FALSE); //TV
pMe->nCurtainItem[0][0] = 0;
SetAction(pMe, pMe->nCurtainItem[0][1], OFF1, OFF1, FALSE); //目刨
mainText = "./mp3/modewake.mp3";
ISOUNDPLAYER_Stop(pMe->pSP);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mainText);
ISOUNDPLAYER_Play(pMe->pSP);
break;
case 3:
for(i = 1 ; i<= 6 ; i++)
{
pMe->nLedItem[i][0] = 1;
SetAction(pMe, pMe->nLedItem[i][1], RELAY, ON1, FALSE); //傈殿
Sleep(10000);
}
pMe->nPowerItem[0][0] = 1;
SetAction(pMe, pMe->nPowerItem[0][1], RELAY, ON1, FALSE); //TV
pMe->nPowerItem[2][0] = 1;
SetAction(pMe, pMe->nPowerItem[2][1], RELAY, ON1, FALSE); //TV
pMe->nCurtainItem[0][0] = 0;
SetAction(pMe, pMe->nCurtainItem[0][1], OFF1, OFF1, FALSE); //目刨
mainText = "./mp3/modeclean.mp3";
ISOUNDPLAYER_Stop(pMe->pSP);
ISOUNDPLAYER_Set(pMe->pSP,SDT_FILE,mainText);
ISOUNDPLAYER_Play(pMe->pSP);
break;
}
break;
case 7: // 舅恩
pMe->nAlarmKeyIndex = index + 1;
pMe->nAlarmSetIndex = 0;
pMe->nCurMenu = 20;
pMe->nAlarmSetHour = 0;
pMe->nAlarmSetMin = 0;
pMe->nAlarmSetObj = 0;
pMe->nAlarmSetCmd = 0;
pMe->nAlarmOKCancel = FALSE;
pMe->nAlarmOnOff = FALSE;
break;
case 8: //抛付
switch(index+1)
{
case 1:
mainText = "./res/main.bci";
break;
case 2:
mainText = "./res/main2.bci";
break;
case 3:
mainText = "./res/main3.bci";
break;
case 4:
mainText = "./res/main4.bci";
break;
case 5:
mainText = "./res/main5.bci";
break;
case 6:
mainText = "./res/main6.bci";
break;
}
IIMAGE_Release(pMe->mainImage);
pMe->mainImage = NULL;
pMe->mainImage = ISHELL_LoadImage(GetActiveShell(pMe), mainText);
pMe->mainImageVal = index+1;
pMe->nCurMenu = 0;
pMe->nCurItem = 0;
break;
}
DisplayMenu(pMe);
}
static boolean port_test_OnKey0(port_test * pMe)
{
int nValue = 0;
int i;
_D("OnKey 0");
if(pMe->nCurMenu == 20){
alarm_key_select(pMe,nValue);
}else{
// 檬扁拳
pMe->nLedItem[0][0] = 0;
for(i = 1 ; i<= 5 ; i++)
{
pMe->nLedItem[i][0] = 0;
SetAction(pMe, pMe->nLedItem[i][1], RELAY, OFF1, FALSE);
Sleep(10000);
}
for(i = 0 ; i<= 5 ; i++)
{
pMe->nPowerItem[i][0] = 0;
SetAction(pMe, pMe->nPowerItem[i][1], RELAY, OFF1, FALSE);
Sleep(10000);
}
pMe->nCurtainItem[0][0] = 0;
SetAction(pMe, pMe->nCurtainItem[0][1], OFF1, OFF1, FALSE);
pMe->nGasItem[0][0] = 0;
SetAction(pMe, pMe->nGasItem[0][1], CLOSE, CLOSE, FALSE);
pMe->nSafeItem[0][0] = 0;
pMe->nSafeItem[1][0] = 0;
pMe->nSafeItem[2][0] = 0;
}
return(FALSE);
}
static boolean port_test_OnKey1(port_test * pMe)
{
int nValue = 1;
_D("OnKey 1");
if(pMe->nCurMenu > 0 && pMe->nCurMenu < 20){
key_select(pMe,nValue-1);
return(FALSE);
}
if(pMe->nCurMenu == 20)
alarm_key_select(pMe,nValue);
return(FALSE);
}
static boolean port_test_OnKey2(port_test * pMe)
{
int nValue = 2;
_D("OnKey 2");
if(pMe->nCurMenu > 0 && pMe->nCurMenu < 20){
key_select(pMe,nValue-1);
return(FALSE);
}
if(pMe->nCurMenu == 20)
alarm_key_select(pMe,nValue);
return(FALSE);
}
static boolean port_test_OnKey3(port_test * pMe)
{
int nValue = 3;
_D("OnKey 3");
if(pMe->nCurMenu > 0 && pMe->nCurMenu < 20) {
key_select(pMe,nValue-1);
return(FALSE);
}
if(pMe->nCurMenu == 20)
alarm_key_select(pMe,nValue);
return(FALSE);
}
static boolean port_test_OnKey4(port_test * pMe)
{
int nValue = 4;
_D("OnKey 4");
if(pMe->nCurMenu > 0 && pMe->nCurMenu < 20){
key_select(pMe,nValue-1);
return(FALSE);
}
if(pMe->nCurMenu == 20)
alarm_key_select(pMe,nValue);
return(FALSE);
}
static boolean port_test_OnKey5(port_test * pMe)
{
int nValue = 5;
_D("OnKey 5");
if(pMe->nCurMenu > 0 && pMe->nCurMenu < 20){
key_select(pMe,nValue-1);
return(FALSE);
}
if(pMe->nCurMenu == 20)
alarm_key_select(pMe,nValue);
return(FALSE);
}
static boolean port_test_OnKey6(port_test * pMe)
{
int nValue = 6;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?