Home | History | Annotate | Download | only in ag

Lines Matching full:p_cb

45 void bta_ag_at_init(tBTA_AG_AT_CB* p_cb) {
46 p_cb->p_cmd_buf = NULL;
47 p_cb->cmd_pos = 0;
62 void bta_ag_at_reinit(tBTA_AG_AT_CB* p_cb) {
63 osi_free_and_reset((void**)&p_cb->p_cmd_buf);
64 p_cb->cmd_pos = 0;
79 void bta_ag_process_at(tBTA_AG_AT_CB* p_cb) {
85 for (idx = 0; p_cb->p_at_tbl[idx].p_cmd[0] != 0; idx++) {
86 if (!utl_strucmp(p_cb->p_at_tbl[idx].p_cmd, p_cb->p_cmd_buf)) {
92 if (p_cb->p_at_tbl[idx].p_cmd[0] != 0) {
94 p_arg = p_cb->p_cmd_buf + strlen(p_cb->p_at_tbl[idx].p_cmd);
124 if ((arg_type & p_cb->p_at_tbl[idx].arg_type) != 0) {
127 p_cb->p_at_tbl[idx].fmt == BTA_AG_AT_INT) {
129 if (int_arg < (int16_t)p_cb->p_at_tbl[idx].min ||
130 int_arg > (int16_t)p_cb->p_at_tbl[idx].max) {
132 (*p_cb->p_err_cback)(p_cb->p_user, false, NULL);
134 (*p_cb->p_cmd_cback)(p_cb->p_user, p_cb->p_at_tbl[idx].command_id,
138 (*p_cb->p_cmd_cback)(p_cb->p_user, p_cb->p_at_tbl[idx].command_id,
144 (*p_cb->p_err_cback)(p_cb->p_user, false, NULL);
149 (*p_cb->p_err_cback)(p_cb->p_user, true, p_cb->p_cmd_buf);
165 void bta_ag_at_parse(tBTA_AG_AT_CB* p_cb, char* p_buf, uint16_t len) {
169 if (p_cb->p_cmd_buf == NULL) {
170 p_cb->p_cmd_buf = (char*)osi_malloc(p_cb->cmd_max_len);
171 p_cb->cmd_pos = 0;
175 while (p_cb->cmd_pos < p_cb->cmd_max_len - 1 && i < len) {
177 if ((p_cb->cmd_pos == 0) && (p_buf[i] == 0)) {
182 p_cb->p_cmd_buf[p_cb->cmd_pos] = p_buf[i++];
183 if (p_cb->p_cmd_buf[p_cb->cmd_pos] == '\r' ||
184 p_cb->p_cmd_buf[p_cb->cmd_pos] == '\n') {
185 p_cb->p_cmd_buf[p_cb->cmd_pos] = 0;
186 if ((p_cb->cmd_pos > 2) &&
187 (p_cb->p_cmd_buf[0] == 'A' || p_cb->p_cmd_buf[0] == 'a') &&
188 (p_cb->p_cmd_buf[1] == 'T' || p_cb->p_cmd_buf[1] == 't')) {
189 p_save = p_cb->p_cmd_buf;
190 p_cb->p_cmd_buf += 2;
191 bta_ag_process_at(p_cb);
192 p_cb->p_cmd_buf = p_save;
195 p_cb->cmd_pos = 0;
197 } else if (p_cb->p_cmd_buf[p_cb->cmd_pos] == 0x1A ||
198 p_cb->p_cmd_buf[p_cb->cmd_pos] == 0x1B) {
199 p_cb->p_cmd_buf[++p_cb->cmd_pos] = 0;
200 (*p_cb->p_err_cback)(p_cb->p_user, true, p_cb->p_cmd_buf);
201 p_cb->cmd_pos = 0;
203 ++p_cb->cmd_pos;
207 if (i < len) p_cb->cmd_pos = 0;