|
3楼
楼主 |
发表于 2011-11-9 17:50:39
|
只看该作者
贴上代码:
typedef enum
{
AT_STATE_IDLE=0,
AT_STATE_CHECK_GSM,
AT_STATE_START_GSM,
AT_STATE_START_GSM_DELAY,
AT_STATE_CLOSE_GSM,
AT_STATE_ATE0,
AT_STATE_AT,
AT_STATE_CMGF,
AT_STATE_CREG,
//AT_STATE_CIPCLOSE,
AT_STATE_START,
AT_STATE_CHECKAT,
AT_STATE_IPSTART,
AT_STATE_IPSTART_1,
AT_STATE_IPSTART_2,
AT_STATE_IPSEND,
AT_STATE_IPSEND_DATA,
AT_STATE_IPSEND_1,
AT_STATE_IPSEND_DATA_1,
AT_STATE_IPSEND_2,
AT_STATE_IPSEND_DATA_2,
AT_STATE_IPCLOSE,
AT_STATE_IPCLOSE_1,
AT_STATE_IPCLOSE_2,
AT_STATE_MSG_TEXT,
AT_STATE_MSG_PDU,
AT_STATE_MSG_SEND,
AT_STATE_MSG_SEND_DATA,
AT_STATE_CIPSEND_WAITSTART,
AT_STATE_CIPSEND_SEND,
AT_STATE_CIPSEND_SENDOVER,
AT_STATE_READ_MSG,
AT_STATE_HANDLE_MSG,
AT_STATE_DELETE_MSG,
AT_STATE_SLEEP,
AT_STATE_WAKEUP,
AT_STATE_CIPMUX,
AT_STATE_QUERY_IPMUX,
AT_STATE_CSTT,
AT_STATE_CIICR,
AT_STATE_CIFSR,
AT_STATE_CSQ,
AT_STATE_WAITTIME,
}at_sta_type;
extern unsigned char m_Receive_MSG_Flag;
typedef enum{
IDLE_MSG=0,
SEND_MSG,
RECEIVE_MSG,
READ_MSG,
READING_MSG,
READ_MSG_OVER,
DELETE_MSG,
}msg_sta_type;
extern unsigned char m_Receive_Data_Finish_Flag;
typedef enum
{
AT_NO_RESULT,
AT_INPUT,
AT_SUCCEED,
AT_FAILED,
}at_result;
typedef struct
{
at_sta_type AT_STA;
at_sta_type AT_STA_PRE;
at_sta_type AT_STA_NEXT;
at_sta_type AT_STA_FAIL;
at_sta_type AT_STA_SUCCESS;
at_result AT_RESULT;
uint16_t Wait_Time;
unsigned char Time_Out_Flag;
unsigned char m_MSG_Index;
msg_sta_type m_Receive_MSG_Flag;
}state_mechine;
#define No_Wait_Time 0
#define Wait_Time_20ms 1
#define Wait_Time_40ms 2
#define Wait_Time_60ms 3
#define Wait_Time_80ms 4
#define Wait_Time_100ms 5
#define Wait_Time_200ms 10
#define Wait_Time_400ms 20
#define Wait_Time_500ms 25
#define Wait_Time_800ms 40
#define Wait_Time_600ms 30
#define Wait_Time_1second 50
#define Wait_Time_2second 100
#define Wait_Time_3second 150
#define Wait_Time_4second 200
#define Wait_Time_5second 250
#define Wait_Time_6second 300
#define Wait_Time_7second 350
#define Wait_Time_8second 400
#define Wait_Time_9second 450
#define Wait_Time_10second 500
#define Wait_Time_11second 550
#define Wait_Time_12second 600
#define Wait_Time_13second 650
#define Wait_Time_14second 700
#define Wait_Time_15second 750
#define INPUT_Length 4
#define OK_Length 2
#define ERROR_Length 5
#define CONNECT_OK_Length 10//and CREG_Length
#define CONNECT_FAIL_Length 12
#define ALREADY_CONNECT_Length 15
#define ERROR_ALREADY_CONNECT_Length 24
#define ERROR_CONNECT_OK_Length 19
#define ERROR_CONNECT_FAIL_Length 21
#define SEND_OK_Length 7
#define SEND_OK_AND_REC_DATA_Length 20//大于20个;
#define SEND_FAIL_Length 9
#define RECEIVE_MSG_1 13
#define RECEIVE_MSG_2 14
#define MUTI_CONNECT_OK 13
#define MUTI_ALREADY_CONNECT 18
#define MUTI_CONNECT_FAIL_Length 15
#define MUTI_ERROR_ALREADY_CONNECT_Length 30
#define MUTI_ERROR_CONNECT_OK_Length 22
#define MUTI_ERROR_CONNECT_FAIL_Length 24
#define FIRST_COMMA 1
#define SECOND_COMMA 2
#define THIRD_COMMA 3
#define FOURTH_COMMA 4
#define FIFTH_COMMA 5
#define SIXTH_COMMA 6
#define SEVENTH_COMMA 7
#define EIGHTH_COMMA 8
#define NINTH_COMMA 9
#define MSG_1_CONFIG_ADDR 0x1900
#define MSG_3_CONFIG_ADDR_1 0x1880
#define MSG_3_CONFIG_ADDR_2 0x1900
#define MSG_4_CONFIG_ADDR 0x1880
#define MSG_5_CONFIG_ADDR 0x1880
#define MSG_D_CONFIG_ADDR 0x1900
extern state_mechine STATE_MECHINE;
unsigned char Get_Length(unsigned char *ptr);
void GSM_init(void);
void AT_STATE_MECHINE(void);
void Uart_Handle(void); |
|