This is an example application based on Mbed-OS LoRaWAN protocol APIs. The Mbed-OS LoRaWAN stack implementation is compliant with LoRaWAN v1.0.2 specification.

Dependencies:   Lorawan_Version_0_1

Dependents:   Lorawan_Version_0_1

Committer:
jacktractive
Date:
Sat Jan 11 11:35:11 2020 +0000
Revision:
65:3061ea235a0c
Parent:
64:85fa08519e1e
Child:
66:a11c79073f1f
lora outsource doesnt work;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:7037ed05f54f 1 /**
mbed_official 0:7037ed05f54f 2 * Copyright (c) 2017, Arm Limited and affiliates.
mbed_official 0:7037ed05f54f 3 * SPDX-License-Identifier: Apache-2.0
mbed_official 0:7037ed05f54f 4 *
mbed_official 0:7037ed05f54f 5 * Licensed under the Apache License, Version 2.0 (the "License");
mbed_official 0:7037ed05f54f 6 * you may not use this file except in compliance with the License.
mbed_official 0:7037ed05f54f 7 * You may obtain a copy of the License at
mbed_official 0:7037ed05f54f 8 *
mbed_official 0:7037ed05f54f 9 * http://www.apache.org/licenses/LICENSE-2.0
mbed_official 0:7037ed05f54f 10 *
mbed_official 0:7037ed05f54f 11 * Unless required by applicable law or agreed to in writing, software
mbed_official 0:7037ed05f54f 12 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 0:7037ed05f54f 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 0:7037ed05f54f 14 * See the License for the specific language governing permissions and
mbed_official 0:7037ed05f54f 15 * limitations under the License.
mbed_official 0:7037ed05f54f 16 */
jacktractive 65:3061ea235a0c 17
jacktractive 65:3061ea235a0c 18 #include "mbed.h"
jacktractive 65:3061ea235a0c 19 #include "Lora.h"
jacktractive 65:3061ea235a0c 20 #include "Fahrrad.h"
mbed_official 0:7037ed05f54f 21 #include "trace_helper.h"
jacktractive 65:3061ea235a0c 22 #include <stdio.h>
jacktractive 65:3061ea235a0c 23 #include "mbed_stats.h"
jacktractive 63:2bfceda4c30c 24
jacktractive 63:2bfceda4c30c 25 float Home_Longitude;
jacktractive 63:2bfceda4c30c 26 float Home_Latitude;
jacktractive 63:2bfceda4c30c 27 float Home_Distance;
jacktractive 63:2bfceda4c30c 28 float Home_Distance_max;
jacktractive 64:85fa08519e1e 29 bool GPS_activ,LORA_activ,AtHome;
jacktractive 63:2bfceda4c30c 30 int LiveTick;
jacktractive 63:2bfceda4c30c 31 bool IsLoading;
jacktractive 63:2bfceda4c30c 32 AnalogIn LadeSpannung(PB_0); // 1/11 der gleichgerichteten Spannung am Dynamo
jacktractive 63:2bfceda4c30c 33
jacktractive 65:3061ea235a0c 34 struct TX_Position
jacktractive 65:3061ea235a0c 35 {
jacktractive 65:3061ea235a0c 36 uint8_t TX_Precode;
jacktractive 65:3061ea235a0c 37 uint8_t TX_Zeitstempel[sizeof(float)];
jacktractive 65:3061ea235a0c 38 uint8_t TX_Longitude[sizeof(float)];
jacktractive 65:3061ea235a0c 39 uint8_t TX_Latitude[sizeof(float)];
jacktractive 65:3061ea235a0c 40 };
mbed_official 0:7037ed05f54f 41
mbed_official 0:7037ed05f54f 42
jacktractive 65:3061ea235a0c 43 DigitalOut led(LED2);
mbed_official 0:7037ed05f54f 44
jacktractive 65:3061ea235a0c 45 //Livetick Warteschlange Events
jacktractive 65:3061ea235a0c 46 static EventQueue ev_queue(10 *EVENTS_EVENT_SIZE);
jacktractive 63:2bfceda4c30c 47
jacktractive 63:2bfceda4c30c 48
jacktractive 63:2bfceda4c30c 49 static void LifeTicker()
jacktractive 63:2bfceda4c30c 50 {
jacktractive 64:85fa08519e1e 51
jacktractive 63:2bfceda4c30c 52 LiveTick=LiveTick+1;
jacktractive 63:2bfceda4c30c 53 printf("\n\t\t---LiveTick--- [%i]\n\n", LiveTick);
jacktractive 63:2bfceda4c30c 54 printf("Ladewert: %3.3f%%\n", LadeSpannung.read()*100.0f);
jacktractive 65:3061ea235a0c 55
jacktractive 65:3061ea235a0c 56 //if(LadeSpannung.read() > 0.05f) {
jacktractive 65:3061ea235a0c 57 // if (not IsLoading) {Licht_hell();}
jacktractive 65:3061ea235a0c 58 // IsLoading = 1;
jacktractive 65:3061ea235a0c 59 // } else {
jacktractive 65:3061ea235a0c 60 // if (IsLoading) {ev_queue.call_in(3000, Licht_dunkel);}
jacktractive 65:3061ea235a0c 61 // IsLoading = 0;
jacktractive 65:3061ea235a0c 62 // }
jacktractive 63:2bfceda4c30c 63
jacktractive 64:85fa08519e1e 64 if(LORA_activ)
jacktractive 64:85fa08519e1e 65 {
jacktractive 64:85fa08519e1e 66 printf("\n\tLORA Connected\n");
jacktractive 64:85fa08519e1e 67 }
jacktractive 64:85fa08519e1e 68 else
jacktractive 64:85fa08519e1e 69 {
jacktractive 64:85fa08519e1e 70 printf("\n\tKein LORA Signal\n");
jacktractive 64:85fa08519e1e 71 }
jacktractive 64:85fa08519e1e 72
jacktractive 63:2bfceda4c30c 73 ev_queue.call(GPS_aktiv);
jacktractive 63:2bfceda4c30c 74 // ev_queue.call_in(5000, LifeTicker);
jacktractive 65:3061ea235a0c 75
jacktractive 65:3061ea235a0c 76
jacktractive 65:3061ea235a0c 77 mbed_stats_cpu_t stats;
jacktractive 65:3061ea235a0c 78 mbed_stats_cpu_get(&stats);
jacktractive 65:3061ea235a0c 79 printf("Uptime: %llu ", stats.uptime / 1000);
jacktractive 65:3061ea235a0c 80 printf("Sleep time: %llu ", stats.sleep_time / 1000);
jacktractive 65:3061ea235a0c 81 printf("Deep Sleep: %llu\n", stats.deep_sleep_time / 1000);
jacktractive 65:3061ea235a0c 82
jacktractive 63:2bfceda4c30c 83 }
jacktractive 63:2bfceda4c30c 84
mbed_official 46:a124538e2891 85 int main(void)
jacktractive 64:85fa08519e1e 86 {
jacktractive 65:3061ea235a0c 87 printf("----- MAIN() ------");
jacktractive 65:3061ea235a0c 88
mbed_official 0:7037ed05f54f 89 // setup tracing
mbed_official 0:7037ed05f54f 90 setup_trace();
jacktractive 61:2b30d8e75fe7 91
jacktractive 65:3061ea235a0c 92 Lora_init();
jacktractive 63:2bfceda4c30c 93
jacktractive 65:3061ea235a0c 94 ev_queue.call_every(5000,LifeTicker);
jacktractive 64:85fa08519e1e 95
jacktractive 65:3061ea235a0c 96 //Starte_Fahrrad_Eventmanager(); //schonmal die Fahrrad Events Initialisieren falls wir hier auch ohne lorawan empfang was machen wollen
mbed_official 3:8c7198d1a2a1 97
mbed_official 3:8c7198d1a2a1 98 return 0;
mbed_official 0:7037ed05f54f 99 }
mbed_official 0:7037ed05f54f 100
jacktractive 63:2bfceda4c30c 101
jacktractive 63:2bfceda4c30c 102
jacktractive 63:2bfceda4c30c 103
jacktractive 63:2bfceda4c30c 104