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 + -
显示快捷键?