Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: LoRa/hxc_client.h
- Revision:
- 5:53302861bfea
- Parent:
- 0:a0c5877bd360
- Child:
- 15:2860c960d2ff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LoRa/hxc_client.h Mon Jul 16 20:12:42 2018 +0000
@@ -0,0 +1,214 @@
+/*
+ _ _ _____ _______
+ | | | | |_ _| |__ __|
+ | |__| | __ ___ __ | | ___ | |
+ | __ |/ _` \ \/ / | | / _ \| |
+ | | | | (_| |> < _| || (_) | |
+ |_| |_|\__,_/_/\_\_____\___/|_|
+ (C)2017 HaxIoT
+*/
+/*******************************************************************************
+ * File : hxc_client.h
+ * Author : Fahad Mirza (Haxiot)
+ * Version : V1.0.0
+ * Modified: 13-April-2018
+ * Brief : Header for driver hxc_client.c module
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>© COPYRIGHT(c) 2017 Haxiot</center></h2>
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of Haxiot nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __HXC_CLIENT__
+#define __HXC_CLIENT__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Includes ------------------------------------------------------------------*/
+#include<stdint.h>
+#include<stdbool.h>
+
+/* Typedefs ------------------------------------------------------------------*/
+/*
+ * AT Command statuses, in direct relationship with AT_RetCode static array
+ * in atcmd.c file
+ */
+typedef enum eAtStatus
+{
+ AT_OK = 0,
+ AT_ERROR,
+ AT_PARAM_ERROR,
+ AT_BUSY_ERROR,
+ AT_PARAM_OVERFLOW,
+ AT_INVALID_MODE,
+ AT_NO_NET_JOINED,
+ AT_PAYLOAD_SIZE_ERROR,
+ AT_END_ERROR,
+ AT_CMD_ERROR,
+ AT_UART_LINK_ERROR, // Return code to notify error during UART Tx/Rx/Config
+ AT_TIMEOUT, // ToDo
+} eAtStatus_t;
+
+/*
+ * AT Command Index.
+ * In direct relationship with "CmdTab" static array in atcmd.c
+ */
+typedef enum ATCmd
+{
+ AT,
+ AT_RESET,
+ AT_FD,
+ AT_DEVEUI,
+ AT_DEVADR,
+ AT_APPKEY,
+ AT_NWKSKEY,
+ AT_APPSKEY,
+ AT_APPEUI,
+ AT_ADR,
+ AT_TXP,
+ AT_DR,
+ AT_DCS,
+ AT_PNM,
+ AT_RX2WND,
+ AT_RX1DL,
+ AT_RX2DL,
+ AT_JN1DL,
+ AT_JN2DL,
+ AT_NJM,
+ AT_NWKID,
+ AT_FCU,
+ AT_FCD,
+ AT_CLASS,
+ AT_CH,
+ AT_JOIN,
+ AT_NJS,
+ AT_SENDB,
+ AT_SEND,
+ AT_RECVB,
+ AT_CFS,
+ AT_SNR,
+ AT_RSSI,
+ AT_MODE,
+ AT_RFCFG,
+ AT_TXCW,
+ AT_TX,
+ AT_RX,
+ AT_BAT,
+ AT_VER,
+ AT_END
+} ATCmd_t;
+
+// AT command behaviors
+typedef enum ATGroup
+{
+ AT_CTRL = 0,
+ AT_SET,
+ AT_GET,
+ AT_TEST,
+}ATGroup_t;
+
+// Type definition for SEND command
+typedef struct sSendDataString
+{
+ char *Buffer;
+ uint8_t Port;
+ uint8_t Ack;
+}sSendDataString_t;
+
+// Type definition for SENDB command
+typedef struct sSendDataBinary
+{
+ uint8_t *Buffer;
+ uint8_t DataSize;
+ uint8_t Port;
+ uint8_t Ack;
+}sSendDataBinary_t;
+
+// Type definition for received data
+typedef struct sRecvDataBinary
+{
+ uint8_t *Buffer;
+ uint32_t DataSize;
+ uint8_t Port;
+ uint8_t Ack;
+}sRecvDataBinary_t;
+
+
+/* Exported functions ------------------------------------------------------- */
+
+/********************************************************************
+ * @brief Configures modem UART interface and Reset GPIO
+ * @param None
+ * @retval AT_OK in case of success
+ * @retval AT_UART_LINK_ERROR in case of failure
+*********************************************************************/
+eAtStatus_t Modem_Init( void ) ;
+
+/********************************************************************
+ * @brief Deinitialize modem UART interface.
+ * @param None
+ * @retval None
+*********************************************************************/
+void Modem_IO_DeInit( void ) ;
+
+/********************************************************************
+ * @brief Handle the AT cmd following their Group type
+ * @param at_group AT group [control, set , get)
+ * Cmd AT command
+ * pdata pointer to the IN/OUT buffer
+ * @retval module status
+ ********************************************************************/
+eAtStatus_t Modem_AT_Cmd(ATGroup_t at_group, ATCmd_t Cmd, void *pdata);
+
+/********************************************************************
+ * @brief Reset the HXC client modem using HXC RESET pin
+ * @param None
+ * @retval module status
+ ********************************************************************/
+eAtStatus_t Modem_HardReset(void);
+
+/********************************************************************
+ * @brief Check if any downlink packet is received
+ * @param None
+ * @retval TRUE or FALSE
+ ********************************************************************/
+bool Modem_IsNewDataReceived(void);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __HXC_CLIENT__ */
+
+/************************ (C) COPYRIGHT Haxiot *****END OF FILE****/
+