//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" );*/
	}
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 8
0
//
// 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);
  }
}
Ejemplo n.º 9
0
void ProgressPopup::Clear()
{
	for( int i = 0; i < OVERLAY_MESSAGE_QUEUE_SIZE; ++i )
		NextMessage();
}
Ejemplo n.º 10
0
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();
    }
  }
}
Ejemplo n.º 11
0
//
// 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;
        }
      }
    }
  }
}