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

📄 debug.c

📁 ucos在NEC平台下的移植
💻 C
📖 第 1 页 / 共 2 页
字号:
		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 + -