设为首页 加入收藏

TOP

C++之AT指令与GPRS通信(二)
2015-07-24 07:26:43 来源: 作者: 【 】 浏览:476
Tags:指令 GPRS 通信
**************************************************************/ void Gprs::initAT() //open serial to get fd---->timer start----->get messege Center order { if(isinit==1)//check if init return; if(fd==0) { if((fd=MySerial::open_port(fd,2))<0) { ui->Txt_State->setPlainText(Open port error.); return; } else ui->Txt_State->setPlainText(Open port success); if((MySerial::set_opt(fd,9600,8,'N',1))<0) { ui->Txt_State->setPlainText(Set port error); return; } else ui->Txt_State->setPlainText(Set port success); } //ui->Txt_HostNum->setText(10000); //set stablid telphone Center number memset(buff,0,sizeof(buff)); TimerRead = new QTimer; TimerRead->start(200); connect(TimerRead, SIGNAL(timeout()), this, SLOT(read_timeout_slot())); //read serial ,there is data or no? connect(TimerRead, SIGNAL(timeout()), this, SLOT(ReadPort())); //connect(TimerRead, SIGNAL(timeout()), this, SLOT(ReceiveSignal())); MySerial::nwrite(fd,AT+CSCA? ,sizeof(AT+CSCA? )); // BInit=1; read_timeout_slot(); isinit=1; } void Gprs::ReadPort() { QString readstr(MySerial::nread(fd,buff,sizeof(buff))); ui->Txt_State->setText(readstr+ui->Txt_State->toPlainText()+ ); } /* void Gprs::ReceiveSignal() { if() { } } */ void Gprs::Init_Sys() { if(fd!=0) { ui->Txt_State->setPlainText(Serial port already open.); } else if(fd==0) { if((fd=MySerial::open_port(fd,1))<0) { ui->Txt_State->setPlainText(Open port error); return; } else ui->Txt_State->setPlainText(Open port success); if((MySerial::set_opt(fd,9600,8,'N',1))<0) { ui->Txt_State->setPlainText(Set port error); return; } else ui->Txt_State->setPlainText(Set port success); } ui->Txt_HostNum->setText(10086); } void Gprs::on_Btn_Open_clicked() { QString s_tmp=ui->Txt_TargetNum->text(); if(s_tmp==ALL||s_tmp==all) //set function in button { MySerial::nwrite(fd,AT+CMGL=4 ,sizeof(AT+CMGL=4 )); //AT+CMGL ----list SIM cade messege } else if(s_tmp==NEW||s_tmp==new) { MySerial::nwrite(fd,AT+CMGL=0 ,sizeof(AT+CMGL=0 )); //set function in button } else ReadMessage(ui->Txt_TargetNum->text()); } void Gprs::on_Btn_Send_clicked() { QString strSendMsg=ui->Txt_HostMsg->toPlainText(); QString strMobilephonenumber=ui->Txt_TargetNum->text(); //QString strServerNumber=ui->Txt_HostNum->text(); if(strMobilephonenumber.length()!=11) { QMessageBox::information(this,information,Moble Phone Number is error!+strMobilephonenumber); return; } if(strServerNumber.length()!=11) { QMessageBox::information(this,information,SMS Server Number is error!+strServerNumber); return; } if(strSendMsg.isEmpty()) { QMessageBox::information(this,information,Message content is empty!+strSendMsg); return; } if(fd) //fd > 0 is success { strEncodeMsg=PreSendMessage(strSendMsg ,strMobilephonenumber,strServerNumber) ; BSend=TRUE; } } QString Gprs::PreSendMessage(QString strSendMsg, QString strPhoneNumber, QString strServerNumber) { char *chMsgHead0=089168; //stablid yuanyu string at header char *charMsgHead1=11000B81; //stablid yuanyu string in center part char *chMsgTail=0008AA; char *enter= ; char esc=0x1A; strEncodeMsg=; QString strSendTemp=; if ( fd>0 ) { strSendTemp=chMsgHead0; // add the message head first 首先添加信息头目 strSendTemp+=NumberConversion(strServerNumber); // encode the SMS server number 编码中心短信号码------yuanyu strSendTemp+=charMsgHead1; strSendTemp+=NumberConversion(strPhoneNumber); // encode the
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 12508 - Triangles in the Gr.. 下一篇HDU2577dp基础

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: