📄 hq_tcp.c
字号:
lc =0; while(i<GraphData.minEnd) { tim1 =GraphData.lpGraData[i].tim; if(tim1 >tim) { //i++; //tim=tim1; break; } lc +=GraphData.lpGraData[i].lc; i++; } if(i-1<GraphData.minEnd && tim >0) { j =i-1; GraphData.lpMinLc[GraphData.minCount] =lc; GraphData.lpMinPos[GraphData.minCount++] =j; } tim =tim1; } return 0;}int GraRecalcJgMax(){ int i; float min_val, max_val, f1; if(GraphData.minCount <=0) return 0; min_val =max_val =GraphData.lpGraData[0].zjjg; //max_val =GraphData.GraHead.zgjg; for(i =1; i<GraphData.minCount && i<GraphData.minEnd; i++) { if(min_val >GraphData.lpGraData[GraphData.lpMinPos[i]].zjjg) min_val =GraphData.lpGraData[GraphData.lpMinPos[i]].zjjg; if(max_val <GraphData.lpGraData[GraphData.lpMinPos[i]].zjjg) max_val =GraphData.lpGraData[GraphData.lpMinPos[i]].zjjg; } if(min_val ==0) min_val -=(float)0.001; if(max_val ==0) max_val +=(float)0.001; //min_val =(float)(min_val*(1-0.001)-0.01); //max_val =(float)(max_val*(1+0.001)+0.01); if(max_val <0) max_val *=-1; if(min_val <0) min_val *=-1; if(min_val >max_val) max_val =min_val; f1 =0; /*while(1) { if((f1+0.05)*5>max_val) { max_val =(float)((f1+0.05)*5); f1+=(float)0.05; break; } f1+=(float)0.05; } */ max_val =max_val+GraphData.GraHead.zrsp*(float)0.002; GraphData.GraHead.zgjg =max_val; GraphData.GraHead.zdjg =0-max_val; return 0;}int GraRecalcLcMax(){ int i; long max_val =GraphData.lpMinLc[0]; if(GraphData.minCount <=0) return 0; for(i =1; i<GraphData.minCount && i<GraphData.minEnd; i++) { if(max_val <GraphData.lpMinLc[i]) max_val =GraphData.lpMinLc[i]; } max_val =(long)((double)max_val*(1+0.2)+5); GraphData.GraHead.zglc =max_val; return 0;}int MaxMinChangeHqData(int jys, int maxmin){ int i, j; for(i =0; i<4; i++) for(j =0; j<10; j++) { ///////////// if(MaxMinData[jys][maxmin].recNum[i][j] >=HqData[jys].recCount) return -1; HqData[jys].lpRefData[MaxMinData[jys][maxmin].recNum[i][j]].zjjg =MaxMinData[jys][maxmin].MaxMin[i][j].zjjg; HqData[jys].lpRefData[MaxMinData[jys][maxmin].recNum[i][j]].zdf =MaxMinData[jys][maxmin].MaxMin[i][j].zdf; HqData[jys].lpRefData[MaxMinData[jys][maxmin].recNum[i][j]].cjss =MaxMinData[jys][maxmin].MaxMin[i][j].cjss; } return 0;}void UDP_Send_Exit(void){ int i, len,x,tlen; char temp[40]; temp[0]=DATA_START_SIGN; *(int*)&temp[1]=strlen(CLNT_EXIT); memcpy(&temp[1+sizeof(int)],CLNT_EXIT,strlen(CLNT_EXIT)); tlen =1+sizeof(int)+strlen(CLNT_EXIT); for(i =0,x=0; i<10; i++) { len =send(sdHq, &temp[x],tlen -x, 0); if (len == SOCKET_ERROR) { if (h_errno == WSAEWOULDBLOCK) continue; else return; } if(x+len!=tlen) x+=len; else break; }}int UDP_Read_DataDay(LPSTR lpTmp, int len){ char temp[128]; char jys; int gp_rec_num,sendCount,sendNum,i; HFILE hf; OFSTRUCT os; DAY_DATA DataDayBuff; jys=*lpTmp++; len -=1; if(len <=0) goto ReadDataDayErr; gp_rec_num=*(int *)lpTmp; lpTmp +=sizeof(int); len -=sizeof(int); if(len <=0) goto ReadDataDayErr; sendCount=*(int *)lpTmp; lpTmp +=sizeof(int); len -=sizeof(int); if(len <=0) goto ReadDataDayErr; sendNum=*(int *)lpTmp; lpTmp +=sizeof(int); len -=sizeof(int); if(len <=0) goto ReadDataDayErr; wsprintf(temp, "%s\\%s.day",szDataPath, HqData[GraphData.jys].lpPreData[GraphData.recNum].zqdm); hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hf ==HFILE_ERROR) hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_WRITE); if(hf !=HFILE_ERROR) { for(i=0;i<sendCount;i++) { memset(&DataDayBuff,0,sizeof(DAY_DATA)); memcpy(&DataDayBuff,lpTmp,sizeof(DAY_DATA)); lpTmp+=sizeof(DAY_DATA); len-=sizeof(DAY_DATA); if(len<0) { goto ReadDataDayErr; } _llseek(hf, 0l, SEEK_END); _lwrite(hf, &DataDayBuff, sizeof(DAY_DATA)); } _lclose(hf); } if(IsWindowVisible(ghWndFx)) { Fx->IsDataOk=FALSE; InvalidateRect(ghWndFx, NULL, TRUE); } return TRUE; ReadDataDayErr: return FALSE;}int UDP_Send_DataDay(int jys, int rec_num){ int len = 0,data_rec_end; char temp[128]; char WriteBuf[MAX_WRITE_BUF_SIZE+1]; HFILE hf; OFSTRUCT os; wsprintf(temp, "%s\\%s.day", szDataPath,HqData[GraphData.jys].lpPreData[GraphData.recNum].zqdm); hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hf ==HFILE_ERROR) data_rec_end=0; else { data_rec_end=(int)_llseek(hf, 0l, SEEK_END)/sizeof(DAY_DATA); } _lclose(hf); strcpy(WriteBuf, DATA_DAY_HEAD); len=strlen(DATA_DAY_HEAD); WriteBuf[len]=jys; len++; *((int *)&WriteBuf[len]) =rec_num; len +=sizeof(int); *((int *)&WriteBuf[len]) =data_rec_end; len +=sizeof(int); return UDP_Send_Hq(&WriteBuf[0], DATA_DAY_HEAD, len);}int HqCheckUser(char *userID, char *userPwd){ int len; char WriteBuf[MAX_WRITE_BUF_SIZE+1]; strcpy(WriteBuf, HQ_CHKUSR_HEAD); len=strlen(HQ_CHKUSR_HEAD); memcpy(&WriteBuf[len], userID, HQ_USERID_SIZE); len +=HQ_USERID_SIZE; memcpy(&WriteBuf[len], userPwd, HQ_USERPWD_SIZE); len +=HQ_USERPWD_SIZE; return UDP_Send_Hq(&WriteBuf[0], HQ_CHKUSR_HEAD, len);}extern HWND ghDlgChkUsr;int UDP_Read_ChkUsr(LPSTR lpTmp, int len){ SendMessage(ghDlgChkUsr, WM_COMMAND, 100, (LPARAM)(int)*lpTmp); return 0;}BOOL HqAllocMem(int jys){ if(HqData[jys].lpPreData ==NULL) HqData[jys].lpPreData =(LPHQ_PRE_DATA)GlobalAllocPtr(GHND, HqData[jys].recCount*sizeof(HQ_PRE_DATA)); else HqData[jys].lpPreData =(LPHQ_PRE_DATA)GlobalReAllocPtr(HqData[jys].lpPreData, HqData[jys].recCount*sizeof(HQ_PRE_DATA), GMEM_MOVEABLE); if(HqData[jys].lpRefData ==NULL) HqData[jys].lpRefData =(LPHQ_REF_DATA)GlobalAllocPtr(GHND, HqData[jys].recCount*sizeof(HQ_REF_DATA)); else HqData[jys].lpRefData =(LPHQ_REF_DATA)GlobalReAllocPtr(HqData[jys].lpRefData, HqData[jys].recCount*sizeof(HQ_REF_DATA), GMEM_MOVEABLE); if(HqData[jys].lpPreData ==NULL || HqData[jys].lpRefData ==NULL) { HqData[jys].recCount =0; ErrMsg(NULL,"alloc record data memory failed!"); return FALSE; } if(HqData[jys].isLcChanged ==NULL) HqData[jys].isLcChanged =(BOOL *)GlobalAllocPtr(GHND, HqData[jys].recCount*sizeof(BOOL)); else HqData[jys].isLcChanged =(BOOL *)GlobalReAllocPtr(HqData[jys].isLcChanged, HqData[jys].recCount*sizeof(BOOL), GHND); if(HqData[jys].isJgChanged ==NULL) HqData[jys].isJgChanged =(BOOL *)GlobalAllocPtr(GHND, HqData[jys].recCount*sizeof(BOOL)); else HqData[jys].isJgChanged =(BOOL *)GlobalReAllocPtr(HqData[jys].isJgChanged, HqData[jys].recCount*sizeof(BOOL), GHND); if(HqData[jys].isJgChanged ==NULL || HqData[jys].isLcChanged ==NULL) { HqData[jys].recCount =0; ErrMsg(NULL,"alloc changed data memory failed!"); return FALSE; } if(HqData[jys].isReadOK ==NULL) HqData[jys].isReadOK =(BOOL *)GlobalAllocPtr(GHND, HqData[jys].recCount*sizeof(BOOL)); else HqData[jys].isReadOK =(BOOL *)GlobalReAllocPtr(HqData[jys].isReadOK, HqData[jys].recCount*sizeof(BOOL), GHND); if(HqData[jys].isReadOK ==NULL) { HqData[jys].recCount =0; ErrMsg(NULL,"alloc readok data memory failed!"); return FALSE; } return TRUE;}/*int UDP_Recv_File(LPSTR lpTmp,int len){ RECV_FILE_FRAME RecvFileFrame; char temp[80],tmp[80],*ptr,file[14]; HFILE hf; OFSTRUCT os; if(len<sizeof(RECV_FILE_FRAME)) { ErrMsg(NULL,"接收文件帧头长度不足"); return FALSE; } memcpy(&RecvFileFrame,lpTmp,sizeof(RECV_FILE_FRAME)); lpTmp+=sizeof(RECV_FILE_FRAME); len-=sizeof(RECV_FILE_FRAME); if(len!=RecvFileFrame.filelen) { ErrMsg(NULL,"接收文件数据区长度不足"); return FALSE; } memset(file,0,14); strncpy(file,RecvFileFrame.filename,12); file[12] =0; strcpy(tmp,file); ptr=strchr(tmp,'.'); if(ptr!=NULL) *ptr=0; wsprintf(temp, "%s\\%s.tmp",szDataPath,tmp); if(RecvFileFrame.sign=='B'||RecvFileFrame.sign=='e'|| RecvFileFrame.sign=='f') unlink(temp); if(access(temp,0)==0) hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_WRITE); else hf =OpenFile(temp, &os, OF_CREATE|OF_SHARE_DENY_NONE|OF_WRITE); if(hf==HFILE_ERROR) { sprintf(tmp,"不能建立接收文件:%s",temp); ErrMsg(NULL,tmp); return FALSE; } if(_lseek(hf,0L,SEEK_END)==-1) { ErrMsg(NULL,"接收文件不能定位到尾部!"); return FALSE; } if(_lwrite(hf,lpTmp,len)!=(UINT)len) { ErrMsg(NULL,"接收文件不能正确写入数据!"); return FALSE; } _lclose(hf); if(RecvFileFrame.sign=='E'||RecvFileFrame.sign=='e') { sprintf(tmp,"%s\\%s",szDataPath,file); unlink(tmp); rename(temp,tmp); _strlwr(tmp); if(strstr(tmp,"szhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +5,0,0L); if(strstr(tmp,"shhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +6,0,0L); } if(RecvFileFrame.sign=='F'||RecvFileFrame.sign=='f') { sprintf(tmp,"%s\\%s",szDataPath,file); unlink(tmp); ExpandFile(temp,tmp); unlink(temp); _strlwr(tmp); if(strstr(tmp,"szhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +5,0,0L); if(strstr(tmp,"shhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +6,0,0L); } return TRUE;}*/int UDP_Recv_File(LPSTR lpTmp,int len){ RECV_FILE_FRAME RecvFileFrame; char temp[80],tmp[80],*ptr,file[14]; char buf[4096]; int bytes; gzFile in; HFILE hf; OFSTRUCT os; if(len<sizeof(RECV_FILE_FRAME)) { ErrMsg(NULL,"接收文件帧头长度不足"); return FALSE; } memcpy(&RecvFileFrame,lpTmp,sizeof(RECV_FILE_FRAME)); lpTmp+=sizeof(RECV_FILE_FRAME); len-=sizeof(RECV_FILE_FRAME); if(len!=RecvFileFrame.filelen) { ErrMsg(NULL,"接收文件数据区长度不足"); return FALSE; } memset(file,0,14); strncpy(file,RecvFileFrame.filename,12); file[12] =0; if(RecvFileFrame.sign<=GZ_OVER) { wsprintf(temp, "%s\\temp.tmp",szDataPath); switch(RecvFileFrame.sign) { case GZ_STAR: hf =OpenFile(temp, &os, OF_CREATE|OF_SHARE_DENY_NONE|OF_WRITE); break; case GZ_SING: hf =OpenFile(temp, &os, OF_CREATE|OF_SHARE_DENY_NONE|OF_WRITE); break; case GZ_CONT: hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_WRITE); break; case GZ_OVER: hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_WRITE); break; } if(hf==HFILE_ERROR) { sprintf(tmp,"不能建立接收文件:%s",temp); ErrMsg(NULL,tmp); return FALSE; } _lseek(hf,0L,SEEK_END); if(_lwrite(hf,lpTmp,len)!=(UINT)len) { ErrMsg(NULL,"接收文件不能正确写入数据!"); return FALSE; } _lclose(hf); if(RecvFileFrame.sign ==GZ_SING ||RecvFileFrame.sign ==GZ_OVER) { in = gzopen(temp, "rb"); if(in ==NULL) { ErrMsg(NULL,"不能打开压缩文件!"); return FALSE; } _strlwr(file); if(strstr(file,"winpy.dat")!=NULL) strcpy(tmp,file); else wsprintf(tmp, "%s\\%s",szDataPath,file); hf =OpenFile(tmp, &os, OF_CREATE|OF_SHARE_DENY_NONE|OF_WRITE); for (;;) { bytes = gzread(in, buf, sizeof(buf)); if (bytes < 0) { ErrMsg(NULL,"不能解压数据文件!"); break; } if (bytes == 0) break; if(_lwrite(hf,buf,bytes)!=(UINT)bytes) { ErrMsg(NULL,"解压数据不能正确写入文件!"); break; } } _lclose(hf); if (gzclose(in) != Z_OK) { ErrMsg(NULL,"压缩文件不能正常关闭!"); return FALSE; } if(strstr(tmp,"szhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +5,0,0L); else if(strstr(tmp,"shhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +6,0,0L); else if(strstr(tmp,"winpy.dat")!=NULL) PostMessage(ghWndMain,WM_USER +7,0,0L); else { sprintf(tmp,"接收文件%s",file); Msg(tmp,MSG_VERT); } } return 0; } strcpy(tmp,file); ptr=strchr(tmp,'.'); if(ptr!=NULL) *ptr=0; wsprintf(temp, "%s\\%s.tmp",szDataPath,tmp); if(RecvFileFrame.sign=='B'||RecvFileFrame.sign=='e'|| RecvFileFrame.sign=='f') unlink(temp); if(access(temp,0)==0) hf =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_WRITE); else hf =OpenFile(temp, &os, OF_CREATE|OF_SHARE_DENY_NONE|OF_WRITE); if(hf==HFILE_ERROR) { sprintf(tmp,"不能建立接收文件:%s",temp); ErrMsg(NULL,tmp); return FALSE; } if(_lseek(hf,0L,SEEK_END)==-1) { ErrMsg(NULL,"接收文件不能定位到尾部!"); return FALSE; } if(_lwrite(hf,lpTmp,len)!=(UINT)len) { ErrMsg(NULL,"接收文件不能正确写入数据!"); return FALSE; } _lclose(hf); if(RecvFileFrame.sign=='E'||RecvFileFrame.sign=='e') { sprintf(tmp,"%s\\%s",szDataPath,file); unlink(tmp); rename(temp,tmp); _strlwr(tmp); if(strstr(tmp,"szhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +5,0,0L); if(strstr(tmp,"shhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +6,0,0L); } if(RecvFileFrame.sign=='F'||RecvFileFrame.sign=='f') { sprintf(tmp,"%s\\%s",szDataPath,file); unlink(tmp); ExpandFile(temp,tmp); unlink(temp); _strlwr(tmp); if(strstr(tmp,"szhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +5,0,0L); if(strstr(tmp,"shhq.dat")!=NULL) PostMessage(ghWndMain,WM_USER +6,0,0L); } return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -