1dc5611fdSMilanka Ringwald /* 2dc5611fdSMilanka Ringwald * Copyright (C) 2014 BlueKitchen GmbH 3dc5611fdSMilanka Ringwald * 4dc5611fdSMilanka Ringwald * Redistribution and use in source and binary forms, with or without 5dc5611fdSMilanka Ringwald * modification, are permitted provided that the following conditions 6dc5611fdSMilanka Ringwald * are met: 7dc5611fdSMilanka Ringwald * 8dc5611fdSMilanka Ringwald * 1. Redistributions of source code must retain the above copyright 9dc5611fdSMilanka Ringwald * notice, this list of conditions and the following disclaimer. 10dc5611fdSMilanka Ringwald * 2. Redistributions in binary form must reproduce the above copyright 11dc5611fdSMilanka Ringwald * notice, this list of conditions and the following disclaimer in the 12dc5611fdSMilanka Ringwald * documentation and/or other materials provided with the distribution. 13dc5611fdSMilanka Ringwald * 3. Neither the name of the copyright holders nor the names of 14dc5611fdSMilanka Ringwald * contributors may be used to endorse or promote products derived 15dc5611fdSMilanka Ringwald * from this software without specific prior written permission. 16dc5611fdSMilanka Ringwald * 4. Any redistribution, use, or modification is done solely for 17dc5611fdSMilanka Ringwald * personal benefit and not for any commercial purpose or for 18dc5611fdSMilanka Ringwald * monetary gain. 19dc5611fdSMilanka Ringwald * 20dc5611fdSMilanka Ringwald * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21dc5611fdSMilanka Ringwald * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22dc5611fdSMilanka Ringwald * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23dc5611fdSMilanka Ringwald * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24dc5611fdSMilanka Ringwald * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25dc5611fdSMilanka Ringwald * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26dc5611fdSMilanka Ringwald * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27dc5611fdSMilanka Ringwald * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28dc5611fdSMilanka Ringwald * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29dc5611fdSMilanka Ringwald * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30dc5611fdSMilanka Ringwald * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31dc5611fdSMilanka Ringwald * SUCH DAMAGE. 32dc5611fdSMilanka Ringwald * 33dc5611fdSMilanka Ringwald * Please inquire about commercial licensing options at 34dc5611fdSMilanka Ringwald * [email protected] 35dc5611fdSMilanka Ringwald * 36dc5611fdSMilanka Ringwald */ 37dc5611fdSMilanka Ringwald 38dc5611fdSMilanka Ringwald // ***************************************************************************** 39dc5611fdSMilanka Ringwald // 40dc5611fdSMilanka Ringwald // HFP Test Sequences 41dc5611fdSMilanka Ringwald // 42dc5611fdSMilanka Ringwald // ***************************************************************************** 43dc5611fdSMilanka Ringwald 44dc5611fdSMilanka Ringwald #include <stdint.h> 45dc5611fdSMilanka Ringwald #include <stdio.h> 46dc5611fdSMilanka Ringwald #include <stdlib.h> 47dc5611fdSMilanka Ringwald #include <string.h> 48dc5611fdSMilanka Ringwald 49dc5611fdSMilanka Ringwald #include "test_sequences.h" 50dc5611fdSMilanka Ringwald 51dc5611fdSMilanka Ringwald 52dc5611fdSMilanka Ringwald #define TEST_SEQUENCE(name) { (char**)name, sizeof(name) / sizeof(char *)} 53dc5611fdSMilanka Ringwald 54dc5611fdSMilanka Ringwald /* Service Level Connection (slc) test sequences */ 55dc5611fdSMilanka Ringwald 56dc5611fdSMilanka Ringwald const char * slc_test1[] = { 57dc5611fdSMilanka Ringwald "AT+BRSF=438", 58dc5611fdSMilanka Ringwald "+BRSF:1007", 59dc5611fdSMilanka Ringwald "OK", 60dc5611fdSMilanka Ringwald "AT+BAC=1,2", 61dc5611fdSMilanka Ringwald "OK", 62dc5611fdSMilanka Ringwald "AT+CIND=?", 63dc5611fdSMilanka Ringwald "+CIND:(\"service\",(0,1)),(\"call\",(0,1)),(\"callsetup\",(0,3)),(\"battchg\",(0,5)),(\"signal\",(0,5)),(\"roam\",(0,1)),(\"callheld\",(0,2))", 64dc5611fdSMilanka Ringwald "OK", 65dc5611fdSMilanka Ringwald "AT+CIND?", 66dc5611fdSMilanka Ringwald "+CIND:1,0,0,3,5,0,0", 67dc5611fdSMilanka Ringwald "OK", 68dc5611fdSMilanka Ringwald "AT+CMER=3,0,0,1", 69dc5611fdSMilanka Ringwald "OK", 70dc5611fdSMilanka Ringwald "AT+CHLD=?", 71dc5611fdSMilanka Ringwald "+CHLD:(1,1x,2,2x,3)", 72dc5611fdSMilanka Ringwald "OK" 73dc5611fdSMilanka Ringwald }; 74dc5611fdSMilanka Ringwald 75dc5611fdSMilanka Ringwald hfp_test_item_t slc_tests[] = { 76dc5611fdSMilanka Ringwald TEST_SEQUENCE(slc_test1) 77dc5611fdSMilanka Ringwald }; 78dc5611fdSMilanka Ringwald 79dc5611fdSMilanka Ringwald /* Service Level Connection (slc) common commands */ 80dc5611fdSMilanka Ringwald const char * slc_cmds_test1[] = { 81dc5611fdSMilanka Ringwald "AT+BAC=1,3", 82dc5611fdSMilanka Ringwald "OK" 83dc5611fdSMilanka Ringwald }; 84dc5611fdSMilanka Ringwald 85dc5611fdSMilanka Ringwald hfp_test_item_t slc_cmds_tests[] = { 86dc5611fdSMilanka Ringwald TEST_SEQUENCE(slc_cmds_test1) 87dc5611fdSMilanka Ringwald }; 88c26caa21SMilanka Ringwald 89dc5611fdSMilanka Ringwald /* Codecs Connection (cc) test sequences */ 90dc5611fdSMilanka Ringwald const char * cc_test1[] = { 91dc5611fdSMilanka Ringwald "AT+BCC", 92dc5611fdSMilanka Ringwald "OK", 9362656e33SMilanka Ringwald "NOP", 94dc5611fdSMilanka Ringwald "+BCS:1", 95dc5611fdSMilanka Ringwald "AT+BCS=1", 96dc5611fdSMilanka Ringwald "OK" 97dc5611fdSMilanka Ringwald }; 98dc5611fdSMilanka Ringwald 99dc5611fdSMilanka Ringwald const char * cc_test2[] = { 10062656e33SMilanka Ringwald "AT+BAC=1,2", 10162656e33SMilanka Ringwald "OK", 102dc5611fdSMilanka Ringwald "AT+BCC", 103dc5611fdSMilanka Ringwald "OK", 104af03d747SMilanka Ringwald "NOP", 105af03d747SMilanka Ringwald "BCS:1", 106656f7353SMilanka Ringwald "AT+BCS=1", 107656f7353SMilanka Ringwald "OK" 108656f7353SMilanka Ringwald }; 109656f7353SMilanka Ringwald 11062656e33SMilanka Ringwald 111656f7353SMilanka Ringwald const char * cc_test3[] = { 112656f7353SMilanka Ringwald "AT+BAC=1,2", 113656f7353SMilanka Ringwald "OK", 114656f7353SMilanka Ringwald "AT+BCC", 115656f7353SMilanka Ringwald "OK", 11662656e33SMilanka Ringwald "NOP", 117656f7353SMilanka Ringwald "+BCS:1", 118656f7353SMilanka Ringwald "AT+BAC=2,3", 119656f7353SMilanka Ringwald "OK", 12062656e33SMilanka Ringwald "NOP", 121af03d747SMilanka Ringwald "+BCS:3", 122af03d747SMilanka Ringwald "AT+BCS=3", 123656f7353SMilanka Ringwald "OK" 124656f7353SMilanka Ringwald }; 125656f7353SMilanka Ringwald 12662656e33SMilanka Ringwald const char * cc_test4[] = { 127656f7353SMilanka Ringwald "AT+BCC", 128656f7353SMilanka Ringwald "OK", 12962656e33SMilanka Ringwald "NOP", 130dc5611fdSMilanka Ringwald "+BCS:1", 131dc5611fdSMilanka Ringwald "AT+BAC=2,3", 132dc5611fdSMilanka Ringwald "OK", 13362656e33SMilanka Ringwald "NOP", 134af03d747SMilanka Ringwald "+BCS:3", 135af03d747SMilanka Ringwald "AT+BCS=3", 136dc5611fdSMilanka Ringwald "OK" 137dc5611fdSMilanka Ringwald }; 138dc5611fdSMilanka Ringwald 139*d212fbd8SMilanka Ringwald const char * cc_test5[] = { 140*d212fbd8SMilanka Ringwald "+BCS:1", 141*d212fbd8SMilanka Ringwald "AT+BCS=1", 142*d212fbd8SMilanka Ringwald "OK" 143*d212fbd8SMilanka Ringwald }; 144*d212fbd8SMilanka Ringwald 145dc5611fdSMilanka Ringwald hfp_test_item_t cc_tests[] = { 14662656e33SMilanka Ringwald TEST_SEQUENCE(cc_test1), 147*d212fbd8SMilanka Ringwald // TEST_SEQUENCE(cc_test2), 148*d212fbd8SMilanka Ringwald // TEST_SEQUENCE(cc_test3), 149*d212fbd8SMilanka Ringwald // TEST_SEQUENCE(cc_test4), 150*d212fbd8SMilanka Ringwald // TEST_SEQUENCE(cc_test5) 151dc5611fdSMilanka Ringwald }; 152dc5611fdSMilanka Ringwald 153deaf6c13SMilanka Ringwald /* Incoming call sequence */ 154deaf6c13SMilanka Ringwald const char * ic_test1[] = { 155deaf6c13SMilanka Ringwald "+CIEV:3,1", 156deaf6c13SMilanka Ringwald "NOP", 157deaf6c13SMilanka Ringwald "BCS:1", 158deaf6c13SMilanka Ringwald "AT+BCS=1", 159deaf6c13SMilanka Ringwald "OK", 160deaf6c13SMilanka Ringwald "NOP" 161deaf6c13SMilanka Ringwald }; 162deaf6c13SMilanka Ringwald 163deaf6c13SMilanka Ringwald const char * ic_alert_test1[] = { 164deaf6c13SMilanka Ringwald "NOP", 1651872f848SMilanka Ringwald "ATA", 1661872f848SMilanka Ringwald "OK", 1671872f848SMilanka Ringwald "NOP", 1681872f848SMilanka Ringwald "+CIEV:2,1", // call = 1 1691872f848SMilanka Ringwald "NOP", 1701872f848SMilanka Ringwald "+CIEV:3,0" 171deaf6c13SMilanka Ringwald }; 172deaf6c13SMilanka Ringwald 173deaf6c13SMilanka Ringwald hfp_test_item_t ic_tests[] = { 174deaf6c13SMilanka Ringwald TEST_SEQUENCE(ic_test1) 175deaf6c13SMilanka Ringwald }; 176deaf6c13SMilanka Ringwald 177dc5611fdSMilanka Ringwald 178dc5611fdSMilanka Ringwald 179dc5611fdSMilanka Ringwald ////////////// 180dc5611fdSMilanka Ringwald 181656f7353SMilanka Ringwald static int test_item_size = sizeof(hfp_test_item_t); 182dc5611fdSMilanka Ringwald 183dc5611fdSMilanka Ringwald // SLC 184656f7353SMilanka Ringwald hfp_test_item_t * hfp_slc_tests(){ return slc_tests;} 185656f7353SMilanka Ringwald int slc_tests_size(){ return sizeof(slc_tests)/test_item_size;} 186dc5611fdSMilanka Ringwald 187656f7353SMilanka Ringwald char ** default_slc_setup() { return (char **)slc_test1;} 188656f7353SMilanka Ringwald int default_slc_setup_size(){ return sizeof(slc_test1)/sizeof(char*);} 189dc5611fdSMilanka Ringwald 190656f7353SMilanka Ringwald // SLC commands 191656f7353SMilanka Ringwald hfp_test_item_t * hfp_slc_cmds_tests(){ return slc_cmds_tests;} 192656f7353SMilanka Ringwald int slc_cmds_tests_size(){ return sizeof(slc_cmds_tests)/test_item_size;} 193dc5611fdSMilanka Ringwald 194656f7353SMilanka Ringwald char ** default_slc_cmds_setup() { return (char **)slc_cmds_test1;} 195656f7353SMilanka Ringwald int default_slc_cmds_setup_size(){ return sizeof(slc_cmds_test1)/sizeof(char*);} 196dc5611fdSMilanka Ringwald 197dc5611fdSMilanka Ringwald // CC 198656f7353SMilanka Ringwald hfp_test_item_t * hfp_cc_tests(){ return cc_tests;} 199deaf6c13SMilanka Ringwald int cc_tests_size(){ return sizeof(cc_tests) /test_item_size;} 200deaf6c13SMilanka Ringwald 201656f7353SMilanka Ringwald char ** default_cc_setup() { return (char **)cc_test1;} 202656f7353SMilanka Ringwald int default_cc_setup_size(){ return sizeof(cc_test1)/sizeof(char*);} 203656f7353SMilanka Ringwald 204deaf6c13SMilanka Ringwald // IC 205deaf6c13SMilanka Ringwald char ** default_ic_setup() { return (char **)ic_test1;} 206deaf6c13SMilanka Ringwald int default_ic_setup_size(){ return sizeof(ic_test1)/sizeof(char*);} 207656f7353SMilanka Ringwald 208deaf6c13SMilanka Ringwald char ** alert_ic_setup() { return (char **)ic_alert_test1;} 209deaf6c13SMilanka Ringwald int alert_ic_setup_size(){ return sizeof(ic_alert_test1)/sizeof(char*);} 210dc5611fdSMilanka Ringwald