// // Created by xemon on 07.09.22. // #ifndef GSMCOMMONAT_GSMCOMMONATPRIVATE_H #define GSMCOMMONAT_GSMCOMMONATPRIVATE_H #include "AtCmdCommon.h" #include "AsciiStringAssmeblingUtils.h" void AtCmdPrepare(tAtCmd *env); #define AtCmdSendStatic(env, STR) SerialPortTransmit((env)->io, (uint8_t *) (STR), sizeof (STR)-1, (env)->stdTxTimeout) #define AtCmdSend(env, STR, LEN) SerialPortTransmit((env)->io, (uint8_t *) (STR), LEN, (env)->stdTxTimeout) //tx buffer operations #define AtCmdTxPrint(ENV, FMT, ...) debug_printf((ENV)->io, FMT, ##__VA_ARGS__); #define AtCmdTxClear(env) vAsciiStringClean((env)->txBuffer.data, &(env)->txBuffer.len) #define AtCmdTxAdd(env, STR, LEN) vAsciiStringAdd((env)->txBuffer.data, &(env)->txBuffer.len, STR,LEN) #define AtCmdTxAddStatic(env, STR) vAsciiStringAddStatic((env)->txBuffer.data, &(env)->txBuffer.len, STR) #define AtCmdTxAddByteHex(env, BYTE) vAsciiStringAddByteAsHex((env)->txBuffer.data, &(env)->txBuffer.len, BYTE) #define AtCmdTxAddChar(env, CHAR) vAsciiStringAddChar((env)->txBuffer.data, &(env)->txBuffer.len, CHAR) #define AtCmdTxAddDecimalInt(env, INT, DIGITS) vAsciiStringAddDecimalInt((env)->txBuffer.data, &(env)->txBuffer.len, INT,DIGITS) #define AtCmdTxAddDecimalIntWithLimit(env, INT, DIGITS) vAsciiStringAddDecimalIntWithLimit((env)->txBuffer.data, &(env)->txBuffer.len, INT,DIGITS) void AtCmdTxSendLn(tAtCmd *env); //rx methods #define AtCmdRxClear(env) vAsciiStringClean((env)->rxBuffer.data, &(env)->rxBuffer.len) #define AtCmdRxReadRAW(ENV, BUF, LEN, TIMEOUT) SerialPortReceive((env)->io, BUF, LEN, TIMEOUT) bool AtBufferBeginWith(tAtBuffer *env, char *str, size_t strLen); #define AtBufferBeginWithStatic(ENV, STR) AtBufferBeginWith(ENV,STR,sizeof(STR)-1) bool AtCmdRxBeginWith(tAtCmd *env, char *str, size_t strLen); #define AtCmdRxBeginWithStatic(ENV, STR) AtCmdRxBeginWith(ENV,STR,sizeof(STR)-1) bool AtCmdRxIsCompleteLine(tAtCmd *env); //complex rx methods AtCommandResult AtCmdReceiveNextLine(tAtCmd *env, uint16_t timeout); AtCommandResult AtCmdOkErrAnswer(tAtCmd *env, uint16_t timeout); AtCommandResult AtCmdReceiveNextChar(tAtCmd *env, uint16_t timeout); AtCommandResult AtCmdReceiveChar(tAtCmd *env, uint16_t timeout); AtCommandResult AtGsmTelitLe910_SIMCardDetect(tAtCmd *env); extern const char AT_ESC_STR[2]; //if not ok return - если не все хорошо возвращаем результат от FUNC #define AT_INOKR(FUNC) { AtCommandResult result = FUNC; if(result != AT_OK) return result; } #endif //GSMCOMMONAT_GSMCOMMONATPRIVATE_H