📄 tansrule.h
字号:
#include "define_W77E058.h"
extern unsigned char read_I2C(unsigned char);
//*****************************************************************************************************************//
// 把接收好的上位机数据转化为查询或者控制下位机的指令
//***************************************************************************************************************
void TranstoMode()
{
unsigned char idata command,i,content0[12];
EA=0;
for(i=0;i<12;i++)content0[i]=rxdbuf1[i];
EA=1;
ADR2=read_I2C(0xf2);
ADR1=read_I2C(0xf0);
if(content0[2]!=ADR1&&content0[2]!=0x00) return;
if(content0[3]!=ADR2&&content0[3]==0x00) return;
i=content0[1]+1;
if(content0[i]!=crc(content0)) return;
content0[i+1]=0x55;
command=content0[4];
switch(command)
{
case 0x0f:
content0[2]=0x02;//开关灯模块
content0[3]=0x01;
content0[6]=crc(content0);
Serial0_Send(content0);
//ClrRXD(content0);
//Disdata(27);Disdata(27);Disdata(1);Disdata(1);Disdata(1);delayms(240);
break;
case 0x0b:
content0[2]=0x02;//开关灯模块的时钟设置
content0[3]=0x01;//
content0[8]=crc(content0);
Serial0_Send(content0);
// ClrRXD(content0);
// Disdata(27);Disdata(27);Disdata(2);Disdata(2);Disdata(2);delayms(240);
break;//开关量模块
case 0x0c:
content0[2]=0x04;content0[3]=0x01;//用于节电器时间设置
content0[9]=crc(content0);
Serial0_Send(content0);
// ClrRXD(content0);
// Disdata(27);Disdata(27);Disdata(3);Disdata(3);Disdata(3);delayms(240);
break;//节电器模块设置指令
/*case 0x2d:
txdbuf0[2]=0x04;//节电器输出电压与状态(含故障查询)、//节电器模块
//else txdbuf0[2]=0x01;//输入电压与支路电流的查询_____//模拟量模块采块
txdbuf0[3]=0x01;
txdbuf0[6]=crc(txdbuf0);
Serial0_Send(txdbuf0);
ClrRXD(txdbuf0); break; */
case 0x0d:
content0[2]=0x01;//输入电压与支路电流的查询_____//模拟量模块采块
content0[3]=0x01;
content0[6]=crc(content0);
Serial0_Send(content0);
// ClrRXD(content0);
// Disdata(27);Disdata(27);Disdata(4);Disdata(4);Disdata(4);delayms(240);
break;
/*case 0x00:
Disdata(0);Disdata(0);Disdata(0);Disdata(1);Disdata(5);delayms(800);break;/*/
default: Disdata(27);Disdata(27);Disdata(27);Disdata(27);Disdata(27);delayms(240);//while(CheckError);delayms(20);while(!CheckError);//显示三三三三三
}
}
//*****************************************************************************************************************//
// 把接收好的下位机数据传送给上位机
//***************************************************************************************************************
void TranstoPC()
{
unsigned char idata i,content1[12];
for(i=0;i<12;i++)content1[i]=rxdbuf0[i]; // ClrRXD(rxdbuf0); //command=txdbuf1[4];
if(content1[0]!=0xfd) return ;
//ADR1=read_I2C(0xf0);//读区域号
// ADR2=read_I2C(0xf2);//读分机号
content1[2]=read_I2C(0xf0);
content1[3]=read_I2C(0xf2);
i=content1[1];
content1[i+1]=crc(content1);
content1[i+2]=0xfc;
Serial1_Send(content1);
Serial0_Send(content1);//
//ClrRXD(content1); //主机手动控制开关灯及节电器状态控制数据
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -