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

📄 commut.cpp

📁 远程视频监控系统最新程序代码
💻 CPP
字号:
void  sendto(int realqd,int to)
{
	unsigned  num,table,n,bytes=256;
	int s,err;
	float *v;
	int   *st;
	int i,logicqd;

	if(to>31||to<0) return;
	if(realqd>=100) return;


      logicqd=qdmap(realqd);
      if(qztp[logicqd]==9||qztp[logicqd]==42){
	s=1;				// float
	table=realqd*bytes;
	num=channelnum(logicqd);
	n=num*4;
	v=&idcbv[logicqd];                 //idcbv[]: temp var
	for(i=0;i<3;i++){
	  idcbwr(&to,&s,&table,&n,&v[1],&err);
	  if(err==0) break;
	   else while((timenum%6)==0) break;

	}

/*	s=0;				// float
	table=frqd*bytes+num*4;
	n=num;
	st=&idcbst1[frqd];              //idcbst1[]: temp var
	for(i=0;i<3;i++){
	  idcbwr(&to,&s,&table,&n,&st[1],&err);
	  if(err==0) break;
	}*/
      }

      if(qztp[logicqd]==FDCSD1){
	s=0;				// float
	table=realqd*bytes;
	n=channelnum(logicqd);
	st=&idcbst1[logicqd];              //idcbst1[]: temp var
	for(i=0;i<3;i++){
	  idcbwr(&to,&s,&table,&n,&st[1],&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=2;				// float
	table=realqd*bytes+n;
	st=&idcbst1[logicqd];              //idcbst1[]: temp var
	for(i=0;i<3;i++){
	  idcbwr(&to,&s,&table,&n,&st[1],&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

      }
}

void  moveqd(int computer,int to)
{
	unsigned  table,n;
	int s,err;
	int v;
	int   *st;
	int i;

	if(to>31||to<0) return;
	if(computer>=30) return;


	s=0;				// int
	table=computer*100+30000;
	n=2;
	v=1;
	for(i=0;i<3;i++){
	  idcbwr(&to,&s,&table,&n,&v,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}
}


int  channelnum(int qdha)
{
	int num;

	  if(qztp[qdha]==9) 		/*  模拟量前置机 1B 型  	*/
		num=a1b_num;		/*  模拟量 1B 型机测点的个数	*/
	  else if(qztp[qdha]==42) 	/*  模拟量前置机 4B 型  	*/
		num=a4b_num;            /*  模拟量 4B 型机测点的个数	*/
	  else if(qztp[qdha]==FDCSD1) 	/*  模拟量前置机 2B 型  	*/
		num=s2b_num;		/*  开关量 2B 型机测点的个数	*/
	  return(num);

}

int qdmap(int realqd)
{
	int log;

	log=realqd-glha*10;
	if(log>=0&&log<=10) return(log);
	else return(-1);
       /*	 {
	  printf("The Address Error!");
	  exit(0);
	  }*/
}

void xzbsend(int glha,int to)
{
	APS *app;
	float ff,xzbval[50];
	float *xzb;
	int number,i;
	unsigned  table,n;
	int s,err;
	int flag=8;

	s=0;				// int  flag
	table=0x1000*glha;
	n=2;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&flag,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	xzb=&xzbval[0];
	if(xzb_num>50) xzb_num=50;

	for (i=1;i<=xzb_num;i++) {		//xzb_num read from "small.dbf"
	    number=xzbseq[i];	     /*  第 i 点小指标在测点库中的顺序	*/
	    app=(APS *)psptr[number];	/* app=第 i 点指针	*/
//	    printf("xzb:n%d %Fp",number,app);
	    if(app->st>=0) {		/*  正常状态			*/
		ff=app->av;
	    }
	    else {
		ff=-9999.0;		/*  不正常的值			*/
	    }
	    *xzb++=ff;
	}

	s=1;				// float
	table=0x1000*glha+4;
	n=xzb_num*4;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&xzbval[0],&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}
}

void tbsend(int to)
{
	APS *app;
	float ff;
	float *tmp,hourtb[150];
	int number,i;
	unsigned  table,n;
	int s,err;
	int flag=6;


	s=0;				// int  flag
	table=0x1000*glha+0x300;
	n=2;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&flag,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	 tmp=&hourtb[0];
	for (i=0;i<totalpoints;i++) {		/* totalpoints 个测点	*/
		app=(APS *)psptr[i+1];		/* app=第 i 点指针	*/
		if(app->st>=0)			/*  状态正常		*/
		*tmp++=app->av;
	else
		*tmp++=-9999.0; 	/*  状态不正常,记录一个坏数据标记*/

	}

	s=1;				// float
	table=0x1000*glha+0x304;
	n=totalpoints*4;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&hourtb[0],&err);
	  if(err==0) break;
	  else while(timenum%5==0) break;
	}

}

void hissend(float hisav,int hisst,int to)
{
	int i;
	unsigned  table,n;
	int s,err;
	int flag=3;


	s=0;				// int  flag
	table=0x1000*glha+0x600;
	n=2;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&flag,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}


	s=1;				// float
	table=0x1000*glha+0x604;
	n=4;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&hisav,&err);
	  if(err==0) break;
	  else while(timenum%5==0) break;
	}

	s=0;				// float
	table=0x1000*glha+0x604+4;
	n=2;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&hisst,&err);
	  if(err==0) break;
	  else while(timenum%5==0) break;
	}
}

void yxsend(struct YX yx,int to)
{
	int number,i;
	unsigned  table,n;
	int s,err;
	int flag=5;

 /*struct YX {  		// 越限点的结构
	char pn[8];     // 测点序
	char time1[18]; // 越限起始时间. 95/07/20 08:52:45
	char time2[18]; // 越限终止时间. 95/07/20 08:55:20
	float max_val;  // 越限期间的最大值
	float min_val;  // 越限期间的最小值
};*/

	s=0;				// int  flag
	table=0x1000*glha+0x200;
	n=2;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&flag,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=3;				// char
	table=0x1000*glha+0x204;
	n=8;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&yx.pn,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=3;				// char
	table=0x1000*glha+0x204+8;
	n=18;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&yx.time1,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=3;				// char
	table=0x1000*glha+0x204+8+18;
	n=18;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&yx.time2,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=1;				// float
	table=0x1000*glha+0x204+8+18+18;
	n=1;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&yx.max_val,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

	s=1;				// float
	table=0x1000*glha+0x204+8+18+18+4;
	n=1;
	for(i=0;i<4;i++){
	  idcbwr(&to,&s,&table,&n,&yx.min_val,&err);
	  if(err==0) break;
	  else while((timenum%6)==0) break;

	}

}

⌨️ 快捷键说明

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