//returns 0 for timeout and 1 for connected int cellular_connected() { int ret = 0; char msg[12]; char done = 0; int count = 0; while(!done && count < 60) { ATsend_no("AT+CREG?\r"); _delay_ms(1000); NextMessage(msg); NextMessage(msg); //while(NextMessage(msg)) { //lcd_puts(msg); //lcd_putc(msg[10]); if(msg[9] == '1' || msg[9] == '5') { done = 1; ret = 1; } } count++; } }
void cellular_getTime(char * time) { ATsend_no("AT+CCLK?\r"); _delay_ms(1000); char temp[30]; NextMessage(temp); NextMessage(temp); int i = 0; for(i = 0; i < 17;i++) { time[i] = temp[i+8]; } }
void cConversationManager::NextMessage(unsigned int luiNextMessageIndex) { // Checks to make sure that all is right assert( mpCurrentConversationNode ); assert( luiNextMessageIndex < mpCurrentConversationNode->mChildren.size() ); // Select the next node bool lbIsChooseNode = (mpCurrentConversationNode->meType == eChooseTalk ); mpCurrentConversationNode = &(mpCurrentConversationNode->mChildren[ luiNextMessageIndex ]); // If the conversation have finished if ( mpCurrentConversationNode->meType == eEndConversation ) { mpCurrentConversationNode = NULL; } else if ( lbIsChooseNode ) { // This node is the option text // We need to choose the next child NextMessage(0); NextMessage(0); } else { //Set the right values muiChooseOption = 0; mfMessageTime = mpCurrentConversationNode->mfDuration; /* this->mbConversationState = false; OutputDebugString( "NextMessage: setting mbConversation in false" );*/ } }
void ProgressPopup::Update( ControllerInput input, float fDelta, BOOL bFullScreen, BOOL bPaused ) { if( !IsActive() ) return; if( bPaused ) fDelta = 0.0f; if( m_bSuppressDeltaUpdate ) { m_bSuppressDeltaUpdate = false; return; } m_fTimer += fDelta; if( m_fTimer >= FINISH_AT ) { if( m_sMessageTitleQueue[ 0 ][ 0 ] != '\0' ) { NextMessage(); } m_fTimer = 0.0f; } }
void cConversationManager::Update(float lfTimestep) { // if(BecomePressed( eIA_Accept )){OutputDebugString( "\n PRESSING ENTER KEY "); } if (mbConversationState && mpCurrentConversationNode != NULL) { switch (mpCurrentConversationNode->meType) { case 0: {// Enum 0; Nodo activo de tipo eNormalTalk // Decrease the message time mfMessageTime -= lfTimestep; if ( mfMessageTime <= 0.0f || BecomePressed( eIA_Shoot ) ) { //Need to continue with the next message or node NextMessage(0); } } break; case 1: {// Enum 1; Nodo activo de tipo eChooseTalk if( BecomePressed( eIA_GoUp ) && ( muiChooseOption > 0 ) ) muiChooseOption--; if( BecomePressed( eIA_GoDown ) && ( muiChooseOption < (mpCurrentConversationNode->mChildren.size() -1 )) ) muiChooseOption++; if ( BecomePressed( eIA_Shoot ) ) { NextMessage( muiChooseOption ); } } break; default: {// Enum 2; Nodo activo de tipo eEndConversation mpCurrentConversationNode = NULL ; } break; } }else this->mbConversationState = false; // If we have a null mpCurrentConversationNode then it´s the end }
//gets the body of an sms message given the number to access //returns 0 for no error, -1 for out of bounds access int cellular_getSMS(int number, char * msg) { int ret = 0; if(number <= 30 && number > 0) { char message[12] = {"AT+CMGR="}; message[8] = (number/10)+48; message[9] = (number%10)+48; message[10] = 0x0D; message[11] = 0; ATsend_no(message); _delay_ms(5000);//5 seconds is guaranteed to work NextMessage(msg); NextMessage(msg); NextMessage(msg); } else ret = -1; }
//returns -1 if out of bounds, 0 for no error, -2 if error int cellular_deleteSMS(int messageNumber) { int ret = 0; if(messageNumber <= 30 && messageNumber > 0) { char message[12] = {"AT+CMGD="}; message[8] = (messageNumber/10)+48; message[9] = (messageNumber%10)+48; message[10] = 0x0D; message[11] = 0; ATsend_no(message); _delay_ms(5000);//5 seconds is guaranteed to work char at_msg[20]; NextMessage(at_msg); NextMessage(at_msg); if(at_msg[0] == 'O' && at_msg[1] =='K') ret = -2; } else ret = -1; }
// // ICTicker::Activate // // Activate the control // Bool ICTicker::Activate() { if (IControl::Activate()) { // Ensure that the first message is setup correctly messageIterator.GoToHead(); NextMessage(); return (TRUE); } else { return (FALSE); } }
void ProgressPopup::Clear() { for( int i = 0; i < OVERLAY_MESSAGE_QUEUE_SIZE; ++i ) NextMessage(); }
void CGame::ComputerKeyDown(MSG msg) { static BOOL bRDown = FALSE; // if computer is not active if (_pGame->gm_csComputerState!=CS_ON && _pGame->gm_csComputerState!=CS_TURNINGON) { // do nothing return; } // if escape pressed if (msg.message==WM_KEYDOWN && msg.wParam==VK_ESCAPE) { ExitRequested(); } // if right mouse pressed if (msg.message==WM_RBUTTONDOWN || msg.message==WM_RBUTTONDBLCLK) { bRDown = TRUE; } // if right mouse released if (bRDown && msg.message==WM_RBUTTONUP) { bRDown = FALSE; // mark current message as read MarkCurrentRead(); // find a group with first unread message BOOL bHasUnread = FindGroupWithUnread(); // if some if (bHasUnread) { // select first unread message in it NextUnreadMessage(); } else { ExitRequested(); } } if (msg.message==WM_KEYDOWN) { switch (msg.wParam) { // change message types on number keys case '1': _cmtWantedType = CMT_INFORMATION ; return; case '2': _cmtWantedType = CMT_WEAPONS ; return; case '3': _cmtWantedType = CMT_ENEMIES ; return; case '4': _cmtWantedType = CMT_BACKGROUND ; return; case '5': _cmtWantedType = CMT_STATISTICS ; return; // go to next unread case 'U': case VK_SPACE: NextUnreadMessage(); return; // scroll message list case 219: PrevMessage(); return; case 221: NextMessage(); return; // mark current message as read and go to next case VK_RETURN: MarkCurrentRead(); NextUnreadMessage(); return; // scroll message text case VK_UP: MessageTextUp(1); return; case VK_DOWN: MessageTextDn(1); return; case VK_PRIOR:MessageTextUp(_ctTextLinesOnScreen-1); return; case VK_NEXT: MessageTextDn(_ctTextLinesOnScreen-1); return; }; } // if left mouse pressed if (msg.message==WM_LBUTTONDOWN || msg.message==WM_LBUTTONDBLCLK) { BOOL bOverMsgSlider = FALSE; // if over slider {PIXaabbox2D boxSlider = GetTextSliderBox(); PIXaabbox2D boxSliderTrans = boxSlider; boxSliderTrans+=_boxMsgText.Min(); if (boxSliderTrans>=_vpixMouse) { bOverMsgSlider = TRUE; // start dragging _bSliderDragText = TRUE; _pixSliderDragJ=_vpixMouse(2); _iSliderDragLine = _iTextLineOnScreen; }} // if over slider {PIXaabbox2D boxSlider = GetMsgSliderBox(); PIXaabbox2D boxSliderTrans = boxSlider; boxSliderTrans+=_boxMsgList.Min(); if (boxSliderTrans>=_vpixMouse) { // start dragging _bSliderDragText = FALSE; _pixSliderDragJ=_vpixMouse(2); _iSliderDragLine = _iFirstMessageOnScreen; }} // if over some button {for(INDEX i=0; i<CMT_COUNT; i++) { if (_boxButton[i]>=_vpixMouse) { // switch to that message type _cmtWantedType = (CompMsgType)i; } }} // if over some message {for(INDEX i=0; i<_ctMessagesOnScreen; i++) { if (GetMsgListBox(i)>=_vpixMouse && !bOverMsgSlider) { // switch to that message SelectMessage(_iFirstMessageOnScreen+i); } }} } // if left mouse released if (msg.message==WM_LBUTTONUP) { // stop dragging _pixSliderDragJ=-1; // if over exit if (_boxExit>=_vpixMouse) { // exit ExitRequested(); } } }
// // ICTicker::DrawSelf // // Draw the control // void ICTicker::DrawSelf(PaintInfo &pi) { // Draw background DrawCtrlBackground(pi, GetTexture()); // Draw frame DrawCtrlFrame(pi); // If there is a font then draw the control's text if (pi.font) { // Is there any text to be drawn if (currentMessage) { Color c = pi.colors->fg[ColorIndex()]; c.a = U8(alpha); // Display the text pi.font->Draw ( pi.client.p0.x + offsetX, pi.client.p0.y + offsetY, currentMessage->text, currentMessage->length, c, &pi.client ); // Calcalate the width of the text //int width = pi.font->Width(currentMessage->text, currentMessage->length); switch (currentMessage->direction) { /* case DIR_LEFT: // Pause in the middle if (counter && offsetX <= ((pi.client.Width() - width) / 2)) { counter--; break; } offsetX -= speed; if (offsetX < -width) { NextMessage(); } break; case DIR_RIGHT: // Pause in the middle if (counter && offsetX >= ((pi.client.Width() - width) / 2)) { counter--; break; } offsetX += speed; if (offsetX > pi.client.Width()) { NextMessage(); } break; case DIR_UP: // Pause in the middle if (counter && offsetY <= ((pi.client.Height() - S32(pi.font->Height())) / 2)) { counter--; break; } offsetY -= speed; if (offsetY < -pi.font->Height()) { NextMessage(); } break; case DIR_DOWN: // Pause in the middle if (counter && offsetY >= ((pi.client.Height() - S32(pi.font->Height())) / 2)) { counter--; break; } offsetY += speed; if (offsetY > pi.client.Height()) { NextMessage(); } break; */ case DIR_ALPHA: default: { // Pause in the middle if (counter && alpha >= 255) { counter--; alphaDir = -S32(speed); break; } alpha += alphaDir; if (alpha > 255) { alpha = 255; } if (alpha <= 0) { NextMessage(); } break; } } } } }