enumerate hci initialization substates

This commit is contained in:
Matthias Ringwald 2015-03-29 22:24:55 +02:00
parent c004c8c5bd
commit 556d11b334
2 changed files with 50 additions and 5 deletions

View File

@ -69,8 +69,6 @@
#define HCI_CONNECTION_TIMEOUT_MS 10000
#define HCI_INTIALIZING_SUBSTATE_AFTER_SLEEP 11
#ifdef USE_BLUETOOL
#include "../platforms/ios/src/bt_control_iphone.h"
#endif
@ -1806,7 +1804,7 @@ int hci_power_control(HCI_POWER_MODE power_mode){
// nothing to do, if H4 supports power management
if (bt_control_iphone_power_management_enabled()){
hci_stack->state = HCI_STATE_INITIALIZING;
hci_stack->substate = HCI_INTIALIZING_SUBSTATE_AFTER_SLEEP;
hci_stack->substate = HCI_INTI_AFTER_SLEEP;
break;
}
#endif
@ -1830,7 +1828,7 @@ int hci_power_control(HCI_POWER_MODE power_mode){
// nothing to do, if H4 supports power management
if (bt_control_iphone_power_management_enabled()){
hci_stack->state = HCI_STATE_INITIALIZING;
hci_stack->substate = HCI_INTIALIZING_SUBSTATE_AFTER_SLEEP;
hci_stack->substate = HCI_INTI_AFTER_SLEEP;
hci_update_scan_enable();
break;
}

View File

@ -523,6 +523,53 @@ typedef struct {
} hci_connection_t;
/**
* HCI Inititizlization State Machine
*/
typedef enum hci_init_state{
HCI_INIT_SEND_RESET = 0,
HCI_INIT_W4_SEND_RESET,
HCI_INIT_SEND_BAUD_CHANGE,
HCI_INIT_W4_SEND_BAUD_CHANGE,
HCI_INIT_LOCAL_BAUD_CHANGE,
HCI_INIT_W4_LOCAL_BAUD_CHANGE,
HCI_INIT_SET_BD_ADDR,
HCI_INIT_W4_SET_BD_ADDR,
HCI_INIT_CUSTOM_INIT,
HCI_INIT_W4_CUSTOM_INIT,
HCI_INIT_READ_BUFFER_SIZE,
HCI_INIT_W4_READ_BUFFER_SIZE,
HCI_INIT_READ_LOCAL_SUPPORTED_FEATUES,
HCI_INIT_W4_READ_LOCAL_SUPPORTED_FEATUES,
HCI_INIT_SET_EVENT_MASK,
HCI_INIT_W4_SET_EVENT_MASK,
HCI_INIT_WRITE_SIMPLE_PAIRING_MODE,
HCI_INIT_W4_WRITE_SIMPLE_PAIRING_MODE,
HCI_INIT_WRITE_PAGE_TIMEOUT,
HCI_INIT_W4_WRITE_PAGE_TIMEOUT,
HCI_INIT_WRITE_CLASS_OF_DEVICE,
HCI_INIT_W4_WRITE_CLASS_OF_DEVICE,
HCI_INIT_WRITE_LOCAL_NAME,
HCI_INIT_W4_WRITE_LOCAL_NAME,
HCI_INIT_WRITE_SCAN_ENABLE,
HCI_INIT_W4_WRITE_SCAN_ENABLE,
HCI_INIT_LE_READ_BUFFER_SIZE,
HCI_INIT_W4_LE_READ_BUFFER_SIZE,
HCI_INIT_WRITE_LE_HOST_SUPPORTED,
HCI_INIT_W4_WRITE_LE_HOST_SUPPORTED,
HCI_INIT_LE_SET_SCAN_PARAMETERS,
HCI_INIT_W4_LE_SET_SCAN_PARAMETERS,
HCI_INIT_DONE,
HCI_INTI_AFTER_SLEEP
} hci_init_state_t;
/**
* main data structure
*/
@ -576,7 +623,7 @@ typedef struct {
/* hci state machine */
HCI_STATE state;
uint8_t substate;
hci_init_state_t substate;
uint8_t cmds_ready;
uint16_t last_cmd_opcode;