lora experiments
Dependencies: BLE_API LoRaWAN-lib SX1276Lib mbed nRF51822 HCSR04Lib
Fork of LoRa by
Revision 4:63d6744a61b6, committed 2016-06-09
- Comitter:
- haaspors
- Date:
- Thu Jun 09 14:42:23 2016 +0000
- Parent:
- 3:70d40f678f37
- Commit message:
- Add 'device joined lora network' gatt char.
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Jun 08 12:40:38 2016 +0000 +++ b/main.cpp Thu Jun 09 14:42:23 2016 +0000 @@ -159,6 +159,7 @@ MibRequestConfirm_t mibReq; +bool loraHasJoinedNetwork = false; /* BLE stuff */ const uint16_t loraConfServiceUUID = 0xA000; @@ -169,16 +170,18 @@ const uint16_t DevEuiUUID = 0xA001; const uint16_t AppEuiUUID = 0xA002; const uint16_t AppKeyUUID = 0xA003; +const uint16_t DevJoinedUUID = 0xA004; ReadWriteArrayGattCharacteristic<uint8_t, sizeof(DevEui)> DevEuiChar(DevEuiUUID, DevEui); ReadWriteArrayGattCharacteristic<uint8_t, sizeof(AppEui)> AppEuiChar(AppEuiUUID, AppEui); WriteOnlyArrayGattCharacteristic<uint8_t, sizeof(AppKey)> AppKeyChar(AppKeyUUID, AppKey); +ReadOnlyGattCharacteristic<bool> DevJoinedChar(DevJoinedUUID, &loraHasJoinedNetwork); -GattCharacteristic *loraChars[] = {&DevEuiChar, &AppEuiChar, &AppKeyChar}; +GattCharacteristic *loraChars[] = {&DevEuiChar, &AppEuiChar, &AppKeyChar, &DevJoinedChar}; #else -const uint16_t DevAddrUUID = 0xA004; -const uint16_t NwkSKeyUUID = 0xA005; -const uint16_t AppSKeyUUID = 0xA006; +const uint16_t DevAddrUUID = 0xA011; +const uint16_t NwkSKeyUUID = 0xA012; +const uint16_t AppSKeyUUID = 0xA013; ReadWriteGattCharacteristic<uint32_t> DevAddrChar(DevAddrUUID, &DevAddr); WriteOnlyArrayGattCharacteristic<uint8_t, sizeof(NwkSKey)> NwkSKeyChar(NwkSKeyUUID, NwkSKey); @@ -372,6 +375,9 @@ printf("We joined! \r\n"); // Status is OK, node has joined the network IsNetworkJoinedStatusUpdate = true; + loraHasJoinedNetwork = true; + BLE::Instance(BLE::DEFAULT_INSTANCE).updateCharacteristicValue(DevJoinedChar.getValueHandle(), + (const uint8_t *)&loraHasJoinedNetwork, sizeof (loraHasJoinedNetwork)); break; } default: @@ -457,8 +463,9 @@ /* * Restart advertising when phone app disconnects */ -void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *) +void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) { + printf("%s - reason 0x%x", __FUNCTION__, params->reason); BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising(); } @@ -596,6 +603,9 @@ MlmeReq_t mlmeReq; mlmeReq.Type = MLME_JOIN; + loraHasJoinedNetwork = false; + BLE::Instance(BLE::DEFAULT_INSTANCE).updateCharacteristicValue(DevJoinedChar.getValueHandle(), + (const uint8_t *)&loraHasJoinedNetwork, sizeof (loraHasJoinedNetwork)); mlmeReq.Req.Join.DevEui = DevEui; mlmeReq.Req.Join.AppEui = AppEui;