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

📄 103.c

📁 标准103规约的说明和在mc68332开发环境下的详细程序
💻 C
📖 第 1 页 / 共 4 页
字号:
				else
				{
					cot =41;
				}
				send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
				return;
			case 0x0c:
				//遥控分头
				apack =buff103;
				pt =rbuf+9;
				*apack++ =(*pt)-1;//条目号
				pt =rbuf+14;
				*apack++ =*pt;//值

				if(Set103_controlft( buff103,commaddress) == true)
				{
					cot =40;
				}
				else
				{
					cot =41;
				}
				send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
				return;
			case 0x0e:
				//遥控压板
				apack =buff103;
				pt =rbuf+9;
				*apack++ =(*pt)-1;//条目号
				pt =rbuf+14;
				*apack++ =*pt;//值

				if(Set103_controlyb( buff103,commaddress) == true)
				{
					cot =40;
				}
				else
				{
					cot =41;
				}
				send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
				return;
			default:
			break;	
			}
		}
		
	case 251:
		//写条目停止
		//处理该报文
		//发送返回报文
		switch(ginh)
		{
//系统类
		i = 7;
		case 0x00:
		case 0x01:
			break;
//定值类
		case 0x02:
		case 0x03:
		apack =buff103;
		pt =rbuf+11;
		*apack++ =ngd;//数目
		while(ngd > 0,ngd--)
		{
			*apack++ =*pt++;//数据类型
			j =*pt;//数据宽度

			*apack++ =*pt++;//数据宽度
			*apack++ =*pt++;//数目
			while(j > 0,j--)
			{
				*apack++ =*pt++;
			}
			pt++;
			pt++;
			pt++;
				
		}
		cot =40;
		send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
		return;
		//事件类
		case 0x04:
		case 0x05:
			break;
//遥测类
		case 0x06:
		case 0x07:
			break;
//摇信类
		case 0x08:
		case 0x09:
			break;
//电量类(要处理)*************************
		case 0x0a:
			return;
//遥控开关类(要处理)*************************
		case 0x0b:
		apack =buff103;
		pt =rbuf+9;
		*apack++ =(*pt)-1;//条目号
		pt =rbuf+14;
		*apack++ =*pt;//值
//
			cot =40;
			send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
			return;
//遥控分头类(要处理)*************************
		case 0x0c:
			apack =buff103;
			pt =rbuf+9;
			*apack++ =(*pt)-1;//条目号
			pt =rbuf+14;
			*apack++ =*pt;//值
//
			cot =40;
			send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
			return;

//遥调类(要处理)*************************
		case 0x0d:
			return;
//遥控压板类(要处理)*************************
		case 0x0e:
			apack =buff103;
			pt =rbuf+9;
			*apack++ =(*pt)-1;//条目号
			pt =rbuf+14;
			*apack++ =*pt;//值
			cot =40;
			send_write(sbuf,rbuf,id,cot,commaddress,inf,rii);
			return;
		
//调试
		case 0x0f:
			break;
		default:
		break;	
		}
	}
}	
////
void Lan_edit20(BYTE *rbuf,WORD wLen,BYTE *sbuf,WORD id,BYTE *buff103)
{
	//一般命令
	BYTE commaddress;
	BYTE *pt;
	pt=rbuf+3;
	commaddress=*pt++;//取公共地址
	send05(sbuf,id,commaddress,buff103);
	return;
}	
////
void Lan_edit21(BYTE *rbuf,WORD wLen,BYTE *sbuf,WORD id,BYTE *buff103)
{
	//通用分类命令
	BYTE cot;//传送原因
	BYTE commaddress;
	BYTE fun;//功能类型
	BYTE inf;//信息序号
	BYTE rii;//返回表示
	BYTE ngd;//通用分类集数目
	BYTE ginh;
	BYTE ginl;//通用分类标识数目
	BYTE kod;//类型描述
	BYTE *pt;
	BYTE *apack;
	BYTE quhao;
	WORD i;
	apack=sbuf;
	pt=rbuf+3;
	commaddress =*pt++;
	fun =*pt++;
	inf =*pt++;
	rii =*pt++;
	ngd =*pt++;
	ginh =*pt++;
	ginl =*pt++;
	switch(inf)
	{
	case 0xf0:
		//读组标题
		//	
		return;
	case 0xf1:
		//读一个组的全部条目的值或属性
		kod =*pt++;
		switch(kod)
		{
		case 0x0a:
			//读一个组的全部条目的描述
			switch(ginh)
			{
			case 0x00:
			case 0x01:
				//系统类
				return;
			case 0x02:
				//定值类
				Get103_setmiaoshu( buff103,commaddress); 
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x03:
				//定值类
				Get103_setmiaoshu( buff103,commaddress); 
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x04:
				//事件类(动作及状态事件)
				Get103_operative_miaoshu( buff103,commaddress); 
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x05:
				//事件类(告警)
				Get103_alarm_miaoshu( buff103,commaddress); 
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x06:
				//遥测类(保护遥测)
				Get103_ycmiaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;

			case 0x07:
				//遥测类
				Get103_yuandongmiaoshu( buff103,commaddress);//远动遥测
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
				//摇信类
				Get103_yxmiaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x09:
				//摇信类
				Get103_yxmiaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
				//
			case 0x0a:
				//电量类
				Get103_pulse_miaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x0b:
				//遥控开关类
				Get103_ykmiaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
				//
			case 0x0c:
				//遥控分头类
				return;
			case 0x0d:
				//遥调类
				return;
			case 0x0e:
				//遥控压板类
				Get103_rykmiaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x0f:
				//调试及操作消息类
				return;
			case 0x10:
				//录波的通道号的描述
				Get103_rchannel_miaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x11:
				//录波的带变位的遥信状态的描述
				Get103_rchange_miaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x12:
				//小电流接地的描述
				Get103_rcurrent_miaoshu( buff103,commaddress);
				send_miaoshu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			}
			return;
		case 0x06:
			//读一个组的全部条目的因子
			switch(ginh)
			{
			case 0x00:
			case 0x01:
			case 0x02:
			case 0x03:
			case 0x04:
			case 0x05:
				return;
			case 0x06:
				//遥测类(保护遥测)
				Get103_ycyinzi( buff103,commaddress);
				send_yinzi(ginh,buff103,sbuf,id,commaddress,rii);
				return;

			case 0x07:
				//遥测类
				Get103_yuandongyinzi( buff103,commaddress);//远动遥测	//WAAA 
				send_yinzi(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
			case 0x09:
			case 0x0a:
			case 0x0b:
			case 0x0c:
			case 0x0d:
			case 0x0e:
			case 0x0f:
				return;
			}
			return;
		case 0x01:
			//读一个组的全部条目的值
			switch(ginh)
			{
			case 0x00:
				//系统类
				switch(ginl)
				{
				case 0x03:
					if (get103_runquhao( buff103,commaddress) == true)
					{
						cot = 42;
					}
					else
					{
						cot = 43;
					}
					send_runquhao(ginh,buff103,sbuf,id,commaddress,rii,cot);
					return;
				default:
					break;
				}
				return;                                          
			case 0x01:
				//系统类
				return;
			case 0x02:
			case 0x03:
				//定值类
				apack =quhaobuf+id*2;
				quhao =*apack;
				if (quhao == 0x33)
				{
					*apack++ =0x00;
					quhao =*apack++;
					Get103_setdata( buff103,commaddress,quhao);
					send_data(ginh,buff103,sbuf,id,commaddress,rii);
				}
				else
				{
					send_error(ginh,buff103,sbuf,id,commaddress,rii);
				}
				return;
			
			case 0x04:
				//事件类(动作及状态事件)
				return;
			case 0x05:
				//事件类(告警)
				return;
			case 0x06:
				//遥测类(保护遥测)
				Get103_ycdata( buff103,commaddress);
				send_data(ginh,buff103,sbuf,id,commaddress,rii);
				return;
				//
			case 0x07:
				//遥测类(测控)
				Get103_yuandongdata( buff103,commaddress);
				send_data(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
				//摇信类
				return;
			case 0x09:
				//摇信类
				return;
			case 0x0a:
				Get103_pulsedata( buff103,commaddress);
				send_data(ginh,buff103,sbuf,id,commaddress,rii);
				//电量类
				return;
			case 0x0b:
				//遥控开关类
				return;
			case 0x0c:
				//遥控分头类
				Get103_ykftdata( buff103,commaddress);
				send_data(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x0d:
				//遥调类
				return;
			case 0x0e:
				//遥控压板类
				Get103_rykdata( buff103,commaddress);
				send_yxkdata(ginh,buff103,sbuf,id,commaddress,rii);
				return;
				//
			case 0x0f:
				//调试及操作消息类
				return;
			}
			case 0x12:
				//小电流接地的数据
				Get103_rcurrent_data( buff103,commaddress);
			return;
		case 0x03:
			//读一个组的全部条目的量程
			switch(ginh)
			{
			case 0x00:
				//系统类
				return;
			case 0x01:
				//系统类
				return;
			case 0x02:
				//定值类
				Get103_setliangcheng( buff103,commaddress);
				send_liangcheng(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x03:
				//定值类
				Get103_setliangcheng( buff103,commaddress);
				send_liangcheng(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x04:
				//事件类(动作及状态事件)
				return;
			case 0x05:
				//事件类(告警)
				return;
			case 0x06:
				//遥测类(保护遥测)
				Get103_ycliangcheng( buff103,commaddress);
				send_liangcheng(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x07:
				//遥测类
				Get103_ycliangcheng( buff103,commaddress);
				send_liangcheng(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
				//摇信类
				return;
			case 0x09:
				//摇信类
				return;
			case 0x0a:
				//电量类
				return;
			case 0x0b:
				//遥控开关类
				return;
			case 0x0c:
				//遥控分头类
				return;
			case 0x0d:
				//遥调类
				return;
			case 0x0e:
				//遥控压板类
				return;
			case 0x0f:
				//调试及操作消息类
				return;
			}
			return;
			//
		case 0x05:
			//读一个组的全部条目的精度
			switch(ginh)
			{
			case 0x00:
				//系统类
				return;
			case 0x01:
				//系统类
				return;
			case 0x02:
				//定值类
				Get103_setjingdu( buff103,commaddress);
				send_jingdu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x03:
				//定值类
				Get103_setjingdu( buff103,commaddress);
				send_jingdu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x04:
				//事件类(动作及状态事件)
				return;
			case 0x05:
				//事件类(告警)
				return;
			case 0x06:
				//遥测类(保护遥测)
				send_jingdu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x07:
				//遥测类(动作及状态事件)
				send_jingdu(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
				//摇信类
				return;
			case 0x09:
				//摇信类
				return;
			case 0x0a:
				//电量类
				return;
			case 0x0b:
				//遥控开关类
				return;
			case 0x0c:
				//遥控分头类
				return;
			case 0x0d:
				//遥调类
				return;
			case 0x0e:
				//遥控压板类
				return;
			case 0x0f:
				//调试及操作消息类
				return;
			}
			return;
		case 0x09:
			//读一个组的全部条目的量纲
			switch(ginh)
			{
			case 0x00:
				//系统类
				return;
			case 0x01:
				//系统类
				return;
			case 0x02:
				//定值类
				Get103_setlianggang( buff103,commaddress);
				send_lianggang(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x03:
				//定值类
				Get103_setlianggang( buff103,commaddress);
				send_lianggang(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x04:
				//事件类(动作及状态事件)
				return;
			case 0x05:
				//事件类(告警)
				return;
			case 0x06:
				//遥测类(保护遥测)
				Get103_yclianggang( buff103,commaddress);
				send_lianggang(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x07:
				//遥测类(动作及状态事件)
				Get103_yclianggang( buff103,commaddress);
				send_lianggang(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x08:
				//摇信类
				return;
			case 0x09:
				//摇信类
				return;
			case 0x0a:
				//电量类
				Get103_pulse_lianggang( buff103,commaddress);
				send_lianggang(ginh,buff103,sbuf,id,commaddress,rii);
				return;
			case 0x0b:
				//遥控开关类
				return;
			case 0x0c:
				//遥控分头类
				return;
			case 0x0d:
				//遥调类
				return;
			case 0x0e:
				//遥控压板类

⌨️ 快捷键说明

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