AtCmdCommon/Inc/AtCmdCommonProtected.h

64 lines
2.5 KiB
C

//
// 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