Radio API: added values/objects for TSCH constants
This commit is contained in:
parent
cad068d5e8
commit
4583fff094
@ -862,6 +862,20 @@ get_value(radio_param_t param, radio_value_t *value)
|
||||
case RADIO_CONST_TXPOWER_MAX:
|
||||
*value = OUTPUT_POWER_MAX;
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_CONST_PHY_OVERHEAD:
|
||||
*value = (radio_value_t)3; /* 1 len byte, 2 bytes CRC */
|
||||
case RADIO_CONST_BYTE_AIR_TIME:
|
||||
*value = (radio_value_t)32; /* 250kbps data rate. One byte = 32us.*/
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_CONST_DELAY_BEFORE_TX:
|
||||
*value = (radio_value_t)CC2538_DELAY_BEFORE_TX;
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_CONST_DELAY_BEFORE_RX:
|
||||
*value = (radio_value_t)CC2538_DELAY_BEFORE_RX;
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_CONST_DELAY_BEFORE_DETECT:
|
||||
*value = (radio_value_t)CC2538_DELAY_BEFORE_DETECT;
|
||||
return RADIO_RESULT_OK;
|
||||
default:
|
||||
return RADIO_RESULT_NOT_SUPPORTED;
|
||||
}
|
||||
@ -957,6 +971,14 @@ get_object(radio_param_t param, void *dest, size_t size)
|
||||
return RADIO_RESULT_OK;
|
||||
}
|
||||
|
||||
if(param == RADIO_CONST_TSCH_TIMING) {
|
||||
if(size != sizeof(uint16_t *) || !dest) {
|
||||
return RADIO_RESULT_INVALID_VALUE;
|
||||
}
|
||||
*(uint16_t **)dest = tsch_timeslot_timing_us_10000;
|
||||
return RADIO_RESULT_OK;
|
||||
}
|
||||
|
||||
return RADIO_RESULT_NOT_SUPPORTED;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -1180,6 +1180,34 @@ get_value(radio_param_t param, radio_value_t *value)
|
||||
*value = (radio_value_t)CC1200_RF_CFG.max_txpower;
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
case RADIO_CONST_PHY_OVERHEAD:
|
||||
#if CC1200_802154G
|
||||
#if CC1200_802154G_CRC16
|
||||
*value = (radio_value_t)4; /* 2 bytes PHR, 2 bytes CRC */
|
||||
#else
|
||||
*value = (radio_value_t)6; /* 2 bytes PHR, 4 bytes CRC */
|
||||
#endif
|
||||
#else
|
||||
*value = (radio_value_t)3; /* 1 len byte, 2 bytes CRC */
|
||||
#endif
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
case RADIO_CONST_BYTE_AIR_TIME:
|
||||
*value = (radio_value_t)8*1000*1000 / CC1200_RF_CFG.bitrate;
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
case RADIO_CONST_DELAY_BEFORE_TX:
|
||||
*value = (radio_value_t)CC1200_RF_CFG.delay_before_tx;
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
case RADIO_CONST_DELAY_BEFORE_RX:
|
||||
*value = (radio_value_t)CC1200_RF_CFG.delay_before_rx;
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
case RADIO_CONST_DELAY_BEFORE_DETECT:
|
||||
*value = (radio_value_t)CC1200_RF_CFG.delay_before_detect;
|
||||
return RADIO_RESULT_OK;
|
||||
|
||||
default:
|
||||
|
||||
return RADIO_RESULT_NOT_SUPPORTED;
|
||||
@ -1282,6 +1310,13 @@ set_value(radio_param_t param, radio_value_t value)
|
||||
static radio_result_t
|
||||
get_object(radio_param_t param, void *dest, size_t size)
|
||||
{
|
||||
if(param == RADIO_CONST_TSCH_TIMING) {
|
||||
if(size != sizeof(uint16_t *) || !dest) {
|
||||
return RADIO_RESULT_INVALID_VALUE;
|
||||
}
|
||||
*(uint16_t **)dest = CC1200_RF_CFG.tsch_timing;
|
||||
return RADIO_RESULT_OK;
|
||||
}
|
||||
|
||||
return RADIO_RESULT_NOT_SUPPORTED;
|
||||
|
||||
|
@ -183,7 +183,14 @@ enum {
|
||||
/* The minimum transmission power in dBm. */
|
||||
RADIO_CONST_TXPOWER_MIN,
|
||||
/* The maximum transmission power in dBm. */
|
||||
RADIO_CONST_TXPOWER_MAX
|
||||
RADIO_CONST_TXPOWER_MAX,
|
||||
|
||||
RADIO_CONST_TSCH_TIMING,
|
||||
RADIO_CONST_PHY_OVERHEAD,
|
||||
RADIO_CONST_BYTE_AIR_TIME,
|
||||
RADIO_CONST_DELAY_BEFORE_TX,
|
||||
RADIO_CONST_DELAY_BEFORE_RX,
|
||||
RADIO_CONST_DELAY_BEFORE_DETECT,
|
||||
};
|
||||
|
||||
/* Radio power modes */
|
||||
|
Loading…
Reference in New Issue
Block a user