⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cb_f1.cpp

📁 LINUX系统下基于ARM处理器的使用GPRS方式通过SOCKET数据包进行煤矿瓦斯监控的程序.这是在黑龙江省现场运行的程序源代码.
💻 CPP
字号:
#include "CB_F1.h"
#include "CB_String.h"
#include "CB_Unit.h"
#include "CB_String.h"
#include "CB_Socket.h"
#include "Afx.h"


//##ModelId=409333ED0036
int CB_F1::instance(char *str, char *fileName)
{
  int nRtn = 0;
  FILE *pFile;
  pFile = fopen(fileName,"r+");
  COLLIERY coll_src,coll_dest; 
  strToStrt(str,&coll_src);
  int len = sizeof(COLLIERY);
  int data_flag = 0;  
  char *pIndex_src,*pIndex_dest;  
  pIndex_src = coll_src.index;
  CB_Unit::trim(pIndex_src);
  while(1==1)
  {
     if(fread(&coll_dest,len,1,pFile)<1)
 	 {
       if(feof(pFile)!=0){
         data_flag = 1;       
         break; 
	   }else{
         data_flag = 0;
		 break;
	   }
	 }
     
     pIndex_dest= coll_dest.index ;
	 CB_Unit::trim(pIndex_dest);
     if( strcmp(pIndex_src,pIndex_dest) == 0)
	 {
        data_flag = 2;
 	    break;
	 }
  }
  char *pSend;
  if(data_flag == 1)
  {
    strcpy(coll_src.state,"1");
	strcpy(coll_src.affirm,"0");
	if(fwrite(&coll_src,len,1,pFile)<1)
	{
      nRtn = -1;
	  goto Stop;
	}else{
      pSend = getSendDataNew(&coll_src); 
	}
	
  }else if(data_flag == 2){
    int nState = atoi(coll_dest.state);
    int nAffirm= atoi(coll_dest.affirm);          
    if(strcmp(coll_src.name,coll_dest.name)!=0 )
    {
      if((nState==1) && (nAffirm==0))
       {
         strcpy(coll_src.state,"1");
         strcpy(coll_src.affirm,"0");
  	     pSend = getSendDataNew(&coll_src);
	   }else if( (nState==1) && (nAffirm==1))
	   {
         strcpy(coll_src.state,"2");
         strcpy(coll_src.affirm,"0"); 
         pSend = getSendDataUpdate(&coll_dest,&coll_src);
	   }else if( nState==2)
	   {
         strcpy(coll_src.state,"2");
         strcpy(coll_src.affirm,"0"); 
		 pSend = getSendDataUpdate(&coll_dest,&coll_src);
	   }
       if(fseek(pFile,-len,SEEK_CUR)!=0)
	   {
         nRtn = -1;
 	     goto Stop;
	   }
	   if(fwrite(&coll_src,len,1,pFile)<1)
	   {
         nRtn = -1;
	     goto Stop;
	   }
     }else{ if(nAffirm == 0)
		{
           if(nState==1)
		   {
             pSend = getSendDataNew(&coll_src);
           }else if(nState ==2){
             pSend = getSendDataUpdate(&coll_dest,&coll_src);
		  }
	    }else{
          goto Stop;
	    }
     }
  }
  
  if(isSocketEnable())
  {
      CB_Socket cSocket;
	  cSocket.initiaze();
	  char *rtn;
	  rtn = NULL;
	  if(cSocket.send(pSend,rtn)<0)
	  {
        nRtn = -1;
   	    goto Stop;
	  }
	  printf("pSend:%s\n",pSend);
	  strcpy(coll_src.affirm,"1");
      
	  if(fseek(pFile,-len,SEEK_CUR)!=0)
	  {
        nRtn = -1;
 	    goto Stop;
	  }
	  if(fwrite(&coll_src,len,1,pFile)<1)
	  {
        nRtn = -1;
	    goto Stop;
	  }
   } 

  Stop:
    fclose(pFile); 
  return nRtn;
}

//##ModelId=409333ED00C2
void CB_F1::setSign(void *vPtr)
{
}

//##ModelId=40B30C150193
void CB_F1::setUser(CB_User* user)
{
  m_user = user;
}

//##ModelId=40B30E570339
char *CB_F1::getSendDataNew(COLLIERY *colliery)
{
  CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));  
  strcpy(m_sendData,"9S+0+增");
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->name);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->office);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->area);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->linkman);
  strcat(m_sendData,"+");
  strcat(m_sendData,colliery->name);
  strcat(m_sendData,"+");
  strcat(m_sendData,colliery->index);
  strcat(m_sendData,"+");
  strcat(m_sendData,"E");
  return m_sendData; 
}

//##ModelId=40B3F0120057
char *CB_F1::getSendDataUpdate(COLLIERY * coll_src, COLLIERY * coll_dest)
{
  CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));  
  strcpy(m_sendData,"9S+0+改");
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->name);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->office);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->area);
  strcat(m_sendData,"+");
  strcat(m_sendData,m_user->getPerson()->linkman);
  strcat(m_sendData,"+");
  strcat(m_sendData,coll_src->name);
  strcat(m_sendData,"+");
  strcat(m_sendData,coll_dest->name);
  strcat(m_sendData,"+");
  strcat(m_sendData,coll_dest->index);
  strcat(m_sendData,"+");
  strcat(m_sendData,"E");
  return m_sendData; 
}

//##ModelId=409AF4BA03AC
int CB_F1::strToStrt(char *str, COLLIERY *colliery)
{
  CB_String string;
  string.split(str,',');
  char *pResult = string.getNext();
  CB_Unit::trim(pResult);
  strcpy(colliery->index,pResult);
  pResult = string.getNext();
  CB_Unit::trim(pResult);
  strcpy(colliery->name,pResult);
  pResult = string.getNext();
  CB_Unit::trim(pResult);
  strcpy(colliery->sys_name,pResult);
  pResult = string.getNext();
  CB_Unit::trim(pResult);
  strcpy(colliery->time_produce,pResult);
  strcpy(colliery->state,"0");
  strcpy(colliery->affirm,"0");
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -