mirror of https://github.com/ARMmbed/mbed-os.git
Add set_device_class API to change active device class
This API can be used to runtime change device class. Please note that only class A and C are supported at the moment. Trying to set class B will return LORAWAN_STATUS_UNSUPPORTED. Fix set_device_class documentation fix documentationpull/6411/head
parent
4aba3434f4
commit
a26fca8bf5
|
@ -331,6 +331,18 @@ public:
|
||||||
* callbacks.
|
* callbacks.
|
||||||
*/
|
*/
|
||||||
virtual lorawan_status_t add_app_callbacks(lorawan_app_callbacks_t *callbacks) = 0;
|
virtual lorawan_status_t add_app_callbacks(lorawan_app_callbacks_t *callbacks) = 0;
|
||||||
|
|
||||||
|
/** Change device class
|
||||||
|
*
|
||||||
|
* Change current device class.
|
||||||
|
*
|
||||||
|
* @param device_class The device class
|
||||||
|
*
|
||||||
|
* @return LORAWAN_STATUS_OK on success,
|
||||||
|
* LORAWAN_STATUS_UNSUPPORTED is requested class is not supported,
|
||||||
|
* or other negative error code if request failed.
|
||||||
|
*/
|
||||||
|
virtual lorawan_status_t set_device_class(const device_class_t device_class) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* LORAWAN_BASE_H_ */
|
#endif /* LORAWAN_BASE_H_ */
|
||||||
|
|
|
@ -124,3 +124,8 @@ lorawan_status_t LoRaWANInterface::add_app_callbacks(lorawan_app_callbacks_t *ca
|
||||||
{
|
{
|
||||||
return stk_obj().set_lora_callbacks(callbacks);
|
return stk_obj().set_lora_callbacks(callbacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lorawan_status_t LoRaWANInterface::set_device_class(const device_class_t device_class)
|
||||||
|
{
|
||||||
|
return stk_obj().set_device_class(device_class);
|
||||||
|
}
|
||||||
|
|
|
@ -428,6 +428,18 @@ public:
|
||||||
* callbacks.
|
* callbacks.
|
||||||
*/
|
*/
|
||||||
virtual lorawan_status_t add_app_callbacks(lorawan_app_callbacks_t *callbacks);
|
virtual lorawan_status_t add_app_callbacks(lorawan_app_callbacks_t *callbacks);
|
||||||
|
|
||||||
|
/** Change device class
|
||||||
|
*
|
||||||
|
* Change current device class.
|
||||||
|
*
|
||||||
|
* @param device_class The device class
|
||||||
|
*
|
||||||
|
* @return LORAWAN_STATUS_OK on success,
|
||||||
|
* LORAWAN_STATUS_UNSUPPORTED is requested class is not supported,
|
||||||
|
* or other negative error code if request failed.
|
||||||
|
*/
|
||||||
|
virtual lorawan_status_t set_device_class(const device_class_t device_class);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* LORAWANINTERFACE_H_ */
|
#endif /* LORAWANINTERFACE_H_ */
|
||||||
|
|
|
@ -1093,6 +1093,14 @@ lorawan_status_t LoRaWANStack::shutdown()
|
||||||
return lora_state_machine(DEVICE_STATE_SHUTDOWN);
|
return lora_state_machine(DEVICE_STATE_SHUTDOWN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lorawan_status_t LoRaWANStack::set_device_class(const device_class_t device_class)
|
||||||
|
{
|
||||||
|
loramac_mib_req_confirm_t mib_req;
|
||||||
|
mib_req.type = MIB_DEVICE_CLASS;
|
||||||
|
mib_req.param.dev_class = device_class;
|
||||||
|
return mib_set_request(&mib_req);
|
||||||
|
}
|
||||||
|
|
||||||
lorawan_status_t LoRaWANStack::lora_state_machine(device_states_t new_state)
|
lorawan_status_t LoRaWANStack::lora_state_machine(device_states_t new_state)
|
||||||
{
|
{
|
||||||
loramac_mib_req_confirm_t mib_req;
|
loramac_mib_req_confirm_t mib_req;
|
||||||
|
|
|
@ -360,6 +360,18 @@ public:
|
||||||
*/
|
*/
|
||||||
lorawan_status_t shutdown();
|
lorawan_status_t shutdown();
|
||||||
|
|
||||||
|
/** Change device class
|
||||||
|
*
|
||||||
|
* Change current device class.
|
||||||
|
*
|
||||||
|
* @param device_class The device class
|
||||||
|
*
|
||||||
|
* @return LORAWAN_STATUS_OK on success,
|
||||||
|
* LORAWAN_STATUS_UNSUPPORTED is requested class is not supported,
|
||||||
|
* or other negative error code if request failed.
|
||||||
|
*/
|
||||||
|
lorawan_status_t set_device_class(const device_class_t device_class);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
LoRaWANStack();
|
LoRaWANStack();
|
||||||
~LoRaWANStack();
|
~LoRaWANStack();
|
||||||
|
|
|
@ -59,6 +59,7 @@ lorawan_status_t LoRaMacMib::set_request(loramac_mib_req_confirm_t *mibSet,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLASS_B: {
|
case CLASS_B: {
|
||||||
|
status = LORAWAN_STATUS_UNSUPPORTED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLASS_C: {
|
case CLASS_C: {
|
||||||
|
|
Loading…
Reference in New Issue