📄 sypbprotocol.cpp
字号:
break;
case JCCTL_VOLTAGE: /*电压*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
mTreadBuf->DataBuf[count++] = 0x0B;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*A相电压*/
mTreadBuf->DataBuf[count-9] = 0x01;
break;
case 0x02: /*B相电压*/
mTreadBuf->DataBuf[count-9] = 0x02;
break;
case 0x03: /*C相电压*/
mTreadBuf->DataBuf[count-9] = 0x04;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_ELECTRICITY: /*电流*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
mTreadBuf->DataBuf[count++] = 0x0B;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*A相电流*/
mTreadBuf->DataBuf[count-9] = 0x08;
break;
case 0x02: /*B相电流*/
mTreadBuf->DataBuf[count-9] = 0x10;
break;
case 0x03: /*C相电流*/
mTreadBuf->DataBuf[count-9] = 0x20;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_POWER: /*有功功率*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
mTreadBuf->DataBuf[count++] = 0x0A;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*总有功功率*/
mTreadBuf->DataBuf[count-9] = 0x01;
break;
case 0x02: /*A相有功功率*/
mTreadBuf->DataBuf[count-9] = 0x02;
break;
case 0x03: /*B相有功功率*/
mTreadBuf->DataBuf[count-9] = 0x04;
break;
case 0x04: /*C相有功功率*/
mTreadBuf->DataBuf[count-9] = 0x08;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_NPOWER: /*无功功率*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
mTreadBuf->DataBuf[count++] = 0x0A;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*总无功功率*/
mTreadBuf->DataBuf[count-9] = 0x10;
break;
case 0x02: /*A相无功功率*/
mTreadBuf->DataBuf[count-9] = 0x20;
break;
case 0x03: /*B相无功功率*/
mTreadBuf->DataBuf[count-9] = 0x40;
break;
case 0x04: /*C相无功功率*/
mTreadBuf->DataBuf[count-9] = 0x80;
break;
}/*end of switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_POWERFACTOR: /*功率因素*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
mTreadBuf->DataBuf[count++] = 0x0D;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*总功率因素*/
mTreadBuf->DataBuf[count-9] = 0x01;
break;
case 0x02: /*A相功率因数*/
mTreadBuf->DataBuf[count-9] = 0x02;
break;
case 0x03: /*B相功率因数*/
mTreadBuf->DataBuf[count-9] = 0x04;
break;
case 0x04: /*C相功率因数*/
mTreadBuf->DataBuf[count-9] = 0x08;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_PS: /*视在功率和频率*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
count++;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 5 );
count+=5;
mTreadBuf->DataBuf[count++] = 0x03;
mTreadBuf->DataBuf[count++] = 0x18;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*总视在功率*/
mTreadBuf->DataBuf[count-9] = 0x20;
mTreadBuf->DataBuf[count-8] = 0x13;
break;
case 0x02: /*A相视在功率*/
mTreadBuf->DataBuf[count-9] = 0x40;
mTreadBuf->DataBuf[count-8] = 0x13;
break;
case 0x03: /*B相视在功率*/
mTreadBuf->DataBuf[count-9] = 0x80;
mTreadBuf->DataBuf[count-8] = 0x13;
break;
case 0x04: /*C相视在功率*/
mTreadBuf->DataBuf[count-9] = 0x01;
mTreadBuf->DataBuf[count-8] = 0x14;
break;
case 0x05: /*频率*/
mTreadBuf->DataBuf[count-9] = 0x10;
mTreadBuf->DataBuf[count-8] = 0x13;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_PROGRAMIMF: /*编程信息*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*编程信息*/
mTreadBuf->DataBuf[count++] = 0x0C; //AFN
mTreadBuf->DataBuf[count++] = 0x60; //SEQ
if(!(pQueueEle->devAddr[5]))
mTreadBuf->DataBuf[count++] = 0;
else
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
mTreadBuf->DataBuf[count++] = 0x04; //DT
mTreadBuf->DataBuf[count++] = 0x03;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_OPENPHASE: /*断相数据*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*断相数据*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
mTreadBuf->DataBuf[count++] = 0x40;
mTreadBuf->DataBuf[count++] = 0x03;
memcpy( &mTreadBuf->DataBuf[count], &pQueueEle->strData[0], 3 );
count+=3;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_MECONDITION: /*表运行状态*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*表运行状态*/
mTreadBuf->DataBuf[count++] = 0x0C; //AFN
mTreadBuf->DataBuf[count++] = 0x60; //SEQ
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
mTreadBuf->DataBuf[count++] = 0x04; //DT
mTreadBuf->DataBuf[count++] = 0x03;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_HCTIME: /*需参数*/
break;
case JCCTL_LOSTU: /*失压数据*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*失压数据*/
break;
}
break;
case JCCTL_POWERCUT: /*来停电数据*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*来停电数据*/
break;
}
break;
case JCCTL_UTMOST: /*日统计值*/
mTreadBuf->DataBuf[count++] = 0x0D;
mTreadBuf->DataBuf[count++] = 0x60;
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
count++;
count++;
memcpy( &mTreadBuf->DataBuf[count], &pQueueEle->strData[0], 3 );
count+=3;
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*电压日限值及发生时间*/
mTreadBuf->DataBuf[count-5] = 0x04;
mTreadBuf->DataBuf[count-4] = 0x03;
break;
case 0x02: /*电流日限值及发生时间*/
mTreadBuf->DataBuf[count-5] = 0x20;
mTreadBuf->DataBuf[count-4] = 0x12;
break;
case 0x03: /*功率时间*/
mTreadBuf->DataBuf[count-5] = 0x02;
mTreadBuf->DataBuf[count-4] = 0x13;
break;
case 0x04: /*有功时间*/
mTreadBuf->DataBuf[count-5] = 0x40;
mTreadBuf->DataBuf[count-4] = 0x12;
break;
case 0x05: /*无功功率日限值及发生时间*/
mTreadBuf->DataBuf[count-5] = 0x80;
mTreadBuf->DataBuf[count-4] = 0x12;
break;
}/*end of (switch(pQueueEle->cnCtl[2]))*/
break;
case JCCTL_CURRENT: /*实时数据*/
mTreadBuf->DataBuf[count++] = 0x0C; //AFN
mTreadBuf->DataBuf[count++] = 0x60; //SEQ
if(!(pQueueEle->devAddr[5]))
{
mTreadBuf->DataBuf[count++] = 0;
}
else
{
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) % 8));
}
mTreadBuf->DataBuf[count++] = (int)pow(2,((pQueueEle->devAddr[5]+7) / 8-1));
mTreadBuf->DataBuf[count++] = 0x01; //DT
mTreadBuf->DataBuf[count++] = 0x10;
break;
case JCCTL_SETPARA: /*设置终端参数*/
switch(pQueueEle->cnCtl[2])
{
case 0x01: /*主站IP地址和端口*/
mTreadBuf->DataBuf[count++] = 0x04; //AFN
mTreadBuf->DataBuf[count++] = 0x60; //SEQ
mTreadBuf->DataBuf[count++] = 0x00; //pn
mTreadBuf->DataBuf[count++] = 0x00;
mTreadBuf->DataBuf[count++] = 0x04; //DT
mTreadBuf->DataBuf[count++] = 0x00;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, pQueueEle->nDataLenth );
count+=pQueueEle->nDataLenth;
mTreadBuf->DataBuf[count++] = 0x00; //PW
mTreadBuf->DataBuf[count++] = 0x00;
break;
case 0x02: /*终端在线通信方式*/
mTreadBuf->DataBuf[count++] = 0x04; //AFN
mTreadBuf->DataBuf[count++] = 0x60; //SEQ
mTreadBuf->DataBuf[count++] = 0x00; //pn
mTreadBuf->DataBuf[count++] = 0x00;
mTreadBuf->DataBuf[count++] = 0x01; //DT
mTreadBuf->DataBuf[count++] = 0x0B;
memcpy( &mTreadBuf->DataBuf[count], pQueueEle->strData, 71 ); //终端在线数据51字节
count+=71;
mTreadBuf->DataBuf[count++] = 0x00; //PW
mTreadBuf->DataBuf[count++] = 0x00;
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -