bta_ag_at.h revision 5738f83aeb59361a0a2eda2460113f6dc919427
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 2004-2012 Broadcom Corporation 45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * you may not use this file except in compliance with the License. 75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * You may obtain a copy of the License at: 85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * See the License for the specific language governing permissions and 155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * limitations under the License. 165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Interface file for BTA AG AT command interpreter. 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/ 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_AG_AT_H 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_H 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Constants 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AT command argument capabilities */ 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_NONE 0x01 /* no argument */ 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_SET 0x02 /* set value */ 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_READ 0x04 /* read value */ 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_TEST 0x08 /* test value range */ 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_FREE 0x10 /* freeform argument */ 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AT command argument format */ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_STR 0 /* string */ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_AG_AT_INT 1 /* integer */ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Data types 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AT command table element */ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project const char *p_cmd; /* AT command string */ 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 arg_type; /* allowable argument type syntax */ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 fmt; /* whether arg is int or string */ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 min; /* minimum value for int arg */ 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project INT16 max; /* maximum value for int arg */ 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AG_AT_CMD; 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* callback function executed when command is parsed */ 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTA_AG_AT_CMD_CBACK)(void *p_user, UINT16 cmd, UINT8 arg_type, 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char *p_arg, INT16 int_arg); 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* callback function executed to send "ERROR" result code */ 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef void (tBTA_AG_AT_ERR_CBACK)(void *p_user, BOOLEAN unknown, char *p_arg); 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AT command parsing control block */ 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_AG_AT_CMD *p_at_tbl; /* AT command table */ 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_AG_AT_CMD_CBACK *p_cmd_cback; /* command callback */ 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project tBTA_AG_AT_ERR_CBACK *p_err_cback; /* error callback */ 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project void *p_user; /* user-defined data */ 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project char *p_cmd_buf; /* temp parsing buffer */ 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 cmd_pos; /* position in temp buffer */ 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 cmd_max_len; /* length of temp buffer to allocate */ 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 state; /* parsing state */ 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tBTA_AG_AT_CB; 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function prototypes 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_at_init 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Initialize the AT command parser control block. 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_ag_at_init(tBTA_AG_AT_CB *p_cb); 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_at_reinit 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Re-initialize the AT command parser control block. This 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** function resets the AT command parser state and frees 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** any GKI buffer. 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_ag_at_reinit(tBTA_AG_AT_CB *p_cb); 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/***************************************************************************** 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function bta_ag_at_parse 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description Parse AT commands. This function will take the input 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** character string and parse it for AT commands according to 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** the AT command table passed in the control block. 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns void 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*****************************************************************************/ 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern void bta_ag_at_parse(tBTA_AG_AT_CB *p_cb, char *p_buf, UINT16 len); 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_AG_AT_H */ 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 122