📄 debug.c
字号:
conPrintROMString("N");
}
ptr++;
conPCRLF();
conPrintROMString("Beacon Offset: ");
for (i=0;i<3;i++){
conPrintUINT8(*ptr);
conPrintROMString(" ");
ptr++;
}
#ifndef LRWPAN_ZIGBEE_BEACON_COMPLY
conPrintROMString(", Magic Num: ");
for (i=0;i<4;i++){
conPrintUINT8(*ptr);
conPrintROMString(" ");
ptr++;
}
#endif
conPCRLF();
}
//ptr is assumed to pointing to the network header
BYTE *dbgPrintNwkPacket (BYTE *ptr){
BYTE fcflsb;
BYTE i;
SADDR saddr;
fcflsb = *ptr; ptr++;
conPrintROMString("NWK Header:\n");
conPrintROMString(" Type: ");
if (NWK_IS_DATA(fcflsb)) {
conPrintROMString("DATA");
}else if (NWK_IS_CMD(fcflsb)) {
conPrintROMString("CMD");
}else {
conPrintROMString("RSV");
}
conPrintROMString(", Protocol: ");
i = NWK_GET_PROTOCOL(fcflsb);
conPrintUINT8(i);
conPrintROMString(", RouteDiscovery: ");
switch(NWK_GET_ROUTE(fcflsb)) {
//case NWK_SUPPRESS_ROUTE_DISCOVER:
case SUPPRESS_ROUTE_DISCOVERY:
conPrintROMString("SUPPRESS");
break;
//case NWK_ENABLE_ROUTE_DISCOVER:
case ENABLE_ROUTE_DISCOVERY:
conPrintROMString("ENABLE");
break;
//case NWK_FORCE_ROUTE_DISCOVER:
case FORCE_ROUTE_DISCOVERY:
conPrintROMString("FORCE");
break;
default:
conPrintROMString("RSV");
break;
}//end switch()
//get MSF FCF
i = *ptr; ptr++;
conPrintROMString(", Security: ");
PRINTBIT(NWK_GET_ROUTE(i));
conPCRLF();
//DST Addr
conPrintROMString("DstAddr: ");
saddr = *ptr;
ptr++;
saddr += (((UINT16)*ptr) << 8);
ptr++;
conPrintUINT16(saddr);
//SRC Addr
conPrintROMString(", SrcAddr: ");
saddr = *ptr;
ptr++;
saddr += (((UINT16)*ptr) << 8);
ptr++;
conPrintUINT16(saddr);
//radius
conPrintROMString(", Radius: ");
conPrintUINT8(*ptr);
ptr++;
//sequence
conPrintROMString(", Sequence#: ");
conPrintUINT8(*ptr);
ptr++;
conPCRLF();
if (NWK_IS_DATA(fcflsb)) {
return(ptr);
}else {
return(NULL);
}
}
//ptr is assumed to pointing to the APS header
BYTE *dbgPrintApsPacket (BYTE *ptr){
BYTE i;
BYTE fcf;
UINT16 profile;
i = *ptr; ptr++;
fcf = i;
conPrintROMString("APS Header:\n");
conPrintROMString(" Type: ");
switch(APS_GET_FRM_TYPE(i)) {
case APS_FRM_TYPE_DATA: conPrintROMString("DAT");break;
case APS_FRM_TYPE_CMD: conPrintROMString("CMD");break;
case APS_FRM_TYPE_ACK:conPrintROMString("ACK");break;
default: conPrintROMString("RSV");break;
}
conPrintROMString(", DeliveryMode: ");
switch(APS_GET_FRM_DLVRMODE(i)) {
case APS_FRM_DLVRMODE_NORMAL: conPrintROMString("NORMAL");break;
case APS_FRM_DLVRMODE_INDIRECT: conPrintROMString("INDIRECT");break;
case APS_FRM_DLVRMODE_BCAST: conPrintROMString("BCAST");break;
default: conPrintROMString("RSV");break;
}
conPrintROMString(", IndirectSubMode: ");
PRINTBIT(APS_GET_FRM_INDIRECT_SUBMODE(i));
conPrintROMString(", Security: ");
PRINTBIT(APS_GET_FRM_SECURITY(i));
conPrintROMString(", AckReq: ");
PRINTBIT(APS_GET_FRM_ACKREQ(i));
conPCRLF();
//DST EP
conPrintROMString(" DstEP: ");
if ((APS_GET_FRM_DLVRMODE(fcf) == APS_FRM_DLVRMODE_INDIRECT) &&
(APS_GET_FRM_INDIRECT_SUBMODE(fcf))) {
//no dest EP
conPrintROMString("NONE");
}else {
conPrintUINT8(*ptr);ptr++;
}
conPrintROMString(", Cluster: ");
if (APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) {
conPrintUINT8(*ptr);ptr++;
}else {
conPrintROMString("NONE");
}
//Profile
if ((APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) ||
(APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_ACK)
){
profile = *ptr; ptr++;
profile += (((UINT16) *ptr) << 8);
ptr++;
conPrintROMString(", Profile: ");
conPrintUINT16(profile);
}
//SRC EP
conPrintROMString(", SrcEP: ");
if ((APS_GET_FRM_DLVRMODE(fcf) == APS_FRM_DLVRMODE_INDIRECT) &&
(!APS_GET_FRM_INDIRECT_SUBMODE(fcf))) {
//no src EP
conPrintROMString("NONE");
}else {
conPrintUINT8(*ptr);ptr++;
}
conPCRLF();
if (APS_GET_FRM_TYPE(fcf) == APS_FRM_TYPE_DATA) return(ptr);
else return(NULL);
}
//ptr is assumed to pointing to the AF header
//we only understand how to print MSG types
void dbgPrintAfPacket (BYTE *ptr){
BYTE i;
BYTE fcf;
BYTE len;
conPrintROMString("AF Header: ");
i = *ptr; ptr++;
fcf = i;
conPrintROMString(" TransCnt: ");
conPrintUINT8(AF_GET_TRANS_COUNT(fcf));
conPrintROMString(" FrmType: ");
if (AF_GET_FRM_TYPE(fcf) == AF_FRM_TYPE_MSG) {
conPrintROMString("MSG, Trans#: ");
//only one transaction in MSG frame, get transaction umber
conPrintUINT8(*ptr);ptr++;
//only one transaction in MSG frame, first byte is length
conPrintROMString(", Length: ");
len = *ptr;
conPrintUINT8(len);ptr++;
conPCRLF();
conPrintROMString("Data: ");
i=0;
while(len){
conPrintUINT8(*ptr);ptr++;
conPrintROMString(" ");
i++;
if (i == 16) {
i = 0;
conPCRLF();
}
len--;
}
} else if (AF_GET_FRM_TYPE(fcf) == AF_FRM_TYPE_KVP){
conPrintROMString("KVP");
} else {
conPrintROMString("RSV");
}
conPCRLF();
}
#ifdef LRWPAN_FFD
void dbgPrintNeighborTable(void){
//NAYBORENTRY *nt_ptr;
//BYTE j, cnt;
//
//nt_ptr = &mac_nbr_tbl[0];
//cnt = 0;
//for (j=0;j<NTENTRIES;j++,nt_ptr++) {
// if (nt_ptr->flags.bits.used) cnt++;
//}
//conPrintROMString("Number of Neighbors: ");
//conPrintUINT8(cnt);
// conPCRLF();
//cnt = 1;
//nt_ptr = &mac_nbr_tbl[0];
// for (j=0;j<NTENTRIES;j++,nt_ptr++) {
// if (nt_ptr->flags.bits.used) {
// conPrintUINT8(cnt);cnt++;
// conPrintROMString(" LADDR: ");
// conPrintLADDR_bytes(&mac_addr_tbl[nt_ptr->map_index].laddr[0]);
// conPrintROMString(" SADDR: ");
// conPrintUINT16(mac_addr_tbl[nt_ptr->map_index].saddr);
// conPrintROMString(" CapInfo: ");
// conPrintUINT8(nt_ptr->capinfo);
// conPrintROMString(" LQI: ");
// conPrintUINT8(nt_ptr->flags.bits.lqi);
// conPCRLF();
// }
//}
////print the address table
// cnt = 0;
//for (j=0;j<LRWPAN_MAX_ADDRESS_MAP_ENTRIES;j++) {
// if (mac_addr_tbl[j].saddr != LRWPAN_BCAST_SADDR) cnt++;
//}
// conPrintROMString("Number of Address Map Entries: ");
//conPrintUINT8(cnt);
// conPCRLF();
//cnt = 1;
//for (j=0;j<LRWPAN_MAX_ADDRESS_MAP_ENTRIES;j++) {
// if (mac_addr_tbl[j].saddr == LRWPAN_BCAST_SADDR)continue;
// conPrintROMString(" LADDR: ");
// conPrintLADDR_bytes(&mac_addr_tbl[j].laddr[0]);
// conPrintROMString(" SADDR: ");
// conPrintUINT16(mac_addr_tbl[j].saddr);
// conPCRLF();
//}
UINT8 counter;
pCurrentNeighborRecord = neighborTable;
for(counter=0;counter<NEIGHBOR_TABLE_ENTRIES;counter++,pCurrentNeighborRecord++)
{
currentNeighborRecord=*pCurrentNeighborRecord;
if(currentNeighborRecord.deviceInfo.bits.bInUse==1)
counter++;
else
continue;
}
conPrintROMString("Number of Neighbors: ");
conPrintUINT8(counter);
conPCRLF();
pCurrentNeighborRecord = neighborTable;
for(counter=0;counter<NEIGHBOR_TABLE_ENTRIES;counter++,pCurrentNeighborRecord++)
{
currentNeighborRecord=*pCurrentNeighborRecord;
if(currentNeighborRecord.deviceInfo.bits.bInUse==1)
{
conPrintUINT8(counter);
counter++;
conPrintROMString(" LADDR: ");
// conPrintLADDR_bytes(&mac_addr_tbl[nt_ptr->map_index].laddr[0]);
conPrintLADDR_bytes(currentNeighborRecord.longAddress);
conPrintROMString(" SADDR: ");
conPrintUINT16(currentNeighborRecord.shortAddress);
conPrintROMString(" CapInfo->deviceType: ");
conPrintUINT8(currentNeighborRecord.deviceInfo.bits.deviceType);
conPrintROMString(" LQI: ");
conPrintUINT8(currentNeighborRecord.deviceInfo.bits.lqi);
conPCRLF();
}
else
continue;
}
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -