static void show_usage(void){
    bd_addr_t      iut_address;
    gap_local_bd_addr(iut_address);
    printf("\n--- Bluetooth AVRCP Test Console %s ---\n", bd_addr_to_str(iut_address));
    printf("c      - create connection to addr %s\n", bd_addr_to_str(device_addr));
    printf("D      - disconnect\n");
    printf("\n--- Bluetooth AVRCP Commands ---\n");
    printf("i - get play status\n");
    printf("j - get now playing info\n");
    printf("k - play\n");
    printf("K - stop\n");
    printf("L - pause\n");
    printf("m - start fast forward\n");
    printf("M - stop  fast forward\n");
    printf("n - start rewind\n");
    printf("N - stop rewind\n");
    printf("o - forward\n");
    printf("O - backward\n");
    printf("p - volume up\n");
    printf("P - volume down\n");
    printf("r - absolute volume of 50 percent\n");
    printf("s - mute\n");
    printf("t - skip\n");
    printf("u - query repeat and shuffle mode\n");
    printf("v - repeat single track\n");
    printf("x - repeat all tracks\n");
    printf("X - disable repeat mode\n");
    printf("z - shuffle all tracks\n");
    printf("Z - disable shuffle mode\n");

    printf("Ctrl-c - exit\n");
    printf("---\n");
}
Beispiel #2
0
// Testig User Interface 
static void show_usage(void){
    bd_addr_t      iut_address;
    gap_local_bd_addr(iut_address);
    printf("\n--- Bluetooth HSP Headset Test Console %s ---\n", bd_addr_to_str(iut_address));
    printf("---\n");
    printf("p - establish audio connection to PTS module\n");
    printf("e - establish audio connection to local mac\n");
    printf("d - release audio connection from Bluetooth Speaker\n");
    printf("b - press user button\n");
    printf("z - set microphone gain 0\n");
    printf("m - set microphone gain 8\n");
    printf("M - set microphone gain 15\n");
    printf("o - set speaker gain 0\n");
    printf("s - set speaker gain 8\n");
    printf("S - set speaker gain 15\n");
    printf("---\n");
    printf("Ctrl-c - exit\n");
    printf("---\n");
}
Beispiel #3
0
static void show_usage(void){
    bd_addr_t      iut_address;
    gap_local_bd_addr(iut_address);
    printf("\n--- Bluetooth AVDTP SINK Test Console %s ---\n", bd_addr_to_str(iut_address));
    printf("c      - create connection to addr %s\n", device_addr_string);
    printf("d      - discover stream endpoints\n");
    printf("g      - get capabilities\n");
    printf("a      - get all capabilities\n");
    printf("s      - set configuration\n");
    printf("f      - get configuration\n");
    printf("R      - reconfigure stream with %d\n", remote_seid);
    printf("o      - establish stream with seid %d\n", remote_seid);
    printf("m      - start stream with %d\n", remote_seid);
    printf("A      - abort stream with %d\n", remote_seid);
    printf("P      - suspend (pause) stream with %d\n", remote_seid);
    printf("S      - stop (release) stream with %d\n", remote_seid);
    printf("C      - disconnect\n");
    printf("Ctrl-c - exit\n");
    printf("---\n");
}
Beispiel #4
0
static void show_usage(void){
    bd_addr_t      iut_address;
    gap_local_bd_addr(iut_address);
    printf("\n--- Bluetooth AVDTP SOURCE Test Console %s ---\n", bd_addr_to_str(iut_address));
    printf("c      - create connection to addr %s\n", device_addr_string);
    printf("C      - disconnect\n");
    printf("d      - discover stream endpoints\n");
    printf("g      - get capabilities\n");
    printf("a      - get all capabilities\n");
    printf("s      - set configuration\n");
    printf("f      - get configuration\n");
    printf("R      - reconfigure stream with %d\n", media_tracker.remote_seid);
    printf("o      - open stream with seid %d\n", media_tracker.remote_seid);
    printf("m      - start stream with %d\n", media_tracker.remote_seid);
    printf("A      - abort stream with %d\n", media_tracker.remote_seid);
    printf("S      - stop stream with %d\n", media_tracker.remote_seid);
    printf("P      - suspend stream with %d\n", media_tracker.remote_seid);
    printf("X      - stop streaming sine\n");
    printf("Ctrl-c - exit\n");
    printf("---\n");
}
Beispiel #5
0
static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
    bd_addr_t addr;
    if (packet_type != HCI_EVENT_PACKET) return;
    switch (hci_event_packet_get_type(packet)){
        case BTSTACK_EVENT_STATE:
            if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) break;
            gap_local_bd_addr(addr);
            printf("BTstack up and running at %s\n",  bd_addr_to_str(addr));
            break;
        case HCI_EVENT_COMMAND_COMPLETE:
            if (HCI_EVENT_IS_COMMAND_COMPLETE(packet, hci_read_local_name)){
                if (hci_event_command_complete_get_return_parameters(packet)[0]) break;
                // terminate, name 248 chars
                packet[6+248] = 0;
                printf("Local name: %s\n", &packet[6]);
            }        
            if (HCI_EVENT_IS_COMMAND_COMPLETE(packet, hci_read_local_version_information)){
                local_version_information_handler(packet);
            }
            break;
        default:
            break;
    }
}
Beispiel #6
0
static void app_packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
    UNUSED(channel);
    UNUSED(size);
    bd_addr_t local_addr;
    switch (packet_type) {
        case HCI_EVENT_PACKET:
            switch (packet[0]) {
                case BTSTACK_EVENT_STATE:
                    // bt stack activated, get started
                    if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                        gap_local_bd_addr(local_addr);
                        printf("BD_ADDR: %s\n", bd_addr_to_str(local_addr));
                        // generate OOB data
                        sm_generate_sc_oob_data(sc_local_oob_generated_callback);
                    }
                    break;
                case HCI_EVENT_LE_META:
                    switch (hci_event_le_meta_get_subevent_code(packet)) {
                        case HCI_SUBEVENT_LE_CONNECTION_COMPLETE:
                            connection_handle = little_endian_read_16(packet, 4);
                            printf("CONNECTED: Connection handle 0x%04x\n", connection_handle);
                            break;
                        default:
                            break;
                    }
                    break;
                case HCI_EVENT_DISCONNECTION_COMPLETE:
                    break;
                case SM_EVENT_JUST_WORKS_REQUEST:
                    printf("JUST_WORKS_REQUEST\n");
                    break;
                case SM_EVENT_NUMERIC_COMPARISON_REQUEST:
                    printf("NUMERIC_COMPARISON_REQUEST\n");
                    break;
                case SM_EVENT_PASSKEY_INPUT_NUMBER:
                    // display number
                    printf("PASSKEY_INPUT_NUMBER\n");
                    ui_passkey = 0;
                    ui_digits_for_passkey = 6;
                    sm_keypress_notification(connection_handle, SM_KEYPRESS_PASSKEY_ENTRY_STARTED);
                    break;
                case SM_EVENT_PASSKEY_DISPLAY_NUMBER:
                    // display number
                    printf("PASSKEY_DISPLAY_NUMBER: %06u\n", little_endian_read_32(packet, 11));
                    break;
                case SM_EVENT_PASSKEY_DISPLAY_CANCEL: 
                    break;
                case SM_EVENT_AUTHORIZATION_REQUEST:
                    break;
                case SM_EVENT_PAIRING_COMPLETE:
                    printf("\nPAIRING_COMPLETE: %u,%u\n", sm_event_pairing_complete_get_status(packet), sm_event_pairing_complete_get_reason(packet));
                    if (sm_event_pairing_complete_get_status(packet)) break;
                    if (we_are_central){
                        printf("Search for LE Counter service.\n");
                        state = TC_W4_SERVICE_RESULT;
                        gatt_client_discover_primary_services_by_uuid128(handle_gatt_client_event, connection_handle, le_counter_service_uuid);
                    }
                    break;
                case ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE:
                    break;
                case ATT_EVENT_CAN_SEND_NOW:
                    att_server_notify(connection_handle, ATT_CHARACTERISTIC_0000FF11_0000_1000_8000_00805F9B34FB_01_VALUE_HANDLE, (uint8_t *) "Pairing Success!", 16);
                    break;
                default:
                    break;
            }
    }
    fflush(stdout);
}
Beispiel #7
0
// Testig User Interface 
static void show_usage(void){
    bd_addr_t iut_address;
    gap_local_bd_addr(iut_address);

    printf("\n--- Bluetooth HFP Hands-Free (HF) unit Test Console %s ---\n", bd_addr_to_str(iut_address));
    printf("---\n");

    printf("z - use iPhone as Audiogateway\n");

    printf("a - establish SLC connection to device\n");
    printf("A - release SLC connection to device\n");
    
    printf("b - establish Audio connection\n");
    printf("B - release Audio connection\n");
    
    printf("c - disable registration status update for all AG indicators\n");
    printf("C - enable registration status update for all AG indicators\n");
    
    printf("d - query network operator.\n");
    printf("D - set HFP AG registration status update for individual indicators (IIA)\n");

    printf("e - disable reporting of the extended AG error result code\n");
    printf("E - enable reporting of the extended AG error result code\n");
    
    printf("f - answer incoming call\n");
    printf("F - Hangup call\n");

    printf("g - query network operator name\n");
    printf("G - reject incoming call\n");

    printf("i - dial 1234567\n");
    printf("I - dial 7654321\n");
    
    printf("j - dial #1\n");
    printf("J - dial #99\n");
    
    printf("k - deactivate call waiting notification\n");
    printf("K - activate call waiting notification\n");
    
    printf("l - deactivate calling line notification\n");
    printf("L - activate calling line notification\n");
    
    printf("m - deactivate echo canceling and noise reduction\n");
    printf("M - activate echo canceling and noise reduction\n");
    
    printf("n - deactivate voice recognition\n");
    printf("N - activate voice recognition\n");
    
    printf("o - Set speaker volume to 0  (minimum)\n");
    printf("O - Set speaker volume to 9  (default)\n");
    printf("p - Set speaker volume to 12 (higher)\n");
    printf("P - Set speaker volume to 15 (maximum)\n");

    printf("q - Set microphone gain to 0  (minimum)\n");
    printf("Q - Set microphone gain to 9  (default)\n");
    printf("s - Set microphone gain to 12 (higher)\n");
    printf("S - Set microphone gain to 15 (maximum)\n");

    printf("t - terminate connection\n");

    printf("u - send 'user busy' (TWC 0)\n");
    printf("U - end active call and accept other call' (TWC 1)\n");
    printf("v - Swap active call and hold/waiting call (TWC 2)\n");
    printf("V - Join held call (TWC 3)\n");
    printf("w - Connect calls (TWC 4)\n");
    printf("W - redial\n");

    printf("0123456789#*-+ - send DTMF dial tones\n");

    printf("x - request phone number for voice tag\n");
    printf("X - current call status (ECS)\n");
    printf("y - release call with index 2 (ECC)\n");
    printf("Y - private consulation with call 2(ECC)\n");

    printf("[ - Query Response and Hold status (RHH ?)\n");
    printf("] - Place call in a response and held state(RHH 0)\n");
    printf("{ - Accept held call(RHH 1)\n");
    printf("} - Reject held call(RHH 2)\n");

    printf("? - Query Subscriber Number (NUM)\n");

    printf("! - Update HF indicator with assigned number 1 (HFI)\n");

    printf("---\n");
    printf("Ctrl-c - exit\n");
    printf("---\n");
}