This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Readind RSSI in beacon_evt_handler shows wrong value

Hello i read RSSI in beacon_evt_handler() hrs_scanner project:

printf("RSSI: %d\n\n\n",p_evt->rcv_adv_packet.adv_data.rssi);

but he show me a wrong value of RSSI: 4539

how i can fix this??

Best Regards

Nelson

Parents
  • I use hrs_scanner example with s130 softdevice, i read a wrong rssi value in:

    static void beacon_evt_handler(ble_scan_beacon_evt_t * p_evt) { uint32_t err_code;

    if (p_evt->rcv_adv_packet.adv_data.manuf_id==0x59){
    		printf("********************************************************");
    		printf("App company id: %x\r\n",p_evt->rcv_adv_packet.adv_data.manuf_id);
    		unsigned short major=p_evt->rcv_adv_packet.adv_data.major;
    		major=(major>>8) | (major<<8);
    		unsigned short minor=p_evt->rcv_adv_packet.adv_data.minor;
    		minor=(minor>>8) | (minor<<8);
    		printf("Major: %d\r\n",major);
    		printf("Minor: %d\r\n",minor);
    	        int8_t rssi=p_evt->rcv_adv_packet.adv_data.rssi;
    		printf("RSSI: %d\n",rssi);//WRONG VALUE
    		for (int i=0;i<sizeof(p_evt->rcv_adv_packet.adv_data.uuid.uuid128);i++){
    				printf("%02X",p_evt->rcv_adv_packet.adv_data.uuid.uuid128[i]);
    		}
    		printf("\n\n");
    
    	
    }
    
    
    if((p_evt->rcv_adv_packet.adv_data.major    == SEARCHED_MAJOR)
     &&(p_evt->rcv_adv_packet.adv_data.minor    == SEARCHED_MINOR)
     &&(p_evt->rcv_adv_packet.adv_data.manuf_id == APP_COMPANY_IDENTIFIER))
    {
        err_code = bsp_indication_set(BSP_INDICATE_ALERT_3);
        APP_ERROR_CHECK(err_code);
    }else{
    		///printf("beacon no detectado\r\n");
    	}
    

    }

    Serial monitor output:

    App company id: 59 Major: 3584 Minor: 35409 RSSI: -69 ------------->WRONG VALUE DONT CHANGE 0112233445566778899AABBCCDDEEFF0

Reply
  • I use hrs_scanner example with s130 softdevice, i read a wrong rssi value in:

    static void beacon_evt_handler(ble_scan_beacon_evt_t * p_evt) { uint32_t err_code;

    if (p_evt->rcv_adv_packet.adv_data.manuf_id==0x59){
    		printf("********************************************************");
    		printf("App company id: %x\r\n",p_evt->rcv_adv_packet.adv_data.manuf_id);
    		unsigned short major=p_evt->rcv_adv_packet.adv_data.major;
    		major=(major>>8) | (major<<8);
    		unsigned short minor=p_evt->rcv_adv_packet.adv_data.minor;
    		minor=(minor>>8) | (minor<<8);
    		printf("Major: %d\r\n",major);
    		printf("Minor: %d\r\n",minor);
    	        int8_t rssi=p_evt->rcv_adv_packet.adv_data.rssi;
    		printf("RSSI: %d\n",rssi);//WRONG VALUE
    		for (int i=0;i<sizeof(p_evt->rcv_adv_packet.adv_data.uuid.uuid128);i++){
    				printf("%02X",p_evt->rcv_adv_packet.adv_data.uuid.uuid128[i]);
    		}
    		printf("\n\n");
    
    	
    }
    
    
    if((p_evt->rcv_adv_packet.adv_data.major    == SEARCHED_MAJOR)
     &&(p_evt->rcv_adv_packet.adv_data.minor    == SEARCHED_MINOR)
     &&(p_evt->rcv_adv_packet.adv_data.manuf_id == APP_COMPANY_IDENTIFIER))
    {
        err_code = bsp_indication_set(BSP_INDICATE_ALERT_3);
        APP_ERROR_CHECK(err_code);
    }else{
    		///printf("beacon no detectado\r\n");
    	}
    

    }

    Serial monitor output:

    App company id: 59 Major: 3584 Minor: 35409 RSSI: -69 ------------->WRONG VALUE DONT CHANGE 0112233445566778899AABBCCDDEEFF0

Children
No Data
Related