Fahad Mirza / Mbed 2 deprecated Nucleo_HXC900

Dependencies:   mbed

Committer:
fahadmirza
Date:
Mon Jul 16 20:12:42 2018 +0000
Revision:
5:53302861bfea
Parent:
4:511677d804ac
Child:
6:1d09b7960d57
Updated directories;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fahadmirza 4:511677d804ac 1 /*
fahadmirza 4:511677d804ac 2 _ _ _____ _______
fahadmirza 4:511677d804ac 3 | | | | |_ _| |__ __|
fahadmirza 4:511677d804ac 4 | |__| | __ ___ __ | | ___ | |
fahadmirza 4:511677d804ac 5 | __ |/ _` \ \/ / | | / _ \| |
fahadmirza 4:511677d804ac 6 | | | | (_| |> < _| || (_) | |
fahadmirza 4:511677d804ac 7 |_| |_|\__,_/_/\_\_____\___/|_|
fahadmirza 4:511677d804ac 8 (C)2017 HaxIoT
fahadmirza 4:511677d804ac 9 */
fahadmirza 4:511677d804ac 10 /*******************************************************************************
fahadmirza 4:511677d804ac 11 * File : lora_driver.h
fahadmirza 4:511677d804ac 12 * Author : Fahad Mirza (Haxiot)
fahadmirza 4:511677d804ac 13 * Version : V1.0.0
fahadmirza 4:511677d804ac 14 * Modified: 13-April-2018
fahadmirza 4:511677d804ac 15 * Brief : Header for driver lora_driver.h module
fahadmirza 4:511677d804ac 16 ******************************************************************************
fahadmirza 4:511677d804ac 17 * @attention
fahadmirza 4:511677d804ac 18 *
fahadmirza 4:511677d804ac 19 * <h2><center>&copy; COPYRIGHT(c) 2017 Haxiot</center></h2>
fahadmirza 4:511677d804ac 20 *
fahadmirza 4:511677d804ac 21 * Redistribution and use in source and binary forms, with or without modification,
fahadmirza 4:511677d804ac 22 * are permitted provided that the following conditions are met:
fahadmirza 4:511677d804ac 23 * 1. Redistributions of source code must retain the above copyright notice,
fahadmirza 4:511677d804ac 24 * this list of conditions and the following disclaimer.
fahadmirza 4:511677d804ac 25 * 2. Redistributions in binary form must reproduce the above copyright notice,
fahadmirza 4:511677d804ac 26 * this list of conditions and the following disclaimer in the documentation
fahadmirza 4:511677d804ac 27 * and/or other materials provided with the distribution.
fahadmirza 4:511677d804ac 28 * 3. Neither the name of Haxiot nor the names of its contributors
fahadmirza 4:511677d804ac 29 * may be used to endorse or promote products derived from this software
fahadmirza 4:511677d804ac 30 * without specific prior written permission.
fahadmirza 4:511677d804ac 31 *
fahadmirza 4:511677d804ac 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
fahadmirza 4:511677d804ac 33 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
fahadmirza 4:511677d804ac 34 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
fahadmirza 4:511677d804ac 35 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
fahadmirza 4:511677d804ac 36 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
fahadmirza 4:511677d804ac 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
fahadmirza 4:511677d804ac 38 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
fahadmirza 4:511677d804ac 39 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
fahadmirza 4:511677d804ac 40 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
fahadmirza 4:511677d804ac 41 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
fahadmirza 4:511677d804ac 42 *
fahadmirza 4:511677d804ac 43 ******************************************************************************
fahadmirza 4:511677d804ac 44 */
fahadmirza 4:511677d804ac 45
fahadmirza 4:511677d804ac 46 #ifndef __LORA_CONF_H
fahadmirza 4:511677d804ac 47 #define __LORA_CONF_H
fahadmirza 4:511677d804ac 48
fahadmirza 4:511677d804ac 49 #ifdef __cplusplus
fahadmirza 4:511677d804ac 50 extern "C" {
fahadmirza 4:511677d804ac 51 #endif
fahadmirza 4:511677d804ac 52
fahadmirza 4:511677d804ac 53
fahadmirza 4:511677d804ac 54 /* Private Macros ------------------------------------------------------------*/
fahadmirza 4:511677d804ac 55 #define SENSORS_MEASURE_CYCLE (15000U) // Send packet every 15s
fahadmirza 4:511677d804ac 56 #define SENSOR_ON true
fahadmirza 4:511677d804ac 57 #define STRING_PACKET "YourName"
fahadmirza 4:511677d804ac 58
fahadmirza 5:53302861bfea 59 // Uplink packet acknowledgment configuration
fahadmirza 5:53302861bfea 60 #define UNCONFIRMED 0
fahadmirza 5:53302861bfea 61 #define CONFIRMED 1
fahadmirza 4:511677d804ac 62
fahadmirza 4:511677d804ac 63
fahadmirza 4:511677d804ac 64 // Mbed specific declaration
fahadmirza 4:511677d804ac 65 AnalogIn temperatureSensor(A0);
fahadmirza 4:511677d804ac 66 DigitalOut nucleoLED(LED1);
fahadmirza 4:511677d804ac 67
fahadmirza 4:511677d804ac 68 /* Private function definitions ----------------------------------------------*/
fahadmirza 4:511677d804ac 69 /******************************************************************************
fahadmirza 4:511677d804ac 70 * @Brief : Uplink packet handler for lora_driver
fahadmirza 4:511677d804ac 71 * @Param : Pointer for payload buffer, data size, ack configuration and port
fahadmirza 4:511677d804ac 72 * @return: none
fahadmirza 4:511677d804ac 73 ******************************************************************************/
fahadmirza 4:511677d804ac 74 static void GetSensorData(uint8_t *buffer, uint8_t *dataSize, uint8_t *ack, uint8_t *port)
fahadmirza 4:511677d804ac 75 {
fahadmirza 4:511677d804ac 76 // Prepare an unconfirmed uplink packet for port 2
fahadmirza 4:511677d804ac 77 uint8_t size = 0;
fahadmirza 4:511677d804ac 78
fahadmirza 4:511677d804ac 79 if(SENSOR_ON == true)
fahadmirza 4:511677d804ac 80 {
fahadmirza 4:511677d804ac 81 uint16_t temperatureValue = temperatureSensor.read_u16();
fahadmirza 4:511677d804ac 82 buffer[size++] = (temperatureValue >> 8) & 0xFF;
fahadmirza 4:511677d804ac 83 buffer[size++] = temperatureValue & 0xFF;
fahadmirza 4:511677d804ac 84 }
fahadmirza 4:511677d804ac 85 else
fahadmirza 4:511677d804ac 86 {
fahadmirza 4:511677d804ac 87 char yourName[] = STRING_PACKET;
fahadmirza 4:511677d804ac 88 for(uint8_t i = 0; (i < 11) && (yourName[i] != NULL); i++)
fahadmirza 4:511677d804ac 89 {
fahadmirza 4:511677d804ac 90 buffer[size++] = yourName[i];
fahadmirza 4:511677d804ac 91 }
fahadmirza 4:511677d804ac 92 }
fahadmirza 4:511677d804ac 93
fahadmirza 4:511677d804ac 94 *dataSize = size;
fahadmirza 4:511677d804ac 95 *ack = UNCONFIRMED;
fahadmirza 4:511677d804ac 96 *port = 2;
fahadmirza 4:511677d804ac 97 }
fahadmirza 4:511677d804ac 98
fahadmirza 4:511677d804ac 99 /******************************************************************************
fahadmirza 4:511677d804ac 100 * @Brief : Downlink packet handler for lora_driver
fahadmirza 4:511677d804ac 101 * LSBytes of the payload controls the Nucleo LED
fahadmirza 4:511677d804ac 102 * @Param : Payload buffer, data size, ack configuration and port
fahadmirza 4:511677d804ac 103 * @return: none
fahadmirza 4:511677d804ac 104 ******************************************************************************/
fahadmirza 4:511677d804ac 105 static void LedControl(uint8_t *buffer, uint8_t dataSize, uint8_t ack, uint8_t port)
fahadmirza 4:511677d804ac 106 {
fahadmirza 4:511677d804ac 107 switch(buffer[dataSize - 1])
fahadmirza 4:511677d804ac 108 {
fahadmirza 4:511677d804ac 109 case 1:
fahadmirza 4:511677d804ac 110 {
fahadmirza 4:511677d804ac 111 BSP_LED_On(LED_GREEN);
fahadmirza 4:511677d804ac 112 break;
fahadmirza 4:511677d804ac 113 }
fahadmirza 4:511677d804ac 114 default:
fahadmirza 4:511677d804ac 115 {
fahadmirza 4:511677d804ac 116 BSP_LED_Off(LED_GREEN);
fahadmirza 4:511677d804ac 117 break;
fahadmirza 4:511677d804ac 118 }
fahadmirza 4:511677d804ac 119 }
fahadmirza 4:511677d804ac 120 }
fahadmirza 4:511677d804ac 121
fahadmirza 4:511677d804ac 122 #ifdef __cplusplus
fahadmirza 4:511677d804ac 123 }
fahadmirza 4:511677d804ac 124 #endif /* __cplusplus */
fahadmirza 4:511677d804ac 125
fahadmirza 4:511677d804ac 126 #endif