X1UWaterWmbusISK/hardinterface/BC28/nb_driver_bc28.h

621 lines
25 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/************************************************************************************
* @Copyright (c) :(C)2017, Qindao ieslab Co., Ltd
* @FileName :nb_driver_bc25.h
* @Author :QDIES PLATFORM TEAM
* @Version :V1.0
* @Date :2020-8-13
* @Description :
************************************************************************************/
#ifndef __NB_DRIVER_BC28_H
#define __NB_DRIVER_BC28_H
#include "sys_config.h"
#ifdef NB_MODULE_BC28
#include "type.h"
#include <string.h>
/*----<2D><><EFBFBD>ú궨<C3BA><EAB6A8> AT_ORDER_SET <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ָ<EFBFBD>--*/
//#define M_5310_N 0 //M5310 <20><>ָͨ<CDA8>
//#define M_5310_A 1 //M5310A ָ<>
//#define AT_ORDER_SET M_5310_A
/*------Ϊ<>˼򻯳<CBBC><F2BBAFB3><EFBFBD> <20><>ʱû<CAB1>кϳɵ<CFB3>һ<EFBFBD><D2BB>----------*/
/*-------ģ<><C4A3><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ʾ<EFBFBD><CABE>ʽ---
*----IP_PORT IP<EFBFBD><EFBFBD>ʽ
*----DOMAIN_NAME <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
*----BOOTSTRAP_ENABLE <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ 0-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ 1-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
*----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ IP<EFBFBD><EFBFBD>183.230.40.40:5683 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:nbiotacc.heclouds.com:5683
*----<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ IP<EFBFBD><EFBFBD>183.230.40.39:5683 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>:nbiotbt.heclouds.com:5683
-----------------------------------*/
//#define IP_PORT_TYPE 0
//#define DOMAIN_NAME_TYPE 1
//#define SEVER_IP_TYPE DOMAIN_NAME_TYPE
//#define BOOTSTRAP_ENABLE 0
/*--------------------------------------*/
/*-----<2D><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>GSM<53><4D><EFBFBD><EFBFBD>Уʱ--------
* 1---<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ĭ<EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>
* 0---<EFBFBD>ر<EFBFBD>
*/
/*------------------------------------*/
/*-----<2D><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ACK--------
* 1---<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* 0---<EFBFBD>ر<EFBFBD> Ĭ<EFBFBD>Ϲر<EFBFBD>
*/
#define SEND_ACKID_ENABLE 0
/*------------------------------------*/
#if (HARDWARE_VERSION==0x14)//<2F><><EFBFBD>DZ<EFBFBD>
#define RSTN_NB_PORT (GpioPortF)
#define RSTN_NB_PIN (GpioPin0)
#define BAT_NB_PORT (GpioPortE)
#define BAT_NB_PIN (GpioPin4)
#define PWR_NB_PORT (GpioPortF)
#define PWR_NB_PIN (GpioPin1)
#define NB_PSM_WAKE_PORT (GpioPortA)
#define NB_PSM_WAKE_PIN (GpioPin2)
//PSM 1.8V<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC_IN5
#define PSM_CHECK_CHANNEL 5 //ADͨ<44><CDA8>
#define PSM_CHECK_NUM 3 //ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define PSM_CHECK_INTERVAL 100
#elif (HARDWARE_VERSION==0x18)//Բ<>DZ<EFBFBD>
#define RSTN_NB_PORT (GpioPortE)
#define RSTN_NB_PIN (GpioPin4)
#define BAT_NB_PORT (GpioPortE)
#define BAT_NB_PIN (GpioPin5)
#define PWR_NB_PORT (GpioPortE)
#define PWR_NB_PIN (GpioPin2)
#define NB_PSM_WAKE_PORT (GpioPortE)
#define NB_PSM_WAKE_PIN (GpioPin3)
#endif
#define RSTN_NB_LOW() Gpio_WriteOutputIO(RSTN_NB_PORT, RSTN_NB_PIN, GPIO_PIN_SET)
#define RSTN_NB_HIG() Gpio_WriteOutputIO(RSTN_NB_PORT, RSTN_NB_PIN, GPIO_PIN_RESET) //<2F>ߵ<EFBFBD>ƽ<EFBFBD><C6BD>λ
#define BAT_NB_DISABLE() Gpio_WriteOutputIO(BAT_NB_PORT, BAT_NB_PIN, GPIO_PIN_RESET)
#define BAT_NB_ENABLE() Gpio_WriteOutputIO(BAT_NB_PORT, BAT_NB_PIN, GPIO_PIN_SET)
#define PWR_NB_LOW() Gpio_WriteOutputIO(PWR_NB_PORT, PWR_NB_PIN, GPIO_PIN_SET)
#define PWR_NB_HIG() Gpio_WriteOutputIO(PWR_NB_PORT, PWR_NB_PIN, GPIO_PIN_RESET)
#define NB_PSM_WAKE_LOW() Gpio_WriteOutputIO(NB_PSM_WAKE_PORT , NB_PSM_WAKE_PIN, GPIO_PIN_SET)
#define NB_PSM_WAKE_HIG() Gpio_WriteOutputIO(NB_PSM_WAKE_PORT , NB_PSM_WAKE_PIN, GPIO_PIN_RESET) //<2F>ߵ<EFBFBD>ƽ<EFBFBD><C6BD>λ
//<2F><>ѯ<EFBFBD><D1AF>״̬<D7B4><CCAC>Ϣ
#define TASK_BUSY 0 //BUSY״̬
#define TASK_IDLE 1 //IDLE״̬
//<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NBIOT_ING 0xA2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NBIOT_ONLINE 0xA3 //NBIOT<4F><54><EFBFBD><EFBFBD>
#define NBIOT_SUCCESS 0xA4 //<2F><><EFBFBD>ͳɹ<CDB3>
#define NBIOT_ERROR 0xA5 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
//<2F><>ѯCSQ<53><51><EFBFBD><EFBFBD>
#define CSQ_ING 0xA5 //<2F><>ѯ<EFBFBD><D1AF>
#define CSQ_SUCCESS 0xA6 //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define CSQ_ERROR 0xA7 //<2F><>ѯʧ<D1AF><CAA7>
//<2F><>ѯSNR<4E><52><EFBFBD><EFBFBD>
#define ECL_SNR_ING 0xA5 //<2F><>ѯ<EFBFBD><D1AF>
#define ECL_SNR_SUCCESS 0xA6 //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define ECL_SNR_ERROR 0xA7 //<2F><>ѯʧ<D1AF><CAA7>
//<2F><>ȡUDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define QIRD_ING 0xAA //<2F><>ѯ<EFBFBD><D1AF>
#define QIRD_SUCCESS 0xAB //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define QIRD_ERROR 0xAC //<2F><>ѯʧ<D1AF><CAA7>
//<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define FRIMWARE_UPDATE_ING 0xA5 //<2F><>ѯ<EFBFBD><D1AF>
#define FRIMWARE_UPDATE_SUCCESS 0xA6 //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define FRIMWARE_UPDATE_ERROR 0xA7 //<2F><>ѯʧ<D1AF><CAA7>
//<2F><>ѯICCID<49><44><EFBFBD><EFBFBD>
#define ICCID_ING 0xA5 //<2F><>ѯ<EFBFBD><D1AF>
#define ICCID_SUCCESS 0xA6 //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define ICCID_ERROR 0xA7 //<2F><>ѯʧ<D1AF><CAA7>
#define ICCID_LEN 0x14 //<2F><><EFBFBD><EFBFBD>
//<2F><>ѯRSRP<52><50><EFBFBD><EFBFBD>
#define RSRP_ING 0xA5 //<2F><>ѯ<EFBFBD><D1AF>
#define RSRP_SUCCESS 0xA6 //<2F><>ѯ<EFBFBD>ɹ<EFBFBD>
#define RSRP_ERROR 0xA7 //<2F><>ѯʧ<D1AF><CAA7>
#define RSRP_LEN 0x14 //<2F><><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TASK_FAIL 0xA8
#define TASK_SUCCESS 0xA9
#define TASK_INIT 0xB0
//<2F><><EFBFBD><EFBFBD>ģʽ
#define ONLINE_MODE 0xB1 //NBIOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SEND_MODE 0xB2 //NBIOT<4F><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define READ_CSQ 0xB3 //NBIOT<4F><54><EFBFBD>ź<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define READ_ICCID 0xB4 //NBIOT<4F><54>CCID<49><44><EFBFBD><EFBFBD>
#define NO_NBIOT_TASK 0xB5 //û<><C3BB>NBIOT<4F><54><EFBFBD><EFBFBD>
#define READ_ECL_SNR 0xB6 //û<><C3BB>NBIOT<4F><54><EFBFBD><EFBFBD>
//NBIOT<4F><54><EFBFBD><EFBFBD>״̬
#define NB_ON_LINE 0x01 //<2F><><EFBFBD><EFBFBD>
#define NB_OFF_LINE 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CONNECT_ON_LINE 0x01
#define CONNECT_OFF_LINE 0x00
//<2F><><EFBFBD><EFBFBD>ģʽ
#define NBIOT_ALWAYS_ON_LINE_MODE 0x81 //һֱ<D2BB><D6B1><EFBFBD><EFBFBD>ģʽ
#define NBIOT_TIME_ON_LINE_MODE 0x80 //<2F>׶<EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ģʽ
//NBIOT<4F><54><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
#define NBIOT_OFFLINE_CLEAR 0x00 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
#define NBIOT_OFFLINE_PARA_CHANGE 0x01 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NBIOT_OFFLINE_STATION_CUT 0x02 //<2F><>վ<EFBFBD><D5BE><EFBFBD><EFBFBD>
#define NBIOT_OFFLINE_SPARE_STATION_START 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ
#define NBIOT_OFFLINE_SPARE_STATION_CLOSE 0x04 //<2F>رձ<D8B1>վ
#define NBIOT_OFFLINE_OPEN_APN 0x05 //<2F><><EFBFBD><EFBFBD>APN
//<2F><>״̬<D7B4><CCAC><EFBFBD>е<EFBFBD>״̬<D7B4><CCAC>
#define NBIOT_S_IDLE 0 //<2F><><EFBFBD><EFBFBD>״̬
#define NBIOT_POWER_INIT 1 //NBIOTģ<54><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
#define NBIOT_NET_OPEN 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//#define NBIOT_COAPorONENET_OPEN 3 //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD>
//#define NBIOT_COAPorONENET_DATA_SEND 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NBIOT_TCP_CLOSE 5 //<2F>ر<EFBFBD>TCP<43><50><EFBFBD><EFBFBD>
#define NBIOT_NET_CLOSE 6 //<2F>ر<EFBFBD>NBIOT
#define NBIOT_POWER_OFF 7 //ģ<><C4A3><EFBFBD>ػ<EFBFBD>
#define NBIOT_HEART_FRAME 8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡
#define NBIOT_READ_CSQ 9 //<2F><><EFBFBD>ź<EFBFBD>ֵ
#define NBIOT_READ_ICCID 10 //<2F><>ICCID
#define NBIOT_DATA_REV 11 //NBIOT<4F><54><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>
#define NBIOT_READ_ECL_SNR 12 //<2F><>ȡRSRP
#define NBIOT_READ_RCV 13
#define NBIOT_READ_DATE_TIME 14
#define NBIOT_READ_UDP_DATA 15
#define NBIOT_UDP_OPEN 16 //<2F><><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD>
#define UDP_DATA_SEND 17 //<2F><><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD>
#define NBIOT_TCP_OPEN 18 //<2F><><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD>
#define NBIOT_DATA_SEND 19 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NBIOT_REV_ACK 20
#define NBIOT_PSM_WAKEUP 21
#define NBIOT_PSM_SLEEP 22
//<2F><>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_START 0 //<2F><>ʼ״̬
#define S_POWER_ON_LOW 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD>-<2D><>-<2D><>
#define S_POWER_ON_WAIT 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD>-<2D><>-<2D><>
#define S_ATS 3 //<2F><><EFBFBD>ͳ<EFBFBD>ʼ<EFBFBD><CABC>ATָ<54><D6B8>
#define S_ATS_R 4 //<2F>жϳ<D0B6>ʼ<EFBFBD><CABC>ATָ<54><EFBFBD><EEB7B5>״̬
#define S_CHECK_CGATT 5 //Query whether network is activated
#define S_CHECK_CGATT_WAIT 6 //Check whether network is activated
#define S_CHECK_CEREG 7 //<2F><><EFBFBD>Ͳ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>Ϣ ATָ<54><D6B8>
#define S_CHECK_CEREG_WAIT 8 //<2F>жϲ<D0B6>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>Ϣ ATָ<54><D6B8>
#define S_CHECK_CSCON 9 //Query the signaling connection status
#define S_CHECK_CSCON_WAIT 10 //Check the signaling connection status
//<2F><><EFBFBD><EFBFBD>NBIOT<4F><54><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_CHECK_CIMI 1 //<2F><><EFBFBD>Ͳ<EFBFBD>ѯIMSI ATָ<54><D6B8>
#define S_CHECK_CIMI_WAIT 2 //<2F>жϲ<D0B6>ѯIMSI ATָ<54><EFBFBD><EEB7B5>״̬
#define S_AT_CGDCONT 3 //<2F><><EFBFBD><EFBFBD>APN
#define S_AT_CGDCONT_R 4 //<2F>ж<EFBFBD>APN<50>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>óɹ<C3B3>
//<2F><><EFBFBD><EFBFBD>PSM״̬<D7B4><CCAC>
typedef enum{
PSM_WKUPSTA_IDLE=0,
PSM_WKUPSTA_START,
PSM_WKUPSTA_EINT_LOW,
PSM_WKUPSTA_EINT_HIGH,
PSM_WKUPSTA_QLWEVTIND6,
PSM_WKUPSTA_QSCLK0,
PSM_WKUPSTA_QSCLK0_R,
PSM_WKUPSTA_NCDP_CK,
PSM_WKUPSTA_NCDP_CK_R,
PSM_WKUPSTA_NPING,
PSM_WKUPSTA_NPING_R,
PSM_WKUPSTA_NUESTATS,
PSM_WKUPSTA_NUESTATS_R,
PSM_WKUPSTA_UPDATE,
PSM_WKUPSTA_UPDATE_R,
PSM_WKUPSTA_WAKE_SUCCESS,
PSM_WKUPSTA_WAKE_FAIL,
}TYP_PSM_WAKEUP_STATE;
//PSM<53><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
typedef enum{
PSM_SLPSTA_IDLE=0,
PSM_SLPSTA_START,
PSM_SLPSTA_CPSMS1_R,
PSM_SLPSTA_WAIT,
PSM_CHECK_START,
PSM_CHECK_WAIT,
}TYP_PSM_SLEEP_STATE;
//PSM״̬<D7B4><CCAC><EFBFBD><EFBFBD>
typedef enum{
PSM_STATE_OUT=0,
PSM_STATE_WAKE,
PSM_STATE_SLEEP,
}TYP_PSM_STATE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
#define S_AT_NSORF 1 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#define S_AT_NSORF_R 2 //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݳɹ<DDB3>
//<2F>ر<EFBFBD>TCP/IP״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_AT_NSOCL 1 //<2F>ر<EFBFBD>TCP/IP<49><50><EFBFBD><EFBFBD>
#define S_AT_NSOCL_R 2 //<2F>ж<EFBFBD>TCP/IP<49>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//<2F>ر<EFBFBD>NBIOT<4F><54><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_POWER_OFF_START 0
#define S_AT_NETCLOSE 1 //<2F>ر<EFBFBD>NBIOT<4F><54><EFBFBD><EFBFBD>
#define S_AT_NETCLOSE_R 2 //<2F>ж<EFBFBD>NBIOT<4F><54><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
#define S_AT_QPOWD 3
#define S_AT_QPOWD_R 4
#define S_AT_CFUN0 7
#define S_AT_CFUN0_R 8
#define S_AT_NCSEARFCN 9
#define S_AT_NCSEARFCN_R 10
#define S_AT_CFUN1 11
#define S_AT_CFUN1_R 12
#define S_POWER_OFF 13
#define S_POWER_OFF_WAIT 14
#define S_AT_MIPLCLOSE 15 //<2F>ر<EFBFBD>onenet<65><74><EFBFBD><EFBFBD>
#define S_AT_MIPLCLOSE_R 16 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
#define S_AT_MIPLDELOBJ 17 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
#define S_AT_MIPLDELOBJ_R 18 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
#define S_AT_MIPLDEL 19 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
#define S_AT_MIPLDEL_R 20 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//<2F>ػ<EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_AT_COPS 24 //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ɹ<EFBFBD>
#define S_AT_COPS_R 25 //<2F><><EFBFBD>͹ػ<CDB9>ָ<EFBFBD><D6B8>
//#define S_POWER_OFF 26
//#define S_POWER_OFF_WAIT 27
//<2F><>ȡ<EFBFBD>ź<EFBFBD>ֵ״̬<D7B4><CCAC>
#define S_AT_CSQ 28
#define S_AT_CSQ_R 29
#define CSQ_READ_NUM 4 //<2F>ź<EFBFBD>ֵ<EFBFBD><D6B5>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
//<2F><>ȡECL<43><4C>SNR
#define S_AT_ECL 30
#define S_AT_ECL_R 31
//<2F><>ȡUDP<44><50><EFBFBD><EFBFBD>
#define S_AT_QIRD 1
#define S_AT_QIRD_R 2
//<2F><>վ״̬
#define OPEN_SPARE_STATION 0x01
#define CLOSE_SPARE_STATION 0x00
//ͨ<><CDA8>ģʽѡ<CABD><D1A1>
#define SIM_CARD_TELECOM 0x00 //<2F><><EFBFBD>ſ<EFBFBD>
#define SIM_CARD_MOBILE 0X01 //<2F>ƶ<EFBFBD><C6B6><EFBFBD>
//
//OnenetConnectMachineʹ<65>õ<EFBFBD>״̬
#define S_ONENET_CONNECT_IDLE 0
#define S_ONENET_CONNECT_START 1
#define S_ONENET_MIPLCONFIG 2
#define S_ONENET_MIPLCONFIG_R 3
#define S_ONENET_MIPLCONFIG_CK 4
#define S_ONENET_MIPLCONFIG_CK_R 5
#define S_ONENET_MIPLCREATE 6
#define S_ONENET_MIPLCREATE_R 7
#define S_ONENET_MIPLADDOBJ 8
#define S_ONENET_MIPLADDOBJ_R 9
#define S_ONENET_MIPLOPEN 10
#define S_ONENET_MIPLOPEN_R 11
#define S_ONENET_MIPLDISCOVER 12
#define S_ONENET_MIPLDISCOVER_R 13
//#define S_ONENET_ECL 14
//#define S_ONENET_ECL_R 15
//#define S_ONENET_CCLK 16
//#define S_ONENET_CCLK_R 17
//#define S_ONENET_Wait 18
//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>Э<EFBFBD><D0AD>
#define NBIOT_CONNECT_COAP 0
#define NBIOT_CONNECT_UDP1 1
#define NBIOT_CONNECT_UDP2 2
//******************************* <20><EFBFBD><EFBFBD><E5B6A8>*************************************
//<2F><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
#ifndef APN_SIZE
#define APN_SIZE 32
#endif
typedef struct
{
u8 *work_mode; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
u8 *ip; //IP
u8 *spare_ip; //<2F><><EFBFBD><EFBFBD>IP
u8 *port; //<2F>˿ں<CBBF>
u8 *spare_port; //<2F><><EFBFBD>ö˿ں<CBBF>
u8 *apn; //APN
} CFIG_PARA;
//NBIOT<4F><54>Ϣ
typedef union
{
struct
{
u8 para_change : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
u8 station_close : 1; //<2F><>վ<EFBFBD><D5BE><EFBFBD><EFBFBD>
u8 open_spare_station : 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ
u8 close_spare_station : 1; //<2F>رձ<D8B1>վ
u8 apn_open : 1; //APN<50><4E><EFBFBD><EFBFBD>
u8 rev_data : 1; //<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
} s;
u8 info;
} NBIOT_MSG;
//NBIOT<4F><54><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
typedef struct
{
CFIG_PARA cfig_para; //<2F><><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
u8 csq; //<2F>ź<EFBFBD>ֵ
u8 net_state; //<2F><><EFBFBD><EFBFBD>״̬
u8 offline_reason; //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
u8 Telecom; //<2F><>Ӫ<EFBFBD><D3AA>
u8 spare_station; //<2F><>վ
u8 coap_state;
u8 udp1_state;
u8 udp2_state;
char imei[16];//IMEI<45><49><EFBFBD><EFBFBD>Ϊ15 BIT<49><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>һ<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>\0<><30>
char imsi[16];//IMSI<53><49><EFBFBD><EFBFBD>Ϊ15 BIT<49><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>һ<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>\0<><30>
char iccid[21];//ICCIDΪ20λ <20><><EFBFBD>ֻ<EFBFBD><D6BB>ߴ<EFBFBD>д<EFBFBD>ַ<EFBFBD>
} NBIOT_PARA;
//<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
u8 *state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>msg
u8 *buf; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
u16 len; //<2F><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
} NBIOT_SEND_DATA;
//******************************* <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>***************************************
extern NBIOT_PARA Nbiot_Para;
extern NBIOT_MSG Nbiot_Msg;
//******************************* <20>ⲿ<EFBFBD>ӿں<D3BF><DABA><EFBFBD>***********************************
void NbiotOnlineTask(u8 *state);
void NbiotSendTask(u8 *addr, u16 len, u8 send_type,u8 *state);
void NbiotUdpOpenTask(void);
void NbiotReadECLSNRTask(u8 *state);
void NB_NetConnectStart(unsigned char* temp_ip, u16 temp_port, u8 connect_type);
u8 ConncetIfOnline(u8 connect_type);
void StartNbiotSendData(void);
u32 sys_get_net_state(void);
void sys_set_net_state(u8 state,u8 data);
u16 get_Send_AckID(void);
u8 NbiotIfIdle(void);
u8 NbiotIfOnline(void);
u8 NbiotIfSleep(void);
void NbiotPreSleep(void);
void NbiotWakeSleep(void);
void NbiotGetCcidTask(u8 **ccid, u8 *state);
void NbiotMainMachine(void);
u8 If_NB_Poweron(void);
void StartPowerOffTask(void);
void set_ip_port(void);
void NbForcePowerOff(void);
u8 GetNbiotSendType(void);
//u8 UdpIfOnline(void);
TYP_PSM_STATE getPsmState(void);
u8 checkPsmEnterMsg(void);
void clearPsmEnterMsg(void);
void NbiotPsmWakeupTask(void);
void NbiotPsmSleepTask(void);
void NbiotPsmCheckTask(void);
//<2F><>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
#define S_INIT_POWER_ON 0 //ģ<><C4A3><EFBFBD>͵<EFBFBD>
#define S_INIT_RESET_LOW 1 //<2F><>ʼ<EFBFBD><CABC>λģ<CEBB><C4A3>
#define S_INIT_RESET_HIGH 2 //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD>λ
#define S_INIT_POWER_ON_WAIT 3 //<2F>ȴ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
#define S_INIT_ATS 4 //<2F><><EFBFBD>ͳ<EFBFBD>ʼ<EFBFBD><CABC>ATָ<54><D6B8>
#define S_INIT_ATS_R 5 //<2F>жϳ<D0B6>ʼ<EFBFBD><CABC>ATָ<54><EFBFBD><EEB7B5>״̬
#define S_INIT_CMEE 6 //<2F><><EFBFBD><EFBFBD>ERROR<4F><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
#define S_INIT_CMEE_R 7 //<2F><><EFBFBD><EFBFBD>ERROR<4F><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>״̬
#define S_TCP_CPSMS 8 //<2F>ر<EFBFBD>PSMģʽ
#define S_TCP_CPSMS_R 9
#define S_TCP_NPTWEDRXS 10 //<2F>ر<EFBFBD>eDRXģʽ
#define S_TCP_NPTWEDRXS_R 11
#define S_INIT_ASK_IMEI 12 //<2F><>ѯIMEI
#define S_INIT_ASK_IMEI_R 13 //<2F><>ѯIMEI<45><49><EFBFBD><EFBFBD>״̬
#define S_INIT_ASK_CIMI 14 //<2F><>ѯCIMI
#define S_INIT_ASK_CIMI_R 15 //<2F><>ѯCIMI<4D><49><EFBFBD><EFBFBD>״̬
#define S_INIT_ASK_CSQ 16 //<2F><>ѯCSQ
#define S_INIT_ASK_CSQ_R 17 //<2F><>ѯCSQ<53><51><EFBFBD><EFBFBD>״̬
#define S_INIT_ASK_CEREG 18 //<2F><>ѯCEREG
#define S_INIT_ASK_CEREG_R 19 //<2F><>ѯCEREG<45><47><EFBFBD><EFBFBD>״̬
#define S_INIT_ASK_CGATT 20 //<2F><>ѯCGATT
#define S_INIT_ASK_CGATT_R 21 //<2F><>ѯCGATT<54><54><EFBFBD><EFBFBD>״̬
//#define S_INIT_AT_CCLK 22 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//#define S_INIT_AT_CCLK_R 23 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B7B5>״̬
#define S_INIT_ASK_ICCID 24 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID
#define S_INIT_ASK_ICCID_R 25 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID<49><44><EFBFBD><EFBFBD>״̬
#define S_INIT_AT_CGDCONT 26 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID
#define S_INIT_AT_CGDCONT_R 27 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID<49><44><EFBFBD><EFBFBD>״̬
//#define S_INIT_AT_CFUN0 28 //<2F><><EFBFBD><EFBFBD>Ƶ
//#define S_INIT_AT_CFUN0_R 29 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>״̬
//#define S_INIT_AT_CFUN1 30 //<2F><><EFBFBD><EFBFBD>Ƶ
//#define S_INIT_AT_CFUN1_R 31 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>״̬
#define S_INIT_AT_READ_APN 32 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID
#define S_INIT_AT_READ_APN_R 33 //<2F><>ѯSIM<49><4D><EFBFBD><EFBFBD>ICCID<49><44><EFBFBD><EFBFBD>״̬
#define S_INIT_PWRKEY_LOW 34 //<2F><>ʼ<EFBFBD><CABC>λģ<CEBB><C4A3>
#define S_INIT_PWRKEY_HIGH 35 //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD>λ
#define S_INIT_SET_NCFG 36 //<2F><><EFBFBD><EFBFBD>lifetime ƽ̨<C6BD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define S_INIT_SET_NCFG_R 37 //<2F><><EFBFBD><EFBFBD>lifetime ƽ̨<C6BD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define S_INIT_ASK_NUESTATS 38
#define S_INIT_ASK_NUESTATS_R 39
#define S_INIT_ASK_CCLK 40
#define S_INIT_ASK_CCLK_R 41
//TCP<43><50><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
//#define S_COAP_CONNECT_START 0 //
//#define S_TCP_CONNECT_DEL 1 //ɾ<><C9BE><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//#define S_TCP_CONNECT_START 0 //ģ<><C4A3><EFBFBD>͵<EFBFBD>
//#define S_UDP_CONNECT_START 0
#define SEND_TYPE_COAP 0
#define SEND_TYPE_UDP1 1
#define SEND_TYPE_UDP2 2
#define SEND_TYPE_TCP1 3
//CoapConnectMachine
#define S_COAP_CONNECT_START 0
#define S_COAP_NCDP 1
#define S_COAP_NCDP_R 2
#define S_COAP_NCDP_CK 3
#define S_COAP_NCDP_CK_R 4
//#define S_COAP_Wait 5
//#define S_COAP_ECL 6 //<2F><>ȡECL<43><4C>SNR
//#define S_COAP_ECL_R 7
//#define S_COAP_CCLK 8 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//#define S_COAP_CCLK_R 9 //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B7B5>״̬
////UdpConnectMachine
//#define S_UDP_CONNECT_START 0
//#define S_UDP_QIOPEN 1
//#define S_UDP_QIOPEN_R 2
//#define S_UDP_NCDP_CK 3
//#define S_UDP_NCDP_CK_R 4
//#define S_UDP_CCLK 5
//#define S_UDP_CCLK_R 6
//#define S_UDP_NUESTATS 7
//#define S_UDP_NUESTATS_R 8
//#define S_UDP_Wait 9
//UDP<44><50><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
typedef enum{
S_UDP_CONNECT_IDLE=0,
S_UDP_CONNECT_START,
S_UDP_CONNECT_NSOCR,
S_UDP_CONNECT_NSOCR_R,
S_UDP_CONNECT_NSONMI,
S_UDP_CONNECT_NSONMI_R
}TYP_UDP_CONNECT;
//UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
typedef enum{
S_UDP_SEND_IDLE=0,
S_UDP_SEND_START,
S_UDP_SEND_NSOFT,
S_UDP_SEND_NSOFT_R
}TYP_UDP_SEND;
//onenetָ<74>
#define S_TCP_MIPLCONFIG 1
#define S_TCP_MIPLCONFIG_R 2
#define S_TCP_MIPLCREATE 3 //<2F><><EFBFBD>õ<EFBFBD>¼<EFBFBD><C2BC>Ϣ
#define S_TCP_MIPLCREATE_R 4 //ɾ<><C9BE><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>״̬
#define S_TCP_MIPLADDOBJ 5 //<2F><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
#define S_TCP_MIPLADDOBJ_R 6 //<2F><><EFBFBD>ƶ<EFBFBD><C6B6>󷵻<EFBFBD>״̬
#define S_TCP_MIPLDISCOVERRSP 7 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
#define S_TCP_MIPLDISCOVERRSP_R 8 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>״̬
#define S_TCP_MIPLOPEN 9
#define S_TCP_MIPLOPEN_R 10
#define S_TCP_WAIT_DISCOVER 11
#define S_TCP_ACK_DISCOVER 12
//
#define S_TCP_CONNECT_MIPLCONF 12 //<2F><><EFBFBD>õ<EFBFBD>¼<EFBFBD><C2BC>Ϣ
#define S_TCP_CONNECT_MIPLCONF_R 13 //<2F><><EFBFBD>õ<EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>״̬
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
#define S_SEND_START 0
#define S_SEND_ACK 1
#define S_SEND_ACK_R 2
#define S_SEND_DATA 3
#define S_SEND_DATA_R 4
//ONENET Ӧ<><D3A6>MIPLWRITE״̬<D7B4><CCAC>
#define S_ONENET_ACKREV_IDLE 0
#define S_ONENET_ACKREV_START 1
#define S_ONENET_REPLY_REV_ACKID 2 //Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
#define S_ONENET_REPLY_REV_ACKID_R 3 //Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>--<2D>ȴ<EFBFBD><C8B4><EFBFBD>Ӧ*/
//<2F>ر<EFBFBD>onenet<65><74><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC>
//#define S_AT_MIPLCLOSE 1 //<2F>ر<EFBFBD>onenet<65><74><EFBFBD><EFBFBD>
//#define S_AT_MIPLCLOSE_R 2 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//#define S_AT_MIPLDELOBJ 3 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//#define S_AT_MIPLDELOBJ_R 4 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//#define S_AT_MIPLDEL 5 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//#define S_AT_MIPLDEL_R 6 //<2F>ж<EFBFBD>onenet<65><74><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>رճɹ<D5B3>
//#define S_AT_CFUN0 7
//#define S_AT_CFUN0_R 8
//#define S_AT_NCSEARFCN 9
//#define S_AT_NCSEARFCN_R 10
//#define S_AT_CFUN1 11
//#define S_AT_CFUN1_R 12
//#define S_POWER_OFF 13
//#define S_POWER_OFF_WAIT 14
#define NUM_AT_ERROR 5 //5
#define NUM_AT_CMEE_ERROR 5 //5
#define NUM_AT_CIMI_ERROR 5 //5
#define NUM_AT_IMEI_ERROR 5 //5
#define NUM_AT_ICCID_ERROR 5 //5
#define NUM_AT_CSQ_ERROR 5
#define NUM_AT_CEREG_ERROR 15//2x15=30<33><30>
//#define NUM_AT_CGATT_ERROR 50//100s //20
#define NUM_AT_CCLK_ERROR 2
#define NUM_AT_NCDP_ERROR 1
#define NUM_AT_NCDP_CK_ERROR 1
#define NUM_AT_NNMI_ERROR 5 //5
#define NUM_AT_CPSMS_ERROR 5 //5
#define NUM_AT_MIPLDEL_ERROR 5 //5
#define NUM_AT_MIPLCONF_ERROR 2//5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //5
#define NUM_AT_MIPLCREATE_ERROR 5 //5
#define NUM_AT_MIPLADDOBJ_ERROR 5 //5
#define NUM_AT_MIPLDISCOVERRSP_ERROR 2//5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NUM_AT_ECL_ERROR 2 //5
#define NUM_AT_MIPLNOTIFY_ERROR 5 //5
#define NUM_AT_MIPLOPEN_ERROR 2//5 //5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2<CEAA><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //5
#define NUM_AT_MIPLWRITE_ERROR 5 //5
#define NUM_AT_MIPLCLOSE_ERROR 5 //5
#define NUM_M5310_RESTART 5 //5
#define NUM_AT_CFUN_ERROR 3 //5
#define NUM_AT_NCSEARFCN_ERROR 3 //5
#define NUM_AT_NPTWEDRXS_ERROR 3 //5
#define NUM_AT_NSONMI_ERROR 3 //5
#define AT_COMMAND_SEND_INTERVAL_TIME 300 //mS
#define AT_COMMAND_RECEIVE_WAIT_TIME 1000 //mS
#endif
#endif