Open tibbis opened 2 years ago
That command is currently not implemented. Duplicate of #825, I think.
By adding the following function under case LORAWAN_COMPLIANCE_CMD_LINK, the compliance test TP_A_EU868_ED_MAC_BV_019 passes. However it is then only used during test-mode mode and never in normal mode.
static void evLinkCheckReqCommand() {
uint8_t cmd = MCMD_LinkCheckReq;
if (LMIC.pendMacPiggyback) {
// put in pendMacData
if (LMIC.pendMacLen < sizeof(LMIC.pendMacData)) {
LMIC.pendMacData[LMIC.pendMacLen++] = cmd;
} else {
return;
}
} else {
// put in pendTxData
if (LMIC.pendMacLen < sizeof(LMIC.pendTxData)) {
LMIC.pendTxData[LMIC.pendMacLen++] = cmd;
} else {
return;
}
}
fsmEvalDeferred();
}
call it in:
case LORAWAN_COMPLIANCE_CMD_LINK: {
evLinkCheckReqCommand(); // we are required to initiate a Link
break;
}
Describe the bug When I runt the LoRaWAN LCTT pre-certification tool the test TP_A_EU868_ED_MAC_BV_019 is supposed to trigger a LinkCheckReq command from the end device(DUT). The test fails due to "MAC command not received because FPort field is not set to 0 and FOpts field is empty".
Is this supported or does it need to be implemented in the lmic_compliance.c code?
Environment
LMIC library 4.1.1, LoRaWAN 1.0.2 version
Expected behavior
Should send an uplink LinkCheckReq Mac command from the DUT.