4G_module/include/cmiot/cm_virt_at.h

171 lines
4.7 KiB
C
Raw Permalink Normal View History

2024-09-02 17:54:29 +08:00
/**
* @file cm_virt_at.h
* @brief AT通道接口
* @copyright Copyright © 2021 China Mobile IOT. All rights reserved.
* @author By XGL
* @date 2022/07/10
*
* @defgroup virt_at virt_at
* @ingroup virt_at
* @{
*/
#ifndef __CM_VIRT_AT_H__
#define __CM_VIRT_AT_H__
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdint.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Public Types
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
/****************************************************************************
***********************AT需注意事项*************************************
* 1AT不完全支持中移开发的AT手册中的指令,3GPP的AT指令
*
* AT+MUESTATS=radio AT+MUESTATS=cell AT+MUESTATS=sband
* AT指令不支持,使
* AT指令也有所区别AT都遵循了使用3GPP标准的AT指令
*
* (1)ICCID的指令为AT*ICCID?(2)AT指令为
* AT+MDIALUPCFG="auto",1,AT+MDIALUPCFG="auto",0
* 2AT使用频繁导致程序阻塞使线
* AT使AT时每次都需要初始化和去初始化
* 3AT读取数据的方式是使用消息队列一次性读取固定长度的数据
*
*
* 4使cm_virt_at_sms_send发送PDU格式的短信时
* SMSC
***************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
extern "C"
{
#else
#define EXTERN extern
#endif
/**来电短信等消息主动上报调函数类型*/
typedef void (*cm_at_urc_callback)(char *urc);
/**虚拟AT通道回调函数类型*/
typedef void (*cm_virt_at_cb)(void *param);
/**
* @brief AT虚拟通道
*
* @param [in] cb AT虚拟通道消息回调函数
*
* @return
* = 0 - \n
* < 0 -
*
* @details More details
*/
int32_t cm_virt_at_init(cm_virt_at_cb cb);
/**
* @brief AT虚拟通道发送数据
*
* @param [in] data
* @param [in] len
*
* @return
* >= 0 - \n
* < 0 -
*
* @details
*/
int32_t cm_virt_at_send(uint8_t * data,int32_t len);
/**
* @brief AT虚拟通道接收数据
*
* @param [in] data
* @param [in] len
*
* @return
* >= 0 - \n
* < 0 -
*
* @details More details
*/
int32_t cm_virt_at_get(unsigned char* data,int len);
/**
* @brief AT虚拟通道去初始化
*
* @return
*
*
* @details More details
*/
void cm_virt_at_deinit(void);
/**
* @brief
*
* @param [in] cb消息主动上报回调函数
*
* @return
*
*
*
* @details More details
*/
void cm_virt_at_urc_reg(cm_at_urc_callback cb);
/**
* @brief
*
* @param [in] atCmgs AT命令AT+CMGS=
* @param [in] msgData
* @param [in] simId SIM卡
*
* @return
* = 0 - \n
* < 0 -
*
* @details More details
*/
int cm_virt_at_sms_send(char* atCmgs, char* msgData, int simId);
/**
* @brief
*
* @param [in] smsNum
* @param [in] msgData
* @param [in] simId SIM卡
*
* @return
* = 0 - \n
* < 0 -
*
* @details More details
*/
int cm_virt_at_msg_memory(char* smsNum, char* msgData, int simId);
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif /* __CM_VIRT_AT_H__ */
/** @}*/