nt9856x/code/lib/source/sifar/code/include/sf_sim.h

298 lines
12 KiB
C
Executable File

#ifndef _SF_SIM_
#define _SF_SIM_
#include <sf_hal_ttyusb.h>
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
#define sf_4g_send_data sf_hal_ttyusb2_write
#define sf_4g_get_data sf_hal_ttyusb2_read
#define SF_NTP_SITE1 "time.windows.com"
#define SF_NTP_SITE2 "time.nist.gov"
#define APNGPRS_WUYUAN1 "America.bics"
#define APNGPRS_WUYUAN2 "bicsapn"
#define APN_4G_USCC "uscc"
#define APN_4G_ATT "nxtgenphone"
#define APN_4G_VERIZON "VZWINTERNET"
#define APN_4G_TMOBBILE "fast.t-mobile.com"
#define EG91 "EG91"
#define EG95 "EG95"
/** Return Result Check */
#define SF_CHECK_RETURN(ret, errcode) \
do { \
if (0 > ret) { \
printf("Error Code: [0x%08X]\n\n", errcode); \
return errcode; \
} \
} while (0)
/** Sifar Error Code Rule [--module[16bit]--|--error[16bit]--]
* module : module enum value [SF_MOD_E]
* error_code : error code in specified module, unique in module
**/
#define SF_ERR_ID(module, err) ((SINT32)(((module) << 16) | (err)))
typedef enum SF_SIM
{
SMS_SIM_INIT_READY= (unsigned char)0x01,
SMS_SIM_INIT_ATI,
SMS_SIM_INIT_IPREX,
SMS_SIM_INIT_ATCSUB,
SMS_SIM_INIT_ATCPIN,
SMS_SIM_INIT_ATCPIN1,
SMS_SIM_INIT_ATCPIN2,
SMS_SIM_INIT_CNVW,
SMS_SIM_INIT_ATW,
SMS_SIM_INIT_CICCID,
SMS_SIM_INIT_ATCIMI,
SMS_SIM_INIT_QICSGP,
SMS_SIM_INIT_QICSGP1,
SMS_SIM_INIT_CGREG,
SMS_SIM_INIT_COPS,
SMS_SIM_INIT_CNSMOD,
SMS_SIM_INIT_CPSI,
SMS_SIM_INIT_CSQ,
SMS_SIM_INIT_CCLK,
SMS_SIM_INIT_CNTP,
SMS_SIM_INIT_CNTPTO,
SMS_SIM_INIT_ATCNTP,
SMS_SIM_INIT_ATCNTP1,
SMS_SIM_INIT_NTP_CCLK,
SMS_SIM_INIT_QIDEACT,
SMS_SIM_INIT_CSCLK,
SMS_SIM_INIT_DTRUP,
SMS_SIM_INIT_EXIT,
SMS_SIM_INIT_CFUN,
SMS_SIM_INIT_CIMI,
}SF_SIM_E;
/** SF Module ID */
typedef enum SF_MOD_E {
SF_MOD_SIM = 1,
SF_MOD_GPS,
SF_MOD_FTP,
SF_MOD_SMS,
SF_MOD_4G,
SF_MOD_4G_SEND,
SF_MOD_OTA,
SF_MOD_MMS,
SF_MOD_SMTP,
SF_MOD_UPLOAD,
SF_MOD_HTTP,
SF_MOD_TCP,
SF_MOD_BUTT,
} SF_MOD_e;
typedef enum _SIM_ERR_CODE_E{
SIM_COM_SUCCEED = 0,
SIM_ERROR_NO_SIGNAL = 1,
SIM_ERROR_NO_SIMCARD = 2,
SIM_ERROR_AT_TIMEOUT = 3,
SIM_ERROR_UTC = 4,
SIM_ERROR_REG_NET = 5,
SIM_ERROR_APN = 6,
SIM_ERROR_IMEI = 7,
SIM_ERROR_PIN = 8,
SIM_ERROR_PIN_PUK = 9,
SIM_ERROR_NTP = 10,
SIM_ERROR_FAILURE = 11,
SIM_ERROR_MEGA = 12,
SIM_ERROR_BUTT,
}SIM_ERR_CODE_e;
#define SF_SIM_ERROR_NO_SIGNAL SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_NO_SIGNAL)
#define SF_SIM_ERROR_NO_SIMCARD SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_NO_SIMCARD)
#define SF_SIM_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_AT_TIMEOUT)
#define SF_SIM_ERROR_UTC SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_UTC)
#define SF_SIM_ERROR_REG_NET SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_REG_NET)
#define SF_SIM_ERROR_APN SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_APN)
#define SF_SIM_ERROR_IMEI SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_IMEI)
#define SF_SIM_ERROR_PIN SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_PIN)
#define SF_SIM_ERROR_PIN_PUK SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_PIN_PUK)
#define SF_SIM_ERROR_NTP SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_NTP)
#define SF_SIM_ERROR_FAILURE SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_FAILURE)
#define SF_SIM_ERROR_MEGA SF_ERR_ID(SF_MOD_SIM, SIM_ERROR_MEGA)
typedef enum _GPS_ERR_CODE_E{
GPS_ERROR_QIACT = 1,
GPS_ERROR_LOC_TIMEOUT,
GPS_ERROR_NTP,
GPS_ERROR_XD, /* AT+CGPSXD=0, recv fail*/
GPS_ERROR_SETTIME, /* AT+QGPSXTRATIME, recv fail*/
GPS_ERROR_AT_TIMEOUT,
GPS_ERROR_AT_ERROR,
GPS_ERROR_BUTT,
}GPS_ERR_CODE_e;
#define SF_GPS_ERROR_QIACT SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_QIACT)
#define SF_GPS_ERROR_LOC_TIMEOUT SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_LOC_TIMEOUT)
#define SF_GPS_ERROR_NTP SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_NTP)
#define SF_GPS_ERROR_XD SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_XD)
#define SF_GPS_ERROR_SETTIME SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_SETTIME)
#define SF_GPS_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_AT_TIMEOUT)
#define SF_GPS_ERROR_AT_ERROR SF_ERR_ID(SF_MOD_GPS, GPS_ERROR_AT_ERROR)
typedef enum _GPRS_MODULE_ERR_CODE_E{
GPRS_MODULE_ERROR_OPEN = 1,
GPRS_MODULE_ERROR_WRITE = 2,
GPRS_MODULE_ERROR_READ = 3,
GPRS_MODULE_ERROR_BUTT,
}GPRS_MODULE_ERR_CODE_e;
#define SF_GPRS_MODULE_ERROR_OPEN SF_ERR_ID(SF_MOD_4G, GPRS_MODULE_ERROR_OPEN)
#define SF_GPRS_MODULE_ERROR_WRITE SF_ERR_ID(SF_MOD_4G, GPRS_MODULE_ERROR_WRITE)
#define SF_GPRS_MODULE_ERROR_READ SF_ERR_ID(SF_MOD_4G, GPRS_MODULE_ERROR_READ)
typedef enum _SEND_ERR_CODE_E{
SEND_ERROR_SIGNAL = 1,
SEND_ERROR_CREAT_DP_FILE = 2,
SEND_ERROR_CREAT_GPS_FILE= 3,
SEND_ERROR_LOG_NOT_EXIST = 4,
SEND_ERROR_BATCH_PIC_NULL= 5,
SEND_ERROR_BATCH_PIC = 6,
SEND_ERROR_APN_NULL = 7,
SEND_ERROR_FTP_NULL = 8,
SEND_ERROR_REACH_MAX_NUM = 9,
SEND_ERROR_BUTT,
}SEND_ERR_CODE_e;
#define SF_SEND_ERROR_SIGNAL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_SIGNAL)
#define SF_SEND_ERROR_CREAT_DP_FILE SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_CREAT_DP_FILE)
#define SF_SEND_ERROR_CREAT_GPS_FILE SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_CREAT_GPS_FILE)
#define SF_SEND_ERROR_LOG_NOT_EXIST SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_LOG_NOT_EXIST)
#define SF_SEND_ERROR_BATCH_PIC_NULL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_BATCH_PIC_NULL)
#define SF_SEND_ERROR_BATCH_PIC SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_BATCH_PIC)
#define SF_SEND_ERROR_APN_NULL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_APN_NULL)
#define SF_SEND_ERROR_FTP_NULL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_FTP_NULL)
#define SF_SEND_ERROR_REACH_MAX_NUM SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_REACH_MAX_NUM)
typedef enum _OTA_ERR_CODE_E{
OTA_ERROR_QIACT = 1,
OTA_ERROR_VERTION = 2,
OTA_ERROR_VERSION_INVALID= 3,
OTA_ERROR_TIME_OUT = 4,
OTA_ERROR_BAT_LOW = 5,
OTA_ERROR_FTP_OPEN = 6,
OTA_ERROR_FTP_NLST = 7,
OTA_ERROR_FTP_GET = 8,
OTA_ERROR_FTP_QIDEACT = 9,
OTA_ERROR_FTP_QFSEEK = 10,
OTA_ERROR_FTP_CFGFORMAT = 11,
OTA_ERROR_FTP_QFREAD = 12,
OTA_ERROR_FTP_QFOTADL = 13,
OTA_ERROR_FTP_DOWNLOAD = 14,
OTA_ERROR_FTP_UPDATE = 15,
OTA_ERROR_QIDEACT = 16,
OTA_ERROR_BUTT,
}OTA_ERR_CODE_e;
#define SF_OTA_ERROR_QIACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_QIACT)
#define SF_OTA_ERROR_VERTION SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_VERTION)
#define SF_OTA_ERROR_VERTION_INVAlID SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_VERSION_INVALID)
#define SF_OTA_ERROR_TIME_OUT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_TIME_OUT)
#define SF_OTA_ERROR_BAT_LOW SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_BAT_LOW)
#define SF_OTA_ERROR_FTP_OPEN SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_OPEN)
#define SF_OTA_ERROR_FTP_NLST SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_NLST)
#define SF_OTA_ERROR_FTP_GET SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_GET)
#define SF_OTA_ERROR_FTP_QIDEACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QIDEACT)
#define SF_OTA_ERROR_FTP_QFSEEK SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFSEEK)
#define SF_OTA_ERROR_FTP_CFGFORMAT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_CFGFORMAT)
#define SF_OTA_ERROR_FTP_QFREAD SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFREAD)
#define SF_OTA_ERROR_FTP_QFOTADL SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFOTADL)
#define SF_OTA_ERROR_FTP_DOWNLOAD SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_DOWNLOAD)
#define SF_OTA_ERROR_FTP_UPDATE SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_UPDATE)
#define SF_OTA_ERROR_QIDEACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_QIDEACT)
typedef enum _MMS_ERR_CODE_E{
MMS_ERROR_AT_TIMEOUT = 1,
MMS_ERROR_AT_ERROR = 2,
MMS_ERROR_CREAT_PIC_FAIL = 3,
MMS_ERROR_PIC_TOO_LARGE = 4,
MMS_ERROR_SEND_FAIL = 5,
MMS_ERROR_EDIT_CLOSE_FAIL = 6,
MMS_ERROR_GET_FSIZE_FAIL = 7,
MMS_ERROR_QIDEACT,
MMS_ERROR_771,
MMS_ERROR_PDP,
}MMS_ERR_CODE_e;
#define SF_MMS_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_AT_TIMEOUT)
#define SF_MMS_ERROR_AT_ERROR SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_AT_ERROR)
#define SF_MMS_ERROR_CREAT_PIC_FAIL SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_CREAT_PIC_FAIL)
#define SF_MMS_ERROR_PIC_TOO_LARGE SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_PIC_TOO_LARGE)
#define SF_MMS_ERROR_SEND_FAIL SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_SEND_FAIL)
#define SF_MMS_ERROR_EDIT_CLOSE_FAIL SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_EDIT_CLOSE_FAIL)
#define SF_MMS_ERROR_GET_FSIZE_FAIL SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_GET_FSIZE_FAIL)
#define SF_MMS_ERROR_QIDEACT SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_QIDEACT)
#define SF_MMS_ERROR_771 SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_771)
#define SF_MMS_ERROR_PDP SF_ERR_ID(SF_MOD_MMS, MMS_ERROR_PDP)
typedef enum _SMTP_ERR_CODE_E{
SMTP_ERROR_AT_TIMEOUT = 1,
SMTP_ERROR_AT_ERROR = 2,
SMTP_ERROR_SSL_START = 3,
SMTP_ERROR_SEND_TIMEOUT = 4,
SMTP_ERROR_SEND_CLOSE = 5,
SMTP_ERROR_TRY_READ_3_TIMES = 6,
SMTP_ERROR_SD_POWER_RECYCLE = 7,
SMTP_ERROR_SEND = 8,
SMTP_ERROR_SEND_FAIL = 9,
SMTP_ERROR_SSL_STOP = 10,
SMTP_ERROR_CREAT_DR_FAIL = 11,
SMTP_ERROR_ACTIVE,
}SMTP_ERR_CODE_e;
#define SF_SMTP_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_AT_TIMEOUT)
#define SF_SMTP_ERROR_AT_ERROR SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_AT_ERROR)
#define SF_SMTP_ERROR_SSL_START SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SSL_START)
#define SF_SMTP_ERROR_SEND_TIMEOUT SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SEND_TIMEOUT)
#define SF_SMTP_ERROR_SEND_CLOSE SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SEND_CLOSE)
#define SF_SMTP_ERROR_TRY_READ_3_TIMES SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_TRY_READ_3_TIMES)
#define SF_SMTP_ERROR_SD_POWER_RECYCLE SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SD_POWER_RECYCLE)
#define SF_SMTP_ERROR_SEND SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SEND)
#define SF_SMTP_ERROR_SEND_FAIL SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SEND_FAIL)
#define SF_SMTP_ERROR_SSL_STOP SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_SSL_STOP)
#define SF_SMTP_ERROR_CREAT_DR_FAIL SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_CREAT_DR_FAIL)
#define SF_SMTP_ERROR_ACTIVE SF_ERR_ID(SF_MOD_SMTP, SMTP_ERROR_ACTIVE)
typedef enum _UPLOAD_ERR_CODE_E{
UPLOAD_ERROR_AT_TIMEOUT = 1,
UPLOAD_ERROR_AT_ERROR = 2,
UPLOAD_ERROR_OPEN_FAIL = 3,
UPLOAD_ERROR_GET_FSIZE_FAIL = 4,
UPLOAD_ERROR_DATA = 5,
UPLOAD_ERROR_RETRY = 6,
}UPLOAD_ERR_CODE_e;
#define SF_UPLOAD_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_AT_TIMEOUT)
#define SF_UPLOAD_ERROR_AT_ERROR SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_AT_ERROR)
#define SF_UPLOAD_ERROR_OPEN_FAIL SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_OPEN_FAIL)
#define SF_UPLOAD_ERROR_GET_FSIZE_FAIL SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_GET_FSIZE_FAIL)
#define SF_UPLOAD_ERROR_DATA SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_DATA)
#define SF_UPLOAD_ERROR_RETRY SF_ERR_ID(SF_MOD_UPLOAD, UPLOAD_ERROR_RETRY)
UINT32 sf_auto_operation_adjust(void);
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
#endif