📄 cb_f4.cpp
字号:
#include "CB_F4.h"
#include "CB_F1.h"
#include "CB_F3.h"
#include "CB_Unit.h"
#include "CB_String.h"
#include "CB_Colliery.h"
#include "CB_Sensor.h"
#include "CB_Sensor_bk.h"
#include "CB_Socket.h"
#include "Afx.h"
#include "CB_SysParam.h"
//##ModelId=412ADF1403AC
int CB_F4::instance(char *str, char *fileName, int iCount)
{
int nRtn = 0;
FILE *pFile;
pFile = fopen(fileName,"r+");
POINT point_src,point_dest;
strToStrt(str,&point_src,iCount);
int len = sizeof(POINT);
int data_flag = 0;
char index_src_all[120];
char index_dest_all[120];
char *p ;
p = point_src.index;
CB_Unit::trim(p);
CB_Unit::clearBuf(index_src_all,120);
strcpy(index_src_all,p);
p = point_src.index_colliery;
strcat(index_src_all,p);
CB_Unit::trim(index_src_all);
while(1==1)
{
if(fread(&point_dest,len,1,pFile)<1)
{
if(feof(pFile)!=0){
data_flag = 1;
break;
}else{
data_flag = 0;
break;
}
}
CB_Unit::clearBuf(index_dest_all,120);
p = point_dest.index;
strcpy(index_dest_all,p);
p = point_dest.index_colliery;
strcat(index_dest_all,p);
CB_Unit::trim(index_dest_all);
if(strcmp(index_src_all,index_dest_all) == 0)
{
data_flag = 2;
break;
}
}
char *pSend;
if(data_flag == 1)
{
strcpy(point_src.state,"1");
strcpy(point_src.affirm,"0");
if(fwrite(&point_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}else{
pSend = getSendDataNew(&point_src,iCount);
}
}else if(data_flag == 2){
int nState = atoi(point_dest.state);
int nAffirm= atoi(point_dest.affirm);
if(strcmp(point_src.station,point_dest.station)!=0 ||
strcmp(point_src.upper_limit,point_dest.upper_limit)!=0 )
{
if((nState==1) && (nAffirm==0))
{
strcpy(point_src.state,"1");
strcpy(point_src.affirm,"0");
pSend = getSendDataNew(&point_src,iCount);
}else if( (nState==1) && (nAffirm==1))
{
strcpy(point_src.state,"2");
strcpy(point_src.affirm,"0");
pSend = getSendDataUpdate(&point_src,&point_dest,iCount);
}else if( nState==2)
{
strcpy(point_src.state,"2");
strcpy(point_src.affirm,"0");
pSend = getSendDataUpdate(&point_src,&point_dest,iCount);
}
if(fseek(pFile,-len,SEEK_CUR)!=0)
{
nRtn = -1;
goto Stop;
}
if(fwrite(&point_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}
}else{
if(nAffirm == 0)
{
if(nState==1)
{
pSend = getSendDataNew(&point_src,iCount);
}else if(nState ==2){
pSend = getSendDataUpdate(&point_src,&point_dest,iCount);
}
}else{
goto Stop;
}
}
}
if(pSend==NULL)
{
goto Stop;
}else if(strlen(pSend)<=5)
{
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);
if(fseek(pFile,-len,SEEK_CUR)!=0)
{
nRtn = -1;
goto Stop;
}
strcpy(point_src.affirm,"1");
if(fwrite(&point_src,len,1,pFile)<1)
{
nRtn = -1;
goto Stop;
}
}
Stop:
if(pFile != NULL){
fclose(pFile);
}
return nRtn;
}
//##ModelId=412ADF15005D
char *CB_F4::getSendDataNew(POINT * point, int iCount)
{
CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));
char *p;
p = point->index_sensor;
CB_Unit::trim(p);
SENSOR *sensor;
CB_Sensor cSensor;
sensor = cSensor.getSensor(p);
if(sensor == NULL)
return NULL;
strcpy(m_sendData,"4S");
strcat(m_sendData,"+");
strcat(m_sendData,sensor->index);
strcat(m_sendData,"+");
strcat(m_sendData,"增");
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,"+");
char chCount[10];
sprintf(chCount,"%i",iCount);
CB_Unit::trim(chCount);
strcat(m_sendData,chCount);
strcat(m_sendData,"+");
COLLIERY *colliery;
CB_Colliery cColl;
p = point->index_colliery;
CB_Unit::trim(p);
colliery = cColl.getColliery(p);
if(colliery == NULL)
return NULL;
p = colliery->name;
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point->index_sensor;
CB_Unit::trim(p);
sensor = cSensor.getSensor(p);
if(sensor == NULL)
return NULL;
char tong[40];
CB_Unit::clearBuf(tong,40);
p = point->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong,2);
tong[2]='\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
strcat(m_sendData,point->station);
strcat(m_sendData,"+");
strcat(m_sendData,sensor->name);
strcat(m_sendData,"+");
CB_Unit::clearBuf(tong,40);
p = point->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong+2,2);
tong[2] = '\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
p = sensor->unit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point->upper_limit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
CB_Sensor_bk cSensor_bk;
SENSOR sensor_bk;
cSensor_bk.getSensor(point->index_sensor,sensor_bk);
int value = atoi(sensor_bk.on_off);
if(value !=1)
p = "1" ;
else
p="0";
strcat(m_sendData,p);
strcat(m_sendData,"+");
strcat(m_sendData,"E");
return m_sendData;
}
//##ModelId=412ADF1500AB
void CB_F4::setUser(CB_User* user)
{
m_user = user;
}
//##ModelId=412ADF1500FA
char *CB_F4::getSendDataUpdate(POINT *point_new, POINT *point_old, int iCount)
{
CB_Unit::clearBuf(m_sendData,sizeof(m_sendData));
char *p;
p = point_old->index_sensor;
CB_Unit::trim(p);
SENSOR *sensor;
CB_Sensor cSensor;
sensor = cSensor.getSensor(p);
if(sensor == NULL)
return NULL;
strcpy(m_sendData,"4S");
strcat(m_sendData,"+");
strcat(m_sendData,sensor->index);
strcat(m_sendData,"+");
strcat(m_sendData,"改");
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,"+");
char chCount[10];
sprintf(chCount,"%i",iCount);
CB_Unit::trim(chCount);
strcat(m_sendData,chCount);
strcat(m_sendData,"+");
COLLIERY *colliery;
CB_Colliery cColl;
p = point_old->index_colliery;
CB_Unit::trim(p);
colliery = cColl.getColliery(p);
if(colliery == NULL)
return NULL;
p = colliery->name;
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point_old->index_sensor;
CB_Unit::trim(p);
sensor = cSensor.getSensor(p);
if(sensor == NULL)
return NULL;
char tong[40];
CB_Unit::clearBuf(tong,40);
p = point_old->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong,2);
tong[2]='\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
strcat(m_sendData,point_old->station);
strcat(m_sendData,"+");
strcat(m_sendData,sensor->name);
strcat(m_sendData,"+");
CB_Unit::clearBuf(tong,40);
p = point_old->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong+2,2);
tong[2] = '\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
p = sensor->unit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point_old->upper_limit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
CB_Sensor_bk cSensor_bk;
SENSOR sensor_bk;
cSensor_bk.getSensor(point_old->index_sensor,sensor_bk);
int value = atoi(sensor_bk.on_off);
if(value !=1)
p = "1" ;
else
p="0";
strcat(m_sendData,p);
strcat(m_sendData,"+");
strcat(m_sendData,chCount);
strcat(m_sendData,"+");
p = point_new->index_colliery;
CB_Unit::trim(p);
colliery = cColl.getColliery(p);
if(colliery == NULL)
return NULL;
p = colliery->name;
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point_new->index_sensor;
CB_Unit::trim(p);
sensor = cSensor.getSensor(p);
if(sensor == NULL)
return NULL;
CB_Unit::clearBuf(tong,40);
p = point_old->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong,2);
tong[2]='\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
strcat(m_sendData,point_new->station);
strcat(m_sendData,"+");
strcat(m_sendData,sensor->name);
strcat(m_sendData,"+");
CB_Unit::clearBuf(tong,40);
p = point_new->index;
CB_Unit::trim(p);
strcpy(tong,p);
memmove(tong,tong+2,2);
tong[2] = '\0';
strcat(m_sendData,tong);
strcat(m_sendData,"+");
p = sensor->unit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
p = point_new->upper_limit;
CB_Unit::trim(p);
strcat(m_sendData,p);
strcat(m_sendData,"+");
CB_Sensor_bk cSensor_bk_new;
SENSOR sensor_bk_new;
cSensor_bk_new.getSensor(point_new->index_sensor,sensor_bk_new);
value = atoi(sensor_bk_new.on_off);
if(value !=1)
p = "1" ;
else
p="0";
strcat(m_sendData,p);
strcat(m_sendData,"+");
strcat(m_sendData,"E");
return m_sendData;
}
//##ModelId=412ADF150167
int CB_F4::strToStrt(char *str, POINT *point, int iCount)
{
CB_String string;
string.split(str,',');
char *pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->index_colliery,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->index,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->index_sensor,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->station,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->upper_limit,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->lower_limit,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->turnoff_value,pResult);
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->turnon_value,pResult);
if(getSysParam()->getInitDataLen("F4")==10)
{
pResult = string.getNext();
CB_Unit::trim(pResult);
strcpy(point->time_produce,pResult);
}
strcpy(point->state,"1");
strcpy(point->affirm,"0");
char chCount[10];
CB_Unit::clearBuf(chCount,10);
sprintf(chCount,"%d",iCount);
CB_Unit::trim(chCount);
strcpy(point->count,chCount);
return 0;
}
//##ModelId=412ADF1501E4
CB_F4::CB_F4()
{
}
//##ModelId=412ADF1501F4
CB_F4::~CB_F4()
{
}
//##ModelId=4153733F038A
CB_SysParam *CB_F4::getSysParam()
{
return m_sysParam;
}
//##ModelId=4153734203D8
void CB_F4::setSysParam(CB_SysParam *sysParam)
{
m_sysParam = sysParam;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -