/** * @brief Poll AT command response. * @return Size of AT command response. * @note RAK_RECIEVE_DATA_CMD is excluded in the polling. */ int rakmgr_sockdata_poll_at_resp(void) { rakmgr_sockdata_poll(); do { const uint8_t *pat_in_src = NULL; const uint8_t *src = uCmdRspFrame.uCmdRspBuf; const uint8_t *src_end = uCmdRspFrame.uCmdRspBuf + uCmdRspFrame_len; const uint8_t *pat = RAK_END; const uint8_t *pat_end = pat + strlen(RAK_END); unsigned disp = 0; if (uCmdRspFrame_len > 2 && strncmp((const char *) uCmdRspFrame.uCmdRspBuf, "OK", 2) == 0) { disp = 2; } else if (uCmdRspFrame_len > 5 && strncmp((const char *) uCmdRspFrame.uCmdRspBuf, "ERROR", 5) == 0) { disp = 5; } // Exclude RAK_RECIEVE_DATA_CMD if (disp) { pat_in_src = find_pat(uCmdRspFrame.uCmdRspBuf + disp, src_end, pat, pat_end); if (pat_in_src) { return pat_in_src - src + (pat_end - pat); } } } while (0); return 0; }
int main() { char text[] = "BACDGABCDA"; char pat[] = "ABCD"; find_pat(text,pat); return 0; }