176 lines
8.3 KiB
C
176 lines
8.3 KiB
C
/*
|
|
*********************************************************************************************************
|
|
* EXAMPLE CODE
|
|
*
|
|
* This file is provided as an example on how to use Micrium products.
|
|
*
|
|
* Please feel free to use any application code labeled as 'EXAMPLE CODE' in
|
|
* your application products. Example code may be used as is, in whole or in
|
|
* part, or may be used as a reference only. This file can be modified as
|
|
* required to meet the end-product requirements.
|
|
*
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*
|
|
* HTTP CLIENT 2LEMETRY MODULE
|
|
*
|
|
* Filename : 2lemetry.h
|
|
* Version : V3.01.00
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* MODULE
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifndef TWOLEMETRY_MODULE_PRESENT
|
|
#define TWOLEMETRY_MODULE_PRESENT
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* INCLUDE FILES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* EXTERNS
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifdef TWOLEMETRY_MODULE
|
|
#define TWOLEMETRY_EXT
|
|
#else
|
|
#define TWOLEMETRY_EXT extern
|
|
#endif
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* DEFINES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#define TWOLEMETRY_CFG_REQ_NBR_MAX 2u
|
|
|
|
|
|
#define TWOLEMETRY_CFG_CONN_NBR_MAX 3u
|
|
|
|
#define TWOLEMETRY_CFG_CONN_BUF_SIZE 4096u
|
|
|
|
|
|
#define TWOLEMETRY_CFG_HDR_NBR_MAX 10u
|
|
#define TWOLEMETRY_CFG_HDR_VAL_LEN_MAX 300u
|
|
|
|
#if 0
|
|
#define TWOLEMETRY_CFG_QUERY_STR_NBR_MAX 3u
|
|
#define TWOLEMETRY_CFG_QUERY_STR_KEY_LEN_MAX 50u
|
|
#define TWOLEMETRY_CFG_QUERY_STR_VAL_LEN_MAX 100u
|
|
#endif
|
|
|
|
#define TWOLEMETRY_URL_LEN_MAX 300u
|
|
|
|
|
|
#define TWOLEMETRY_API_HOSTNAME "api.m2m.io"
|
|
#define TWOLEMETRY_URL_MESSAGES "/2/publish"
|
|
#define TWOLEMETRY_URL_DOMAIN "/2/account/domain/"
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* DATA TYPE
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
typedef void (*TWOLEMETRY_RX_DATA)(void *p_data,
|
|
CPU_INT16U data_len,
|
|
CPU_BOOLEAN last_chunk,
|
|
void *p_user_ctx);
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* GLOBAL VARIABLES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
|
|
TWOLEMETRY_EXT CPU_CHAR Twolemetry_Buf[1024];
|
|
#if 0
|
|
TWOLEMETRY_EXT HTTPc_KEY_VAL Twolemetry_ReqQueryStrTbl[TWOLEMETRY_CFG_QUERY_STR_NBR_MAX];
|
|
|
|
TWOLEMETRY_EXT CPU_CHAR Twolemetry_ReqQueryStrKeyTbl[TWOLEMETRY_CFG_QUERY_STR_NBR_MAX][TWOLEMETRY_CFG_QUERY_STR_KEY_LEN_MAX];
|
|
TWOLEMETRY_EXT CPU_CHAR Twolemetry_ReqQueryStrValTbl[TWOLEMETRY_CFG_QUERY_STR_NBR_MAX][TWOLEMETRY_CFG_QUERY_STR_VAL_LEN_MAX];
|
|
#endif
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* FUNCTION PROTOTYPES
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
CPU_BOOLEAN Twolemetry_Publish(CPU_CHAR *p_client_id,
|
|
CPU_CHAR *p_topic,
|
|
CPU_CHAR *p_payload,
|
|
CPU_CHAR *p_qos,
|
|
CPU_CHAR *p_credentials);
|
|
|
|
CPU_BOOLEAN Twolemetry_GetData(CPU_CHAR *p_domain,
|
|
CPU_CHAR *p_stuff,
|
|
CPU_CHAR *p_thing,
|
|
CPU_CHAR *p_whatever,
|
|
CPU_CHAR *p_credentials,
|
|
TWOLEMETRY_RX_DATA fnct,
|
|
void *p_ctx);
|
|
|
|
CPU_BOOLEAN Twolemetry_SendSMS(CPU_CHAR *p_message,
|
|
CPU_CHAR *p_to_phone_number,
|
|
CPU_CHAR *p_topic,
|
|
CPU_CHAR *p_domain,
|
|
CPU_CHAR *p_credentials);
|
|
|
|
CPU_BOOLEAN Twolemetry_PushStoreKey(CPU_CHAR *p_domain,
|
|
CPU_CHAR *p_key,
|
|
CPU_CHAR *p_kvp,
|
|
CPU_BOOLEAN protect,
|
|
CPU_CHAR *p_credentials);
|
|
|
|
CPU_BOOLEAN Twolemetry_GetStoreKey(CPU_CHAR *p_domain,
|
|
CPU_CHAR *p_key,
|
|
CPU_BOOLEAN protect,
|
|
CPU_CHAR *p_credentials,
|
|
TWOLEMETRY_RX_DATA fnct,
|
|
void *p_ctx);
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
* MODULE END
|
|
*********************************************************************************************************
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#endif /* TWOLEMTRY_MODULE_PRESENT */
|