Fix unit tests

Fix compilation failures caused by lorawan api changes introduced by Class B support.
feature-lorawan-1-1
Unknown 2019-07-09 15:17:16 -04:00 committed by Antti Kauppila
parent 663c94e13d
commit 0cca8f0ed9
10 changed files with 160 additions and 70 deletions

View File

@ -363,7 +363,7 @@ TEST_F(Test_LoRaMac, on_radio_rx_done)
{
uint8_t buf[16];
memset(buf, 0, sizeof(buf));
object->on_radio_rx_done(buf, 16, 0, 0, my_cb);
object->on_radio_rx_done(buf, 16, 0, 0, 0, my_cb);
}
TEST_F(Test_LoRaMac, on_radio_tx_timeout)
@ -443,13 +443,13 @@ TEST_F(Test_LoRaMac, post_process_mcps_req)
//address != _params.dev_addr
payload[2] = 2;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
payload[2] = 0;
//mic failure
payload[13] = 2;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
payload[13] = 0;
@ -458,7 +458,7 @@ TEST_F(Test_LoRaMac, post_process_mcps_req)
LoRaMacCrypto_stub::int_table[0] = 4;
LoRaMacCrypto_stub::int_table[1] = 4;
// LoRaPHY_stub::uint16_value = 0;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
//process_mac_commands failure
@ -466,7 +466,7 @@ TEST_F(Test_LoRaMac, post_process_mcps_req)
LoRaMacCrypto_stub::int_table[0] = 0;
LoRaMacCrypto_stub::int_table[1] = 0;
payload[7] = 1;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
//FOpts_len != 0
@ -475,24 +475,24 @@ TEST_F(Test_LoRaMac, post_process_mcps_req)
LoRaMacCommand_stub::status_value = LORAWAN_STATUS_OK;
payload[0] = FRAME_TYPE_DATA_UNCONFIRMED_DOWN << 5;
object->on_radio_rx_done(payload, 13, 0, 0, my_cb);
object->on_radio_rx_done(payload, 13, 0, 0, 0, my_cb);
//_mac_commands.process_mac_commands fails
LoRaMacCommand_stub::status_value = LORAWAN_STATUS_DATARATE_INVALID;
object->on_radio_rx_done(payload, 13, 0, 0, my_cb);
object->on_radio_rx_done(payload, 13, 0, 0, 0, my_cb);
object->post_process_mcps_req();
payload[9] = 1;
LoRaMacCommand_stub::status_value = LORAWAN_STATUS_OK;
payload[0] = FRAME_TYPE_PROPRIETARY << 5;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
payload[9] = 0;
payload[5] = 1 << 5;
LoRaMacCommand_stub::status_value = LORAWAN_STATUS_OK;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
object->post_process_mcps_req();
LoRaPHY_stub::bool_counter = 0;
@ -524,25 +524,25 @@ TEST_F(Test_LoRaMac, handle_join_accept_frame)
LoRaMacCrypto_stub::int_table[1] = 4;
LoRaMacCrypto_stub::int_table[2] = 4;
LoRaMacCrypto_stub::int_table[3] = 4;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
LoRaMacCrypto_stub::int_table_idx_value = 0;
LoRaMacCrypto_stub::int_table[0] = 0;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
LoRaMacCrypto_stub::int_table_idx_value = 0;
LoRaMacCrypto_stub::int_table[1] = 0;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
//mic failure case
payload[13] = 17;
LoRaMacCrypto_stub::int_table_idx_value = 0;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
payload[13] = 0;
LoRaMacCrypto_stub::int_table_idx_value = 0;
LoRaMacCrypto_stub::int_table[2] = 0;
object->on_radio_rx_done(payload, 16, 0, 0, my_cb);
object->on_radio_rx_done(payload, 16, 0, 0, 0, my_cb);
}
TEST_F(Test_LoRaMac, post_process_mcps_ind)

View File

@ -81,16 +81,16 @@ TEST_F(Test_LoRaMacCommand, parse_mac_commands_to_repeat)
buf[0] = 2;
buf[1] = 16;
buf[2] = 32;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 3, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 3, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 3;
LoRaPHY_stub::uint8_value = 7;
LoRaPHY_stub::linkAdrNbBytesParsed = 5;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 4;
buf[1] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 5;
buf[1] = 2;
@ -98,11 +98,11 @@ TEST_F(Test_LoRaMacCommand, parse_mac_commands_to_repeat)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 6;
object->set_batterylevel_callback(my_cb);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 7;
buf[1] = 2;
@ -110,19 +110,19 @@ TEST_F(Test_LoRaMacCommand, parse_mac_commands_to_repeat)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 8;
buf[1] = 0;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 9;
buf[1] = 48;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 10;
buf[1] = 4;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
object->parse_mac_commands_to_repeat();
}
@ -146,7 +146,7 @@ TEST_F(Test_LoRaMacCommand, copy_repeat_commands_to_buffer)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
object->parse_mac_commands_to_repeat();
object->clear_command_buffer();
@ -178,7 +178,7 @@ TEST_F(Test_LoRaMacCommand, clear_sticky_mac_cmd)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->has_sticky_mac_cmd() == true);
@ -202,7 +202,7 @@ TEST_F(Test_LoRaMacCommand, has_sticky_mac_cmd)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->has_sticky_mac_cmd() == true);
}
@ -213,37 +213,37 @@ TEST_F(Test_LoRaMacCommand, process_mac_commands)
lora_mac_system_params_t params;
my_LoRaPHY phy;
uint8_t buf[20];
EXPECT_TRUE(object->process_mac_commands(NULL, 0, 0, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(NULL, 0, 0, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 2;
buf[1] = 16;
buf[2] = 32;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 3, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 3, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
buf[0] = 3;
LoRaPHY_stub::uint8_value = 7;
LoRaPHY_stub::linkAdrNbBytesParsed = 5;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_link_adr_ans function here
object->clear_command_buffer();
buf[0] = 3;
for (int i = 0; i < 64; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 4;
buf[1] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_duty_cycle_ans()
object->clear_command_buffer();
for (int i = 0; i < 128; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 5;
@ -252,27 +252,27 @@ TEST_F(Test_LoRaMacCommand, process_mac_commands)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_rx_param_setup_ans
object->clear_command_buffer();
LoRaPHY_stub::uint8_value = 7;
for (int i = 0; i < 64; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 5, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 6;
object->set_batterylevel_callback(my_cb);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//overflow add_dev_status_ans
object->clear_command_buffer();
for (int i = 0; i < 42; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 7;
@ -281,33 +281,33 @@ TEST_F(Test_LoRaMacCommand, process_mac_commands)
buf[3] = 2;
buf[4] = 2;
buf[5] = 2;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_new_channel_ans
object->clear_command_buffer();
LoRaPHY_stub::uint8_value = 7;
for (int i = 0; i < 64; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 6, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 8;
buf[1] = 0;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_rx_timing_setup_ans
object->clear_command_buffer();
LoRaPHY_stub::uint8_value = 7;
for (int i = 0; i < 128; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 9;
buf[1] = 48;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_tx_param_setup_ans
LoRaPHY_stub::bool_counter = 0;
@ -315,27 +315,27 @@ TEST_F(Test_LoRaMacCommand, process_mac_commands)
object->clear_command_buffer();
LoRaPHY_stub::uint8_value = 7;
for (int i = 0; i < 128; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
LoRaPHY_stub::bool_counter = 0;
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 2, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 10;
buf[1] = 4;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
//Overflow add_dl_channel_ans
object->clear_command_buffer();
for (int i = 0; i < 64; i++) {
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb) == LORAWAN_STATUS_OK);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_OK);
LoRaPHY_stub::bool_counter = 0;
}
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb) == LORAWAN_STATUS_LENGTH_ERROR);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 4, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_LENGTH_ERROR);
object->clear_command_buffer();
buf[0] = 80;
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb) == LORAWAN_STATUS_UNSUPPORTED);
EXPECT_TRUE(object->process_mac_commands(buf, 0, 1, 0, params, phy, my_cb, RX_SLOT_WIN_1) == LORAWAN_STATUS_UNSUPPORTED);
}
TEST_F(Test_LoRaMacCommand, add_link_check_req)

View File

@ -21,6 +21,7 @@ set(TEST_SUITE_NAME "lorawan_LoRaPHY")
# Source files
set(unittest-sources
../features/lorawan/lorastack/phy/LoRaPHY.cpp
../features/lorawan/LoRaRadio.cpp
)
# Add test specific include paths
@ -45,5 +46,6 @@ set(unittest-test-flags
-DMBED_CONF_LORA_NB_TRIALS=2
-DMBED_CONF_LORA_REJOIN_DEFAULT_MAX_TIME=3600
-DMBED_CONF_LORA_REJOIN_DEFAULT_MAX_COUNT=10
-DMBED_CONF_LORA_BEACON_PREAMBLE_LENGTH=7
)

View File

@ -42,6 +42,7 @@ set(unittest-test-sources
stubs/LoRaMacCommand_stub.cpp
stubs/LoRaPHYEU868_stub.cpp
stubs/Mutex_stub.cpp
stubs/mbed_rtc_time_stub.cpp
)
set(unittest-test-flags

View File

@ -54,6 +54,9 @@ set(unittest-test-flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMBED_CONF_LORA_REJOIN_TYPE1_SEND_PERIOD=3600")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMBED_CONF_LORA_REJOIN_TYPE1_SEND_PERIOD=3600")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMBED_CONF_LORA_CLASS_B_BEACONLESS_PERIOD=7200")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DMBED_CONF_LORA_CLASS_B_BEACONLESS_PERIOD=7200")

View File

@ -72,10 +72,12 @@ bool LoRaMacCommand::has_sticky_mac_cmd() const
}
lorawan_status_t LoRaMacCommand::process_mac_commands(const uint8_t *payload, uint8_t mac_index,
uint8_t commands_size, uint8_t snr,
lora_mac_system_params_t &mac_sys_params,
LoRaPHY &lora_phy,
mbed::Callback<void(loramac_mlme_confirm_t &)> confirm_handler)
uint8_t commands_size, uint8_t snr,
lora_mac_system_params_t &mac_sys_params,
LoRaPHY &lora_phy,
mbed::Callback<void(loramac_mlme_confirm_t &)> confirm_handler,
rx_slot_t rx_slot)
{
return LoRaMacCommand_stub::status_value;
}
@ -109,7 +111,7 @@ lorawan_status_t LoRaMacCommand::add_device_mode_indication(uint8_t classType)
return LoRaMacCommand_stub::status_value;
}
lorawan_status_t LoRaMacCommand::add_device_time_req(mbed::Callback<void(void)> notify)
lorawan_status_t LoRaMacCommand::add_device_time_req(mbed::Callback<void(lorawan_gps_time_t gps_time)> notify)
{
return LoRaMacCommand_stub::status_value;
}
@ -153,3 +155,8 @@ lorawan_status_t LoRaMacCommand::add_dl_channel_ans(uint8_t status)
{
return LoRaMacCommand_stub::status_value;
}
lorawan_status_t LoRaMacCommand::add_ping_slot_info_req(uint8_t periodicity)
{
return LoRaMacCommand_stub::status_value;
}

View File

@ -121,14 +121,14 @@ bool LoRaMac::message_integrity_check(const uint8_t *const payload,
}
void LoRaMac::extract_data_and_mac_commands(const uint8_t *payload,
uint16_t size,
uint8_t fopts_len,
uint32_t address,
uint32_t downlink_counter,
seq_counter_type_t cnt_type,
int16_t rssi,
int8_t snr,
Callback<void(loramac_mlme_confirm_t &)> confirm_handler)
uint16_t size,
uint8_t fopts_len,
uint32_t address,
uint32_t downlink_counter,
seq_counter_type_t cnt_type,
int16_t rssi,
int8_t snr,
Callback<void(loramac_mlme_confirm_t &)> confirm_handler)
{
if (LoRaMac_stub::mlme_conf_ptr) {
confirm_handler(*LoRaMac_stub::mlme_conf_ptr);
@ -169,7 +169,7 @@ void LoRaMac::on_radio_tx_done(lorawan_time_t timestamp)
}
void LoRaMac::on_radio_rx_done(const uint8_t *const payload, uint16_t size,
int16_t rssi, int8_t snr,
int16_t rssi, int8_t snr, uint32_t rx_timestamp,
Callback<void(loramac_mlme_confirm_t &)> confirm_handler)
{
if (LoRaMac_stub::mlme_conf_ptr) {
@ -341,16 +341,17 @@ device_class_t LoRaMac::get_device_class() const
return LoRaMac_stub::dev_class_value;
}
void LoRaMac::set_device_class(const device_class_t &device_class,
mbed::Callback<void(void)>rx2_would_be_closure_handler)
lorawan_status_t LoRaMac::set_device_class(const device_class_t &device_class,
mbed::Callback<void(void)>rx2_would_be_closure_handler)
{
return LoRaMac_stub::status_value;
}
void LoRaMac::setup_link_check_request()
{
}
lorawan_status_t LoRaMac::setup_device_time_request(mbed::Callback<void(void)> notify)
lorawan_status_t LoRaMac::setup_device_time_request(mbed::Callback<void(lorawan_gps_time_t gps_time)> notify)
{
return LoRaMac_stub::status_value;
}
@ -506,3 +507,34 @@ lorawan_status_t LoRaMac::rejoin(join_req_type_t rejoin_type, bool is_forced, ui
{
return LoRaMac_stub::status_value;
}
lorawan_gps_time_t LoRaMac::get_gps_time(void)
{
return _lora_time.get_gps_time();
}
void LoRaMac::set_gps_time(lorawan_gps_time_t gps_time)
{
_lora_time.set_gps_time(gps_time);
}
lorawan_status_t LoRaMac::add_ping_slot_info_req()
{
return LoRaMac_stub::status_value;
}
lorawan_status_t LoRaMac::enable_beacon_acquisition(mbed::Callback<void(loramac_beacon_status_t,
const loramac_beacon_t *)>beacon_event_cb)
{
return LoRaMac_stub::status_value;
}
lorawan_status_t LoRaMac::get_last_rx_beacon(loramac_beacon_t &beacon)
{
return LoRaMac_stub::status_value;
}
lorawan_status_t LoRaMac::set_ping_slot_info(uint8_t periodicity)
{
return LoRaMac_stub::status_value;
}

View File

@ -305,3 +305,36 @@ void LoRaWANStack::process_idle_state(lorawan_status_t &op_status)
void LoRaWANStack::process_uninitialized_state(lorawan_status_t &op_status)
{
}
void LoRaWANStack::remove_device_time_request(void)
{
}
lorawan_gps_time_t LoRaWANStack::get_current_gps_time()
{
return _loramac.get_gps_time();
}
void LoRaWANStack::set_current_gps_time(lorawan_gps_time_t gps_time)
{
_loramac.set_gps_time(gps_time);
}
lorawan_status_t LoRaWANStack::add_ping_slot_info_request(uint8_t periodicity)
{
return LORAWAN_STATUS_OK;
}
void LoRaWANStack::remove_ping_slot_info_request()
{
}
lorawan_status_t LoRaWANStack::enable_beacon_acquisition()
{
return LORAWAN_STATUS_OK;
}
lorawan_status_t LoRaWANStack::get_last_rx_beacon(loramac_beacon_t &beacon)
{
return LORAWAN_STATUS_NO_BEACON_FOUND;
}

View File

@ -22,6 +22,7 @@
lorawan_time_t LoRaWANTimer_stub::time_value = 0;
bool LoRaWANTimer_stub::call_cb_immediately = false;
lorawan_gps_time_t LoRaWANTimer_stub::gps_time = 0;
LoRaWANTimeHandler::LoRaWANTimeHandler()
: _queue(NULL)
@ -62,3 +63,13 @@ void LoRaWANTimeHandler::stop(timer_event_t &obj)
{
obj.timer_id = 0;
}
void LoRaWANTimeHandler::set_gps_time(lorawan_gps_time_t gps_time)
{
LoRaWANTimer_stub::gps_time = gps_time;
}
lorawan_gps_time_t LoRaWANTimeHandler::get_gps_time(void)
{
return LoRaWANTimer_stub::gps_time;
}

View File

@ -20,4 +20,5 @@
namespace LoRaWANTimer_stub {
extern lorawan_time_t time_value;
extern bool call_cb_immediately;
extern lorawan_gps_time_t gps_time;
}