Ejemplo n.º 1
0
CentralWidget::CentralWidget()
{
    _windowManager = TalkWindowManagerSingleton::getInstance();

    _callButton.setShape(CustomButton::ROUND);
    _hangUpButton.setShape(CustomButton::ROUND);

    _callButton.setText("Call");
    _hangUpButton.setText("HangUp"
                          );

    _callButton.setRadius(8.0, 8.0);
    _hangUpButton.setRadius(8.0, 8.0);

    _callButton.setIcon(QPixmap("../trunk/images/call.png"));
    _hangUpButton.setIcon(QPixmap("../trunk/images/hang_up.png"));

    _callButton.setBold(true);
    _hangUpButton.setBold(true);

    _layout.addWidget(&_callButton, 0, 0, Qt::AlignTop);
    _layout.addWidget(&_hangUpButton, 0, 1, Qt::AlignTop);

    _dockWidgetContent = DockWidgetContentSingleton::getInstance();

    setLayout(&_layout);

    connect(&_callButton, SIGNAL(clicked()), this, SLOT(call()));
    connect(&_hangUpButton, SIGNAL(clicked()), this, SLOT(hangUp()));
    connect(_windowManager, SIGNAL(tabClosed(QString const &)), this, SLOT(hangUpTab(QString const &)));
}
Ejemplo n.º 2
0
/*! \brief Constructor
 *
 * set up the widget, start timer.
 */
CallWidget::CallWidget(UserInfo *ui, const QString &channelme,
                       const QString &status, uint ts,
                       const QString &channelpeer, const QString & callerid,
                       const QString &calleridname, QWidget *parent,
                       const PhoneInfo *_pi)
    : QWidget(parent), m_square(16,16), m_parkedCall(false)
{
    // qDebug() << Q_FUNC_INFO << channelme;
    m_ui = ui;
    pi = _pi;
    QGridLayout * gridlayout = new QGridLayout(this);

    m_channelme = channelme;
    m_channelpeer = channelpeer;

    gridlayout->setColumnStretch(3, 1);
    m_lbl_status = new QLabel(this);
    gridlayout->addWidget(m_lbl_status, 0, 0);

    m_lbl_time = new QLabel(this);
    m_lbl_time->setFont(QFont("", 8, QFont::Bold));
    m_startTime = QDateTime::fromTime_t(ts);
    startTimer(1000);
    gridlayout->addWidget(m_lbl_time, 1, 0, 1, 3);

    m_lbl_direction = new QLabel(this);
    gridlayout->addWidget(m_lbl_direction, 0, 1);

    m_lbl_exten = new QLabel(this);
    m_lbl_exten->setFont(QFont("courier", 10, QFont::Light));
    gridlayout->addWidget(m_lbl_exten, 0, 2);

    //updateWidget(status, ts, "cpeer", callerid, calleridname);
    updateWidget(status, ts, channelpeer, callerid, calleridname, pi);

    m_hangUpAction = new QAction(tr("&Hangup"), this);
    m_hangUpAction->setStatusTip(tr("Hang up/Close the channel"));
    connect(m_hangUpAction, SIGNAL(triggered()),
             this, SLOT(hangUp()));

    m_transferToNumberAction = new QAction(tr("&Transfer to number"), this);
    m_transferToNumberAction->setStatusTip(tr("Transfer the channel to the dialed number") );
    connect(m_transferToNumberAction, SIGNAL(triggered()),
             this, SLOT(transferToNumber()));

    m_parkCall = new QAction(tr("&Park the call"), this);
    m_parkCall->setStatusTip(tr("Park this call") );
    connect(m_parkCall, SIGNAL(triggered()),
             this, SLOT(parkCall()));
}
Ejemplo n.º 3
0
/* makelostCall(const char* , uint8_t) - makes a lost call to the seleted telephone number
 *
 * This function makes a call to the given telephone number and its duration is specified by the other input.
 * After 'timeCall' seconds, hang the call up.
 *
 * It modifies 'flag' if expected answer is not received after sending a command to GPRS module
 *
 * Returns '1' on success and '0' if error
*/
uint8_t WaspGPRS::makeLostCall(const char* tlfNumber, uint8_t timeCall)
{
	char	command[25];
	flag &= ~(GPRS_ERROR_CALL);
	uint8_t answer=0;

	sprintf(command,"%s%s;",AT_CALL,tlfNumber);
	answer=sendATCommand(command,AT_CALL_R,SEND_ONCE);
	switch(answer)
	{
		case	0	:	flag |= GPRS_ERROR_CALL;
					break;
		case	1	:	for(int a=0; a<timeCall ; a++) delay(1000);
					hangUp();
					break;
		case	2	:	flag |= GPRS_ERROR_CALL;
					break;
	}
	if(flag & GPRS_ERROR_CALL) return 0;
	return 1;
}
Ejemplo n.º 4
0
MobileWindow::MobileWindow(MusicPlayer* player) 
{
	ui.setupUi(this);

	this->player = player;

	//initFolderList();

	// SIGNALS
	// CALL NUMBERS
	connect(ui.call1Button, SIGNAL(clicked()), this, SLOT(add1()));
	connect(ui.call2Button, SIGNAL(clicked()), this, SLOT(add2()));
	connect(ui.call3Button, SIGNAL(clicked()), this, SLOT(add3()));
	connect(ui.call4Button, SIGNAL(clicked()), this, SLOT(add4()));
	connect(ui.call5Button, SIGNAL(clicked()), this, SLOT(add5()));
	connect(ui.call6Button, SIGNAL(clicked()), this, SLOT(add6()));
	connect(ui.call7Button, SIGNAL(clicked()), this, SLOT(add7()));
	connect(ui.call8Button, SIGNAL(clicked()), this, SLOT(add8()));
	connect(ui.call9Button, SIGNAL(clicked()), this, SLOT(add9()));
	connect(ui.call0Button, SIGNAL(clicked()), this, SLOT(add0()));
	connect(ui.callAsteriskButton, SIGNAL(clicked()), this, SLOT(addAsterisk()));
	connect(ui.callHashButton, SIGNAL(clicked()), this, SLOT(addHash()));
	
	// CALL, HANG UP AND DELETE BUTTONS
	connect(ui.removeButton, SIGNAL(clicked()), this, SLOT(removeDigit()));
	connect(ui.callButton, SIGNAL(clicked()), this, SLOT(call()));
	connect(ui.hangUpButton, SIGNAL(clicked()), this, SLOT(hangUp()));

	// CONTACTS 
	connect(ui.contactList, SIGNAL(itemSelectionChanged()), this, SLOT(contactSelected()));
		
	// FILL CONTACTS
	ddbb.readFromFile("ddbb\\contacts.xml");
	QList<Contact*> contacts = ddbb.getContacts();

	foreach (Contact* c,contacts) {
		ui.contactList->addItem(c->name);
	}
Ejemplo n.º 5
0
    int main()
  {
    
    
    RCC_Config();  // to read and write to AFIO_remap AFIO_clock must first be eanble
    NVIC_Config();
    TIM_Config(); 
    GPIO_Config();
    EXTI_Configuration();
    initUsart();
    //initBT();
    
              // Only for debug the clock tree  *********************************************** 
          // Put the clock configuration into RCC_APB2PeriphClockCmd 
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 
          /* Output clock on MCO pin ---------------------------------------------*/ 
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; 
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
          GPIO_Init(GPIOA, &GPIO_InitStructure); 
          //  RCC_MCOConfig(RCC_MCO_HSE); // Put on MCO pin the: freq. of external crystal 
          RCC_MCOConfig(RCC_MCO_SYSCLK);  // Put on MCO pin the: System clock selected  
          // 
    //RTCInit();
    
    RCC_GetClocksFreq(&RCC_Clocks);   
    
    writeStringUSART2("\033[2J"); //clear usart 2 screen
    writeStringUSART1("\033[2J");  //clear usart 1 screen
    writeStringUSART1("     <<<<- Welcome To Hinkens Cobra Bluetooth ->>>>\n\n\r");


    
    

    while(1)
    {

        if(GPIO_ReadInputDataBit(GPIOB, COBRA_BOARDSWITCH)== false) writeStringUSART1("On Hook\n\r");
        else            //Luren är lyft
        {
            writeStringUSART1("Phone is off hook!\n\r Dial: \n\r");
            acceptCall(); //accept incoming call
            Delay(Delay_10ms);
            //for(counter = 0 ; counter < 10 ; counter++)
            while(TIM_GetITStatus(TIM2, TIM_IT_Update) == RESET) //
            {
                
                dialed_number = 0;
                while(GPIO_ReadInputDataBit(GPIOB, COBRA_DIALING)== true && GPIO_ReadInputDataBit(GPIOB, COBRA_BOARDSWITCH)== true)//Wait for user to start dialing
                {
                  //writeStringUSART1("Timer Counter: %d\r\n",TIM_GetCounter(TIM2));
                  if(state == 1 && dialingFlag == true) //check if timer has run out and user has started a call
                  {
                    writeStringUSART1("time is up dialing number: ");
                    for (int x = 0; x < counter; x++)
                    {
                      //printf("%d", number[x] );
                    }
                    sendPhoneNumber(number, counter);
                    writeStringUSART1("\r\n");
                    dialingFlag = false;
                    state =  0;
                    counter = 0;
                  }
                    
                }
                Delay(Delay_100ms); //Wait for switch to debounce
          
                while(GPIO_ReadInputDataBit(GPIOB, COBRA_DIALING) == false)
                {    
                     dialingFlag = true;
                     state = 0;
                     TIM_SetCounter(TIM2, 0);
                     TIM_Cmd(TIM2, ENABLE); //Start timer
                     
                     //RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
                     Delay(Delay_10ms);
                     Delay(Delay_10ms);
                      //Now count how many times the mechnical switch toggles
                     if(GPIO_ReadInputDataBit(GPIOB, COBRA_PULSE)== false && pulseFlag == 1)
                     {
                       pulseFlag = 0;
                       dialed_number ++;
                     }
                     else if(GPIO_ReadInputDataBit(GPIOB, COBRA_PULSE) == true && pulseFlag == 0)
                     {
                       pulseFlag = 1;
                        //Do notthing just idle..
                     }
                     
                  Delay(Delay_10ms);   

                }
                Delay(Delay_100ms);
                if(dialed_number != 0) // to handle the error of a extra loop after dialed number
                {
                  dialed_number--; //Rotary always has one extra closure that must be taken off
                  number[counter] = dialed_number;
                  counter ++;
                }

                if(GPIO_ReadInputDataBit(GPIOB, COBRA_BOARDSWITCH)== false) //Hunng upp
                {
                  hangUp(); //hang-up command to bluettooh
                  writeStringUSART1("Hung up!\n\r");
                  counter = 0;
                  break;
                }

              
                //printf("%d\n\r", dialed_number);
                    
            }//end for loop
        }
        
        Delay(Delay_100ms);
    
    }//end while(1)

  }//end main()
Ejemplo n.º 6
0
//读取串口缓冲区的消息并分析
void Gprs::ReadMsg(QString strRecv)
{	
 	//读取信息内容,并将信息内容写到本地
	if(strRecv.indexOf("+CMGR:",Qt::CaseInsensitive)>=0)
	{
		//readFlag=0;
		QString strNum;
		QString strMsgContent=ProcessMessage(strRecv,strNum);
                
                if(!isRemoteCtl&&!isLocationInfo){
                MessageRecieved *messageRecieved=new MessageRecieved(0,this,strNum,strMsgContent);
                messageRecieved->init();
		}
                isRemoteCtl=false;
                isLocationInfo=false;
                const char *chCmd;		
		QString cmd="AT+CMGD="+msgIndex+"\r\n";
		chCmd=cmd.toLatin1().data();
		int len=strlen(chCmd);
		SerialPort::nwrite(fd, chCmd, len);
	}
        //获取短信中心号码
	if(serverNumFlag)
	{
		int ITmp=strRecv.indexOf("+CSCA:\"+86", Qt::CaseInsensitive);
		if(ITmp>0 )
		{
	    		serverNumFlag=0;
			serverNumber=strRecv.mid(ITmp+sizeof("+CSCA:\"+86")-1,11);
			qDebug()<<("Init success"+serverNumber);
		}
		else{
			QMessageBox::warning(0, tr("Warning:"),
                                  tr("Can't get the server number!"));
                    }
	}
        //收到新消息
	if(strRecv.indexOf("+CMTI",Qt::CaseInsensitive)>=0)
	{
		int index=strRecv.indexOf(",");		
		msgIndex=strRecv.mid(index+2,2);
		//readFlag=1;
		qDebug()<<("New message arrive!");	
		ReadMessage(msgIndex);
	}
        //待发送短信
	if(strRecv.indexOf(">",Qt::CaseInsensitive)>=0)
	{
	        const char *sendata=sendContent.toLatin1().data();
	 	int len=strlen(sendata);
		if(fd>0){
			SerialPort::nwrite(fd,sendata,len);
                }
                qDebug()<<("send success");	
	}
        //获得来电者信息
        if(strRecv.indexOf("+CLIP:",Qt::CaseInsensitive)>=0)
	{
		if(ringFlag==0){
                
                int index1=strRecv.indexOf(" ");
                int index2=strRecv.indexOf(",");
                QString number=strRecv.mid(index1+2,index2-index1-3);
		ringFlag=1;
                
                calledView->setNum(number);
                calledView->setVisible(true);
                // ringFlag = 0;	
	}
}
        //来电结束
        if(strRecv.indexOf("ATH",Qt::CaseInsensitive)>=0||strRecv.indexOf("NO CARRIER",Qt::CaseInsensitive)>=0)
	{
               ringFlag = 0;
               calledView->stopTimer();
               calledView->setVisible(false);	
	}

        //对方挂断
        if(strRecv.indexOf("BUSY",Qt::CaseInsensitive)>=0||strRecv.indexOf("NO CARRIER",Qt::CaseInsensitive)>=0)
	{
               emit hangUp();	
	}
}