Ejemplo n.º 1
0
//初始化系统
void Gprs::initAT()
{	
        //打开和设置端口
	if(fd==0)
	{
		if((fd=SerialPort::open_port(1))<0){
                QMessageBox::warning(0, tr("Warning:"),
                                  tr("Open port error!"));
               		 return; 
        	}

	        if((SerialPort::set_opt(fd,115200,8,'N',1))<0){
        	QMessageBox::warning(0, tr("Warning:"),
                                  tr("Set port error!"));
                	return;
		}
	}

                //tcflush(fd,TCIOFLUSH);
		resetBuff();//给buff清零


                //设置定时器
		timerRead = new QTimer;
                timerRead->start(TIME);
		connect( timerRead, SIGNAL(timeout()), this, SLOT(timeout_slot()) );

                //发送获取短信中心号码请求(部分设备不支持)
		//SerialPort::nwrite(fd,"AT+CSCA?\r\n",sizeof("AT+CSCA?\r\n"));
		//serverNumFlag=1;

                //呼叫线路识别显示
                SerialPort::nwrite(fd,"AT+CLIP=1\r\n",sizeof("AT+CLIP=1\r\n"));
}
Ejemplo n.º 2
0
/*
*   Receive response waiting timeout millisec
*/
char* HTTP::getResponse(int sk,int timeout)
{
	int len;
	char* line;
  int i;
  for(i=-1;i<timeout;i=i+10){line=readLine(sk);if(line!=NULL) break;delay(10);}
	if (line==NULL) return NULL;
	if (memcmp(line,"HTTP/1.1",8)!=0) 
        {strcpy(respmess,"ERR");cleanBuff(sk);return "Err!";}
	strncpy(respmess,(line+9),3);
	if (memcmp(line,"HTTP/1.1 200",12)!=0)  {cleanBuff(sk);return NOPAGE;} 
	while (line!=NULL)
	{
		line=readLine(sk);
		if (line!=NULL) 
		{
		  char *param=checkHeader(line,headerLen); 
      if (param!=NULL) sscanf(param,"%i",&len);  
			if (strlen(line)<2) {break;}
		}
	}
	readLine(sk);
	char* p=strchr(linebuff,'\0');*p='\n';
	if (len>LINEBUFFLEN) len=LINEBUFFLEN;
  linebuff[len]='\0';
  resetBuff();
  uint8_t tmp[8];while (readData(sk,tmp,8)>0);
	return linebuff;
}
Ejemplo n.º 3
0
/*
* With timeout (millisec)
*/
unsigned int HTTP::getResponse(int sk,uint8_t rbuff[],int rbufflen,int timeout)
{
	int len;
	char* line;
  int i;
  for(i=-1;i<timeout;i=i+10){line=readLine(sk);if(line!=NULL) break;delay(10);}
	if (line==NULL) return -1;
	if (memcmp(line,"HTTP/1.1",8)!=0) 
        {strcpy(respmess,"ERR");cleanBuff(sk);return -2;}
	strncpy(respmess,(line+9),3);	
	if (line==NULL) return -1;
	if (memcmp(line,"HTTP/1.1 200",12)!=0) {cleanBuff(sk);return -2;} 
	while (line!=NULL)
	{
		line=readLine(sk);
		if (line!=NULL) 
		{
		  char *param=checkHeader(line,headerLen); 
      if (param!=NULL) sscanf(param,"%i",&len);  
			if (strlen(line)<2) {break;}
		}
	}
  resetBuff();
  if (len==0) return 0;
  uint16_t nb=readData(sk,rbuff,rbufflen);
	return nb;
}
Ejemplo n.º 4
0
//定时器触发(从串口读取数据)
void Gprs::timeout_slot()
{
	if(fd)
    	{
		if(read(fd,buff,sizeof(buff))!=0)
		{  
                        qDebug()<<QString(buff);
	       		ReadMsg(QString(buff));
			resetBuff();
		}
	}	
}
//===================>>> vedTextEditor::ReadFile <<<====================
  int vedTextEditor::ReadFile(char* name, int paintIt)
  {

    char buff[maxBuff+2];

    if (!name || !*name)
	return 0;

    ifstream inFile(name);

    if (!inFile)
	return 0;		// file not there

    resetBuff();		// this buffer is empty

    while (inFile.getline(buff,maxBuff))
      {
	if (!addLine(buff))
	  {
	    vNoticeDialog note(theApp);
	    note.Notice("File too big -- only paritally read.");
	    break;
	  }
      }

    inFile.close();

    if ( ((videApp*)theApp)->getBackup())
      {
	char outname[maxBuff+2];
	vOS os;
	if (strstr(name,".bak") == 0 && strlen(name) < maxBuff - 4)
	  {
	    strcpy(outname,name); strcat(outname,".bak");
	    os.vDeleteFile(outname);	// delete old .bak first
	    if (os.vRenameFile(name,outname))
		SaveFile(name);
	  }
      }

    displayBuff(1,paintIt);		// Now, display the buffer , don't paint
    return 1;
  }