📄 sendpack.c
字号:
for(i=0;i<ThisNode.MEMBERNUM;i++)
{
SendData[11+i*2] =ThisNode.MEMBERS[i].ID[0];
SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
}
MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
MACFlush();
#endif
break;
case MSG_CAPTAIN_SENDMEMBERDATATOTAG:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
//上报的数据中不含RSSI信息
SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
for(i=0;i<ThisNode.MEMBERNUM;i++)
{
SendData[11+i*2] =ThisNode.MEMBERS[i].ID[0];
SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
}
MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
MACFlush();
break;
case MSG_CAPTAIN_CALLINGREQ:
SendData[1] = ThisNode.MEMBERS[ThisNode.CALLINGIDX].ID[0];
SendData[2] = ThisNode.MEMBERS[ThisNode.CALLINGIDX].ID[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+3;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
SendData[11] = ThisNode.CALLINGPARAM;
SendData[12] = NewChannelIdx;
MACPutArray(SendData, 13);
MACFlush();
break;
case MSG_CAPTAIN_DISBANDGROUP:
SendData[1] = 0xff;
SendData[2] = 0xff;
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
MACPutArray(SendData, 11);
MACFlush();
break;
case MSG_CAPTAIN_JOINACCEPT:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
MACPutArray(SendData, 11);
MACFlush();
break;
case MSG_CAPTAIN_UNITEREQUEST:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
MACPutArray(SendData, 11);
MACFlush();
break;
case MSG_CAPTAIN_UNITEACCEPT:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
MACPutArray(SendData, 11);
MACFlush();
break;
case MSG_CAPTAIN_JOINWITHDATA:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
for(i=0;i<ThisNode.MEMBERNUM;i++)
{
SendData[11+i*2] =ThisNode.MEMBERS[i].ID[0];
SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];
}
MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
MACFlush();
break;
case MSG_CAPTAIN_UNITESUCCESS:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 4+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
MACPutArray(SendData, 11);
MACFlush();
break;
case MSG_CAPTAIN_CHANGECAPTAIN:
SendData[1] = 0xff;
SendData[2] = 0xff;
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 7+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
SendData[11] = submacCurrentFrame.sub_source_addr.v[0];
SendData[12] = submacCurrentFrame.sub_source_addr.v[1];
SendData[13] = NewGroupChannel;
MACPutArray(SendData, 14);
MACFlush();
break;
case MSG_CAPTAIN_REPLACECAPTAIN:
SendData[1] = 0xff;
SendData[2] = 0xff;
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 7+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
rssi=ThisNode.RSSI; rssi+=50; if(rssi>128) rssi=0; rssi/=3;
SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
SendData[8] = GroupChannelIdx;
SendData[9] = ThisNode.MEMBERNUM;
SendData[10] = MAX_GROUPMENBER_NUM;
SendData[11] = submacCurrentFrame.sub_source_addr.v[0];
SendData[12] = submacCurrentFrame.sub_source_addr.v[1];
SendData[13] = GroupChannelIdx;
MACPutArray(SendData, 14);
MACFlush();
break;
//////////////////////////////////////////////////////////////////////////
case MSG_TAG_JOINREUEST:
SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
SendData[3] = macInfo.longAddr.v[0];
SendData[4] = macInfo.longAddr.v[1];
SendData[5] = 0+1;//len;
for(i=0;i<=5;i++)cs+=SendData[i];
SendData[6] = cs;//checksum;
MACPutArray(SendData, 7);
MACFlush();
break;
default:
MACFlush();
}
// Mark it as ready to transmit
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -