Skip to content

Commit

Permalink
Fix ABP activiation procedure
Browse files Browse the repository at this point in the history
  • Loading branch information
facchinm committed Jan 29, 2018
1 parent bf7dcef commit ed493ce
Show file tree
Hide file tree
Showing 8 changed files with 114 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" console="false" env-hash="848516111187429693" id="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="Ac6 SW4 STM32 MCU Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" console="false" env-hash="-1061497626167655012" id="fr.ac6.mcu.ide.build.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="Ac6 SW4 STM32 MCU Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This is an B-L072Z-LRWAN1 board with a single STM32L072CZYx chip
#
# Generated by System Workbench for STM32
# Take care that such file, as generated, may be overridden without any early notice. Please have a look to debug launch configuration setup(s)

source [find interface/stlink.cfg]

set WORKAREASIZE 0x5000

transport select "hla_swd"

set CHIPNAME STM32L072CZYx

# Enable debug when in low power modes
set ENABLE_LOW_POWER 1

# Stop Watchdog counters when halt
set STOP_WATCHDOG 1

# STlink Debug clock frequency
set CLOCK_FREQ 4000

# use hardware reset, connect under reset
# connect_assert_srst needed if low power mode application running (WFI...)
reset_config srst_only srst_nogate connect_assert_srst
set CONNECT_UNDER_RESET 1

source [find target/stm32l0x.cfg]
2 changes: 1 addition & 1 deletion Projects/Multi/Applications/LoRa/AT_Slave/inc/at.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ typedef enum eATEerror
#define AT_JN1DL "+JN1DL"
#define AT_JN2DL "+JN2DL"
#define AT_NJM "+MODE"
#define AT_NWKID "+NWKID"
#define AT_NWKID "+IDNWK"
#define AT_FCU "+FCU"
#define AT_FCD "+FCD"
#define AT_CLASS "+CLASS"
Expand Down
2 changes: 2 additions & 0 deletions Projects/Multi/Applications/LoRa/AT_Slave/inc/lora.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ Maintainer: Miguel Luis, Gregory Cristian and Wael Guibene
uint8_t DevEui[8]; /*< Device EUI */
uint8_t AppEui[8]; /*< Application EUI */
uint8_t AppKey[16]; /*< Application Key */
uint32_t NetworkID; /*< Network ID */
uint32_t DevAddr; /*< Device Address */
uint8_t NwkSKey[16]; /*< Network Session Key */
uint8_t AppSKey[16]; /*< Application Session Key */
int16_t Rssi; /*< Rssi of the received packet */
Expand Down
2 changes: 1 addition & 1 deletion Projects/Multi/Applications/LoRa/AT_Slave/inc/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ extern "C" {
#define TEST_VERSION (uint32_t) 0x00000000 /*1 lsb is always 0 in releases */
#define LRWAN_VERSION (uint32_t) 0x00001120 /*3 next hex is i_cube release*/
#define VERSION (uint32_t) (LORA_MAC_VERSION | LRWAN_VERSION | TEST_VERSION)
#define AT_VERSION_STRING "1.1.2"
#define AT_VERSION_STRING "1.1.3"
#define AT_DEVICE_STRING "ARD-078"

/* Exported types ------------------------------------------------------------*/
Expand Down
123 changes: 36 additions & 87 deletions Projects/Multi/Applications/LoRa/AT_Slave/src/at.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,29 +210,34 @@ ATEerror_t at_AppEUI_set(const char *param)

ATEerror_t at_DevAddr_set(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;
uint32_t DevAddr;
sscanf_uint32_as_hhx(param, &DevAddr);

mib.Type = MIB_DEV_ADDR;
if (sscanf_uint32_as_hhx(param, &mib.Param.DevAddr) != 4)
{
return AT_PARAM_ERROR;
}
status = LoRaMacMibSetRequestConfirm(&mib);
CHECK_STATUS(status);
return AT_OK;
lora_config_devaddr_set(DevAddr);
return AT_OK;
}

ATEerror_t at_DevAddr_get(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;

mib.Type = MIB_DEV_ADDR;
status = LoRaMacMibGetRequestConfirm(&mib);
CHECK_STATUS(status);
AT_PRINTF("+OK=");
print_uint32_as_02x(mib.Param.DevAddr);
print_uint32_as_02x(lora_config_devaddr_get());
return AT_OK;
}

ATEerror_t at_NetworkID_get(const char *param)
{
AT_PRINTF("+OK=");
print_uint32_as_02x(lora_config_networkid_get());
return AT_OK;
}

ATEerror_t at_NetworkID_set(const char *param)
{
uint32_t NetworkID;
sscanf_uint32_as_hhx(param, &NetworkID);

lora_config_networkid_set(NetworkID);
return AT_OK;
}

Expand Down Expand Up @@ -280,67 +285,41 @@ ATEerror_t at_Band_set(const char *param)

ATEerror_t at_NwkSKey_get(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;

mib.Type = MIB_NWK_SKEY;
status = LoRaMacMibGetRequestConfirm(&mib);
CHECK_STATUS(status);
AT_PRINTF("+OK=");
print_16_02x(mib.Param.NwkSKey);

print_16_02x(lora_config_nwkskey_get());
return AT_OK;
}

ATEerror_t at_NwkSKey_set(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;
uint8_t NwkSKey[16];

mib.Type = MIB_NWK_SKEY;

if (sscanf_16_hhx(param, NwkSKey) != 16)
uint8_t NwkSkey[16];
int ret = sscanf_16_hhx(param, NwkSkey);
if (ret != 16)
{
return AT_PARAM_ERROR;
}

mib.Param.NwkSKey = NwkSKey;
status = LoRaMacMibSetRequestConfirm(&mib);
CHECK_STATUS(status);

lora_config_nwkskey_set(NwkSkey);
return AT_OK;
}

ATEerror_t at_AppSKey_get(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;

mib.Type = MIB_APP_SKEY;
status = LoRaMacMibGetRequestConfirm(&mib);
CHECK_STATUS(status);
AT_PRINTF("+OK=");
print_16_02x(mib.Param.AppSKey);

print_16_02x(lora_config_appskey_get());
return AT_OK;
}

ATEerror_t at_AppSKey_set(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;
uint8_t AppSKey[16];

mib.Type = MIB_APP_SKEY;
if (sscanf_16_hhx(param, AppSKey) != 16)
int ret = sscanf_16_hhx(param, AppSKey);
if (ret != 16)
{
return AT_PARAM_ERROR;
}
mib.Param.AppSKey = AppSKey;
status = LoRaMacMibSetRequestConfirm(&mib);
CHECK_STATUS(status);

lora_config_appskey_set(AppSKey);
return AT_OK;
}

Expand Down Expand Up @@ -720,36 +699,6 @@ ATEerror_t at_NetworkJoinMode_set(const char *param)
return AT_OK;
}

ATEerror_t at_NetworkID_get(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;

mib.Type = MIB_NET_ID;
status = LoRaMacMibGetRequestConfirm(&mib);
CHECK_STATUS(status);
AT_PRINTF("+OK=");
print_uint32_as_02x(mib.Param.NetID);

return AT_OK;
}

ATEerror_t at_NetworkID_set(const char *param)
{
MibRequestConfirm_t mib;
LoRaMacStatus_t status;

mib.Type = MIB_NET_ID;
if (sscanf_uint32_as_hhx(param, &mib.Param.NetID) != 4)
{
return AT_PARAM_ERROR;
}
status = LoRaMacMibSetRequestConfirm(&mib);
CHECK_STATUS(status);

return AT_OK;
}

ATEerror_t at_UplinkCounter_get(const char *param)
{
MibRequestConfirm_t mib;
Expand Down Expand Up @@ -1138,19 +1087,19 @@ static void print_16_02x(uint8_t *pt)
static int sscanf_uint32_as_hhx(const char *from, uint32_t *value)
{
return tiny_sscanf(from, "%02hhx%02hhx%02hhx%02hhx",
&((unsigned char *)(value))[0],
&((unsigned char *)(value))[1],
&((unsigned char *)(value))[3],
&((unsigned char *)(value))[2],
&((unsigned char *)(value))[3]);
&((unsigned char *)(value))[1],
&((unsigned char *)(value))[0]);
}

static void print_uint32_as_02x(uint32_t value)
{
AT_PRINTF("%02x%02x%02x%02x\r",
(unsigned)((unsigned char *)(&value))[0],
(unsigned)((unsigned char *)(&value))[1],
(unsigned)((unsigned char *)(&value))[3],
(unsigned)((unsigned char *)(&value))[2],
(unsigned)((unsigned char *)(&value))[3]);
(unsigned)((unsigned char *)(&value))[1],
(unsigned)((unsigned char *)(&value))[0]);
}

static void print_8_02x(uint8_t *pt)
Expand Down
2 changes: 0 additions & 2 deletions Projects/Multi/Applications/LoRa/AT_Slave/src/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,6 @@ static const struct ATCommand_s ATCommand[] =
.run = at_return_error,
},

#ifndef NO_KEY_ADDR_EUI
{
.string = AT_NWKID,
.size_string = sizeof(AT_NWKID) - 1,
Expand All @@ -342,7 +341,6 @@ static const struct ATCommand_s ATCommand[] =
.set = at_NetworkID_set,
.run = at_return_error,
},
#endif

{
.string = AT_FCU,
Expand Down
48 changes: 45 additions & 3 deletions Projects/Multi/Applications/LoRa/AT_Slave/src/lora.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ static lora_configuration_t lora_config =
.DevEui = LORAWAN_DEVICE_EUI,
.AppEui = LORAWAN_APPLICATION_EUI,
.AppKey = LORAWAN_APPLICATION_KEY,
.NetworkID = LORAWAN_NETWORK_ID,
.DevAddr = LORAWAN_DEVICE_ADDRESS,
.NwkSKey = LORAWAN_NWKSKEY,
.AppSKey = LORAWAN_APPSKEY,
.Rssi = 0,
Expand Down Expand Up @@ -851,11 +853,11 @@ void lora_fsm( LoRaMacRegion_t region )
else
{
mibReq.Type = MIB_NET_ID;
mibReq.Param.NetID = LORAWAN_NETWORK_ID;
mibReq.Param.NetID = lora_config.NetworkID;
LoRaMacMibSetRequestConfirm( &mibReq );

mibReq.Type = MIB_DEV_ADDR;
mibReq.Param.DevAddr = DevAddr;
mibReq.Param.DevAddr = lora_config.DevAddr;
LoRaMacMibSetRequestConfirm( &mibReq );

mibReq.Type = MIB_NWK_SKEY;
Expand All @@ -871,7 +873,7 @@ void lora_fsm( LoRaMacRegion_t region )
LoRaMacMibSetRequestConfirm( &mibReq );
}

DeviceState = DEVICE_STATE_SLEEP;
DeviceState = DEVICE_STATE_JOINED;
break;
}
case DEVICE_STATE_JOINED:
Expand Down Expand Up @@ -961,6 +963,46 @@ void lora_config_appeui_set(uint8_t appeui[8])
memcpy1(lora_config.AppEui, appeui, sizeof(lora_config.AppEui));
}

uint32_t lora_config_devaddr_get(void)
{
return lora_config.DevAddr;
}

void lora_config_devaddr_set(uint32_t devaddr)
{
lora_config.DevAddr= devaddr;
}

void lora_config_networkid_set(uint32_t networkid)
{
lora_config.NetworkID = networkid;
}

uint32_t lora_config_networkid_get(void)
{
return lora_config.NetworkID;
}

uint8_t *lora_config_nwkskey_get(void)
{
return lora_config.NwkSKey;
}

void lora_config_nwkskey_set(uint8_t nwkSKey[16])
{
memcpy1(lora_config.NwkSKey, nwkSKey, sizeof(lora_config.NwkSKey));
}

uint8_t *lora_config_appskey_get(void)
{
return lora_config.AppSKey;
}

void lora_config_appskey_set(uint8_t appskey[16])
{
memcpy1(lora_config.AppSKey, appskey, sizeof(lora_config.AppSKey));
}

uint8_t *lora_config_appkey_get(void)
{
return lora_config.AppKey;
Expand Down

0 comments on commit ed493ce

Please sign in to comment.