Teste Flash

Dependencies:   pulga-lorawan-drv Si1133 BME280

Committer:
MatteusCarr
Date:
Mon Sep 13 18:55:32 2021 +0000
Revision:
70:99b7a15c09da
Parent:
65:4090220e19d2
Teste Flash

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ruschigo 64:ed68ddac6360 1 /**
ruschigo 64:ed68ddac6360 2 * Copyright (c) 2017, Arm Limited and affiliates.
ruschigo 64:ed68ddac6360 3 * SPDX-License-Identifier: Apache-2.0
ruschigo 64:ed68ddac6360 4 *
ruschigo 64:ed68ddac6360 5 * Licensed under the Apache License, Version 2.0 (the "License");
ruschigo 64:ed68ddac6360 6 * you may not use this file except in compliance with the License.
ruschigo 64:ed68ddac6360 7 * You may obtain a copy of the License at
ruschigo 64:ed68ddac6360 8 *
ruschigo 64:ed68ddac6360 9 * http://www.apache.org/licenses/LICENSE-2.0
ruschigo 64:ed68ddac6360 10 *
ruschigo 64:ed68ddac6360 11 * Unless required by applicable law or agreed to in writing, software
ruschigo 64:ed68ddac6360 12 * distributed under the License is distributed on an "AS IS" BASIS,
ruschigo 64:ed68ddac6360 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ruschigo 64:ed68ddac6360 14 * See the License for the specific language governing permissions and
ruschigo 64:ed68ddac6360 15 * limitations under the License.
ruschigo 64:ed68ddac6360 16 */
ruschigo 64:ed68ddac6360 17
ruschigo 64:ed68ddac6360 18 #include "lora_radio.h"
ruschigo 64:ed68ddac6360 19 #include "lora_radio_helper.h"
ruschigo 64:ed68ddac6360 20
ruschigo 64:ed68ddac6360 21 //#include "serial.h"
ruschigo 64:ed68ddac6360 22
ruschigo 64:ed68ddac6360 23 using namespace events;
ruschigo 64:ed68ddac6360 24
ruschigo 64:ed68ddac6360 25 // Max payload size can be LORAMAC_PHY_MAXPAYLOAD.
ruschigo 64:ed68ddac6360 26 // This example only communicates with much shorter messages (<30 bytes).
ruschigo 64:ed68ddac6360 27 // If longer messages are used, these buffers must be changed accordingly.
ruschigo 64:ed68ddac6360 28
ruschigo 64:ed68ddac6360 29 static uint8_t lora_rx_buffer[30];
ruschigo 64:ed68ddac6360 30
ruschigo 64:ed68ddac6360 31
ruschigo 64:ed68ddac6360 32 /**
ruschigo 64:ed68ddac6360 33 * Constructing Mbed LoRaWANInterface and passing it the radio object from lora_radio_helper.
ruschigo 64:ed68ddac6360 34 */
ruschigo 64:ed68ddac6360 35 static LoRaWANInterface lorawan(radio);
ruschigo 64:ed68ddac6360 36
ruschigo 64:ed68ddac6360 37
ruschigo 64:ed68ddac6360 38 void lorawan_add_callbacks(lorawan_app_callbacks_t LoraWanCallbacks){
ruschigo 64:ed68ddac6360 39 lorawan.add_app_callbacks(&LoraWanCallbacks);
ruschigo 64:ed68ddac6360 40 }
ruschigo 64:ed68ddac6360 41
ruschigo 64:ed68ddac6360 42 int lorawan_connect(){
ruschigo 64:ed68ddac6360 43 lorawan_status_t retcode;
ruschigo 64:ed68ddac6360 44 retcode = lorawan.connect();
ruschigo 64:ed68ddac6360 45
ruschigo 64:ed68ddac6360 46 if (retcode == LORAWAN_STATUS_OK ||
ruschigo 64:ed68ddac6360 47 retcode == LORAWAN_STATUS_CONNECT_IN_PROGRESS) {
ruschigo 64:ed68ddac6360 48 return 0;
ruschigo 64:ed68ddac6360 49 } else {
ruschigo 64:ed68ddac6360 50 return -1;
ruschigo 64:ed68ddac6360 51 }
ruschigo 64:ed68ddac6360 52 }
ruschigo 64:ed68ddac6360 53
ruschigo 64:ed68ddac6360 54 int lorawan_enable_adaptive_datarate(){
ruschigo 64:ed68ddac6360 55 if (lorawan.enable_adaptive_datarate() != LORAWAN_STATUS_OK) {
ruschigo 64:ed68ddac6360 56 return -1;
ruschigo 64:ed68ddac6360 57 }else{
ruschigo 64:ed68ddac6360 58 return 0;
ruschigo 64:ed68ddac6360 59 }
ruschigo 64:ed68ddac6360 60 }
ruschigo 64:ed68ddac6360 61
ruschigo 64:ed68ddac6360 62 int lorawan_set_confirmed_msg_retries(unsigned int number_of_retries){
ruschigo 64:ed68ddac6360 63 if (lorawan.set_confirmed_msg_retries(number_of_retries)
ruschigo 64:ed68ddac6360 64 != LORAWAN_STATUS_OK) {
ruschigo 64:ed68ddac6360 65 return -1;
ruschigo 64:ed68ddac6360 66 }else{
ruschigo 64:ed68ddac6360 67 return 0;
ruschigo 64:ed68ddac6360 68 }
ruschigo 64:ed68ddac6360 69 }
ruschigo 64:ed68ddac6360 70
ruschigo 64:ed68ddac6360 71 int lorawan_initialize_stack(EventQueue *ev_queue){
ruschigo 64:ed68ddac6360 72 if(lorawan.initialize(ev_queue) != LORAWAN_STATUS_OK){
ruschigo 64:ed68ddac6360 73 return -1;
ruschigo 64:ed68ddac6360 74 }else
ruschigo 64:ed68ddac6360 75 return 0;
ruschigo 64:ed68ddac6360 76 }
ruschigo 64:ed68ddac6360 77
ruschigo 64:ed68ddac6360 78 /**
ruschigo 64:ed68ddac6360 79 * Sends a message to the Network Server
ruschigo 64:ed68ddac6360 80 */
ruschigo 64:ed68ddac6360 81 int lora_send_message(uint8_t *msg_to_transmit, uint16_t packet_len)
ruschigo 64:ed68ddac6360 82 {
ruschigo 64:ed68ddac6360 83 int16_t retcode;
ruschigo 64:ed68ddac6360 84
ruschigo 64:ed68ddac6360 85 retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, msg_to_transmit, packet_len,MSG_UNCONFIRMED_FLAG);
ruschigo 64:ed68ddac6360 86
ruschigo 64:ed68ddac6360 87 return (int)retcode;
ruschigo 64:ed68ddac6360 88 }
ruschigo 64:ed68ddac6360 89
ruschigo 64:ed68ddac6360 90 /**
ruschigo 64:ed68ddac6360 91 * Receive a message from the Network Server
ruschigo 64:ed68ddac6360 92 */
ruschigo 64:ed68ddac6360 93 int lora_receive_message()
ruschigo 64:ed68ddac6360 94 {
ruschigo 64:ed68ddac6360 95 uint8_t port;
ruschigo 64:ed68ddac6360 96 int flags;
ruschigo 64:ed68ddac6360 97 int16_t retcode = lorawan.receive(lora_rx_buffer, sizeof(lora_rx_buffer), port, flags);
ruschigo 64:ed68ddac6360 98
ruschigo 64:ed68ddac6360 99 if (retcode < 0) {
ruschigo 64:ed68ddac6360 100 return (int)retcode;
ruschigo 64:ed68ddac6360 101 }
ruschigo 64:ed68ddac6360 102
ruschigo 64:ed68ddac6360 103 /*Justo for Debug
ruschigo 64:ed68ddac6360 104 for (uint8_t i = 0; i < retcode; i++) {
ruschigo 64:ed68ddac6360 105 pc.printf("%02x ", rx_buffer[i]);
ruschigo 64:ed68ddac6360 106 }
ruschigo 64:ed68ddac6360 107 pc.printf("\r\n");
ruschigo 64:ed68ddac6360 108 */
ruschigo 64:ed68ddac6360 109 /*
ruschigo 64:ed68ddac6360 110 it clean the buffer, so useless
ruschigo 64:ed68ddac6360 111 memset(rx_buffer, 0, sizeof(rx_buffer));
ruschigo 64:ed68ddac6360 112 */
ruschigo 64:ed68ddac6360 113
ruschigo 64:ed68ddac6360 114 return (int)retcode;
ruschigo 64:ed68ddac6360 115 }
ruschigo 64:ed68ddac6360 116
ruschigo 64:ed68ddac6360 117
ruschigo 64:ed68ddac6360 118
ruschigo 64:ed68ddac6360 119 // EOF