Skip to content

Commit d3327c3

Browse files
Kimmo VaisanenHasnain Virk
authored andcommitted
Lora: All API methods should check if stack has been initialized
1 parent 52cb119 commit d3327c3

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

features/lorawan/LoRaWANStack.cpp

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ lorawan_status_t LoRaWANStack::initialize_mac_layer(EventQueue *queue)
127127

128128
lorawan_status_t LoRaWANStack::set_lora_callbacks(const lorawan_app_callbacks_t *callbacks)
129129
{
130+
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
131+
return LORAWAN_STATUS_NOT_INITIALIZED;
132+
}
133+
130134
if (!callbacks || !callbacks->events) {
131135
return LORAWAN_STATUS_PARAMETER_INVALID;
132136
}
@@ -148,7 +152,6 @@ lorawan_status_t LoRaWANStack::set_lora_callbacks(const lorawan_app_callbacks_t
148152
lorawan_status_t LoRaWANStack::connect()
149153
{
150154
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
151-
tr_error("Stack not initialized!");
152155
return LORAWAN_STATUS_NOT_INITIALIZED;
153156
}
154157

@@ -164,7 +167,6 @@ lorawan_status_t LoRaWANStack::connect()
164167
lorawan_status_t LoRaWANStack::connect(const lorawan_connect_t &connect)
165168
{
166169
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
167-
tr_error("Stack not initialized!");
168170
return LORAWAN_STATUS_NOT_INITIALIZED;
169171
}
170172

@@ -186,7 +188,6 @@ lorawan_status_t LoRaWANStack::connect(const lorawan_connect_t &connect)
186188
lorawan_status_t LoRaWANStack::add_channels(const lorawan_channelplan_t &channel_plan)
187189
{
188190
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
189-
tr_error("Stack not initialized!");
190191
return LORAWAN_STATUS_NOT_INITIALIZED;
191192
}
192193

@@ -196,7 +197,6 @@ lorawan_status_t LoRaWANStack::add_channels(const lorawan_channelplan_t &channel
196197
lorawan_status_t LoRaWANStack::remove_a_channel(uint8_t channel_id)
197198
{
198199
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
199-
tr_error("Stack not initialized!");
200200
return LORAWAN_STATUS_NOT_INITIALIZED;
201201
}
202202

@@ -206,7 +206,6 @@ lorawan_status_t LoRaWANStack::remove_a_channel(uint8_t channel_id)
206206
lorawan_status_t LoRaWANStack::drop_channel_list()
207207
{
208208
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
209-
tr_error("Stack not initialized!");
210209
return LORAWAN_STATUS_NOT_INITIALIZED;
211210
}
212211

@@ -216,7 +215,6 @@ lorawan_status_t LoRaWANStack::drop_channel_list()
216215
lorawan_status_t LoRaWANStack::get_enabled_channels(lorawan_channelplan_t& channel_plan)
217216
{
218217
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
219-
tr_error("Stack not initialized!");
220218
return LORAWAN_STATUS_NOT_INITIALIZED;
221219
}
222220

@@ -225,6 +223,10 @@ lorawan_status_t LoRaWANStack::get_enabled_channels(lorawan_channelplan_t& chann
225223

226224
lorawan_status_t LoRaWANStack::set_confirmed_msg_retry(uint8_t count)
227225
{
226+
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
227+
return LORAWAN_STATUS_NOT_INITIALIZED;
228+
}
229+
228230
if (count >= MAX_CONFIRMED_MSG_RETRIES) {
229231
return LORAWAN_STATUS_PARAMETER_INVALID;
230232
}
@@ -236,9 +238,7 @@ lorawan_status_t LoRaWANStack::set_confirmed_msg_retry(uint8_t count)
236238

237239
lorawan_status_t LoRaWANStack::set_channel_data_rate(uint8_t data_rate)
238240
{
239-
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state)
240-
{
241-
tr_error("Stack not initialized!");
241+
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
242242
return LORAWAN_STATUS_NOT_INITIALIZED;
243243
}
244244

@@ -248,11 +248,10 @@ lorawan_status_t LoRaWANStack::set_channel_data_rate(uint8_t data_rate)
248248

249249
lorawan_status_t LoRaWANStack::enable_adaptive_datarate(bool adr_enabled)
250250
{
251-
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED)
252-
{
253-
tr_error("Stack not initialized!");
251+
if (_device_current_state == DEVICE_STATE_NOT_INITIALIZED) {
254252
return LORAWAN_STATUS_NOT_INITIALIZED;
255253
}
254+
256255
_loramac.enable_adaptive_datarate(adr_enabled);
257256
return LORAWAN_STATUS_OK;
258257
}
@@ -410,6 +409,10 @@ int16_t LoRaWANStack::handle_rx(uint8_t* data, uint16_t length, uint8_t& port, i
410409

411410
lorawan_status_t LoRaWANStack::set_link_check_request()
412411
{
412+
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
413+
return LORAWAN_STATUS_NOT_INITIALIZED;
414+
}
415+
413416
_link_check_requested = true;
414417
if (!_callbacks.link_check_resp) {
415418
tr_error("Must assign a callback function for link check request. ");
@@ -427,11 +430,19 @@ void LoRaWANStack::remove_link_check_request()
427430

428431
lorawan_status_t LoRaWANStack::shutdown()
429432
{
433+
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
434+
return LORAWAN_STATUS_NOT_INITIALIZED;
435+
}
436+
430437
return state_controller(DEVICE_STATE_SHUTDOWN);
431438
}
432439

433440
lorawan_status_t LoRaWANStack::set_device_class(const device_class_t& device_class)
434441
{
442+
if (DEVICE_STATE_NOT_INITIALIZED == _device_current_state) {
443+
return LORAWAN_STATUS_NOT_INITIALIZED;
444+
}
445+
435446
if (device_class == CLASS_B) {
436447
return LORAWAN_STATUS_UNSUPPORTED;
437448
}

0 commit comments

Comments
 (0)