static HCICommands()
        {
            hci_inquiry        = new HCI_COMMAND(Opcode(OGF_LINK_CONTROL, 0x01), "311"); // LAP, Inquiry length, Num_responses
            hci_inquiry_cancel = new HCI_COMMAND(Opcode(OGF_LINK_CONTROL, 0x02), "");    // no params

            /*
             * hci_cmd_t hci_create_connection = {
             * OPCODE(OGF_LINK_CONTROL, 0x05), "B21121"
             * // BD_ADDR, Packet_Type, Page_Scan_Repetition_Mode, Reserved, Clock_Offset, Allow_Role_Switch
             * };
             *
             * hci_cmd_t hci_disconnect = {
             * OPCODE(OGF_LINK_CONTROL, 0x06), "H1"
             * // Handle, Reason: 0x05, 0x13-0x15, 0x1a, 0x29
             * // see Errors Codes in BT Spec Part D
             * };
             * hci_cmd_t hci_create_connection_cancel = {
             * OPCODE(OGF_LINK_CONTROL, 0x08), "B"
             * // BD_ADDR
             * };
             * hci_cmd_t hci_accept_connection_request = {
             * OPCODE(OGF_LINK_CONTROL, 0x09), "B1"
             * // BD_ADDR, Role: become master, stay slave
             * };
             * hci_cmd_t hci_link_key_request_reply = {
             * OPCODE(OGF_LINK_CONTROL, 0x0b), "BP"
             * // BD_ADDR, LINK_KEY
             * };
             * hci_cmd_t hci_link_key_request_negative_reply = {
             * OPCODE(OGF_LINK_CONTROL, 0x0c), "B"
             * // BD_ADDR
             * };
             * hci_cmd_t hci_pin_code_request_reply = {
             * OPCODE(OGF_LINK_CONTROL, 0x0d), "B1P"
             * // BD_ADDR, pin length, PIN: c-string
             * };
             * hci_cmd_t hci_authentication_requested = {
             * OPCODE(OGF_LINK_CONTROL, 0x11), "H"
             * // Handle
             * };
             *
             * */

            hci_remote_name_request = new HCI_COMMAND(Opcode(OGF_LINK_CONTROL, 0x19), "B112");  // BD_ADDR, Page_Scan_Repetition_Mode, Reserved, Clock_Offset

            /*
             * hci_cmd_t hci_remote_name_request_cancel = {
             * OPCODE(OGF_LINK_CONTROL, 0x1A), "B"
             * // BD_ADDR
             * };
             *
             *
             * //*  Link Policy Commands
             * hci_cmd_t hci_qos_setup = {
             * OPCODE(OGF_LINK_POLICY, 0x07), "H114444"
             * // handle, flags, service_type, token rate (bytes/s), peak bandwith (bytes/s),
             * // latency (us), delay_variation (us)
             * };
             * hci_cmd_t hci_read_link_policy_settings = {
             * OPCODE(OGF_LINK_POLICY, 0x0c), "H"
             * // handle
             * };
             * hci_cmd_t hci_write_link_policy_settings = {
             * OPCODE(OGF_LINK_POLICY, 0x0d), "H2"
             * // handlee, settings
             * };
             *
             * /**
             *  Controller & Baseband Commands
             *
             * hci_cmd_t hci_set_event_mask = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x01), "44"
             * // event_mask lower 4 octets, higher 4 bytes
             * };
             * hci_cmd_t hci_reset = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x03), ""
             * // no params
             * };
             * hci_cmd_t hci_delete_stored_link_key = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x12), "B1"
             * // BD_ADDR, Delete_All_Flag
             * };
             * hci_cmd_t hci_write_local_name = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x13), "N"
             * // Local name (UTF-8, Null Terminated, max 248 octets)
             * };
             * hci_cmd_t hci_write_page_timeout = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x18), "2"
             * // Page_Timeout * 0.625 ms
             * };
             * hci_cmd_t hci_write_scan_enable = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x1A), "1"
             * // Scan_enable: no, inq, page, inq+page
             * };
             * hci_cmd_t hci_write_authentication_enable = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x20), "1"
             * // Authentication_Enable
             * };
             * hci_cmd_t hci_write_class_of_device = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x24), "3"
             * // Class of Device
             * };
             * hci_cmd_t hci_host_buffer_size = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x33), "2122"
             * // Host_ACL_Data_Packet_Length:, Host_Synchronous_Data_Packet_Length:, Host_Total_Num_ACL_Data_Packets:, Host_Total_Num_Synchronous_Data_Packets:
             * };
             * hci_cmd_t hci_read_link_supervision_timeout = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x36), "H"
             * // handle
             * };
             * hci_cmd_t hci_write_link_supervision_timeout = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x37), "H2"
             * // handle, Range for N: 0x0001 ? 0xFFFF Time (Range: 0.625ms ? 40.9 sec)
             * };
             * */
            hci_write_inquiry_mode = new HCI_COMMAND(Opcode(OGF_CONTROLLER_BASEBAND, 0x45), "1"); // Inquiry mode: 0x00 = standard, 0x01 = with RSSI, 0x02 = extended

            /*
             * hci_cmd_t hci_write_extended_inquiry_response = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x52), "1E"
             * // FEC_Required, Exstended Inquiry Response
             * };
             *
             * hci_cmd_t hci_write_simple_pairing_mode = {
             * OPCODE(OGF_CONTROLLER_BASEBAND, 0x56), "1"
             * // mode: 0 = off, 1 = on
             * };
             *
             * hci_cmd_t hci_read_bd_addr = {
             * OPCODE(OGF_INFORMATIONAL_PARAMETERS, 0x09), ""
             * // no params
             * };
             *
             * // BTstack commands
             *
             * hci_cmd_t btstack_get_state = {
             * OPCODE(OGF_BTSTACK, BTSTACK_GET_STATE), ""
             * // no params ->
             * };
             */
            btstack_set_power_mode = new HCI_COMMAND(Opcode(OGF_BTSTACK, BTSTACK_SET_POWER_MODE), "1"); // mode: 0 = off, 1 = on

/*
 * hci_cmd_t btstack_set_acl_capture_mode = {
 * OPCODE(OGF_BTSTACK, BTSTACK_SET_ACL_CAPTURE_MODE), "1"
 * // mode: 0 = off, 1 = on
 * };
 *
 * hci_cmd_t btstack_get_version = {
 * OPCODE(OGF_BTSTACK, BTSTACK_GET_VERSION), ""
 * };
 *
 * hci_cmd_t btstack_get_system_bluetooth_enabled = {
 * OPCODE(OGF_BTSTACK, BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED), ""
 * };
 *
 * hci_cmd_t btstack_set_system_bluetooth_enabled = {
 * OPCODE(OGF_BTSTACK, BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED), "1"
 * };
 *
 * hci_cmd_t l2cap_create_channel = {
 * OPCODE(OGF_BTSTACK, L2CAP_CREATE_CHANNEL), "B2"
 * // @param bd_addr(48), psm (16)
 * };
 *
 * hci_cmd_t l2cap_disconnect = {
 * OPCODE(OGF_BTSTACK, L2CAP_DISCONNECT), "21"
 * // @param channel(16), reason(8)
 * };
 * hci_cmd_t l2cap_register_service = {
 * OPCODE(OGF_BTSTACK, L2CAP_REGISTER_SERVICE), "22"
 * // @param psm (16), mtu (16)
 * };
 * hci_cmd_t l2cap_unregister_service = {
 * OPCODE(OGF_BTSTACK, L2CAP_UNREGISTER_SERVICE), "2"
 * // @param psm (16)
 * };
 * hci_cmd_t l2cap_accept_connection = {
 * OPCODE(OGF_BTSTACK, L2CAP_ACCEPT_CONNECTION), "2"
 * // @param source cid (16)
 * };
 * hci_cmd_t l2cap_decline_connection = {
 * OPCODE(OGF_BTSTACK, L2CAP_DECLINE_CONNECTION), "21"
 * // @param source cid (16), reason(8)
 * };
 */
        }
        static HCICommands()
        {
            hci_inquiry = new HCI_COMMAND(Opcode(OGF_LINK_CONTROL, 0x01), "311"); // LAP, Inquiry length, Num_responses           
            hci_inquiry_cancel = new HCI_COMMAND( Opcode(OGF_LINK_CONTROL, 0x02), ""); // no params

            /*             
hci_cmd_t hci_create_connection = {
OPCODE(OGF_LINK_CONTROL, 0x05), "B21121"
// BD_ADDR, Packet_Type, Page_Scan_Repetition_Mode, Reserved, Clock_Offset, Allow_Role_Switch
};

hci_cmd_t hci_disconnect = {
OPCODE(OGF_LINK_CONTROL, 0x06), "H1"
// Handle, Reason: 0x05, 0x13-0x15, 0x1a, 0x29
// see Errors Codes in BT Spec Part D
};
hci_cmd_t hci_create_connection_cancel = {
OPCODE(OGF_LINK_CONTROL, 0x08), "B"
// BD_ADDR
};
hci_cmd_t hci_accept_connection_request = {
OPCODE(OGF_LINK_CONTROL, 0x09), "B1"
// BD_ADDR, Role: become master, stay slave
};
hci_cmd_t hci_link_key_request_reply = {
OPCODE(OGF_LINK_CONTROL, 0x0b), "BP"
// BD_ADDR, LINK_KEY
};
hci_cmd_t hci_link_key_request_negative_reply = {
OPCODE(OGF_LINK_CONTROL, 0x0c), "B"
// BD_ADDR
};
hci_cmd_t hci_pin_code_request_reply = {
OPCODE(OGF_LINK_CONTROL, 0x0d), "B1P"
// BD_ADDR, pin length, PIN: c-string
};
hci_cmd_t hci_authentication_requested = {
OPCODE(OGF_LINK_CONTROL, 0x11), "H"
// Handle
};
             
             * */
            
            hci_remote_name_request = new HCI_COMMAND(Opcode(OGF_LINK_CONTROL, 0x19), "B112");  // BD_ADDR, Page_Scan_Repetition_Mode, Reserved, Clock_Offset
            /*
hci_cmd_t hci_remote_name_request_cancel = {
OPCODE(OGF_LINK_CONTROL, 0x1A), "B"
// BD_ADDR
};


 //*  Link Policy Commands  
hci_cmd_t hci_qos_setup = {
    OPCODE(OGF_LINK_POLICY, 0x07), "H114444"
    // handle, flags, service_type, token rate (bytes/s), peak bandwith (bytes/s),
    // latency (us), delay_variation (us)
};
hci_cmd_t hci_read_link_policy_settings = {
    OPCODE(OGF_LINK_POLICY, 0x0c), "H"
    // handle 
};
hci_cmd_t hci_write_link_policy_settings = {
    OPCODE(OGF_LINK_POLICY, 0x0d), "H2"
    // handlee, settings
};

/**
 *  Controller & Baseband Commands 
 *
hci_cmd_t hci_set_event_mask = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x01), "44"
// event_mask lower 4 octets, higher 4 bytes
};
hci_cmd_t hci_reset = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x03), ""
// no params
};
hci_cmd_t hci_delete_stored_link_key = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x12), "B1"
// BD_ADDR, Delete_All_Flag
};
hci_cmd_t hci_write_local_name = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x13), "N"
// Local name (UTF-8, Null Terminated, max 248 octets)
};
hci_cmd_t hci_write_page_timeout = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x18), "2"
// Page_Timeout * 0.625 ms
};
hci_cmd_t hci_write_scan_enable = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x1A), "1"
// Scan_enable: no, inq, page, inq+page
};
hci_cmd_t hci_write_authentication_enable = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x20), "1"
// Authentication_Enable
};
hci_cmd_t hci_write_class_of_device = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x24), "3"
// Class of Device
};
hci_cmd_t hci_host_buffer_size = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x33), "2122"
// Host_ACL_Data_Packet_Length:, Host_Synchronous_Data_Packet_Length:, Host_Total_Num_ACL_Data_Packets:, Host_Total_Num_Synchronous_Data_Packets:
};
hci_cmd_t hci_read_link_supervision_timeout = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x36), "H"
// handle
};
hci_cmd_t hci_write_link_supervision_timeout = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x37), "H2"
// handle, Range for N: 0x0001 ? 0xFFFF Time (Range: 0.625ms ? 40.9 sec)
};
             * */
            hci_write_inquiry_mode = new HCI_COMMAND(Opcode(OGF_CONTROLLER_BASEBAND, 0x45), "1"); // Inquiry mode: 0x00 = standard, 0x01 = with RSSI, 0x02 = extended
            /*
hci_cmd_t hci_write_extended_inquiry_response = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x52), "1E"
// FEC_Required, Exstended Inquiry Response
};

hci_cmd_t hci_write_simple_pairing_mode = {
OPCODE(OGF_CONTROLLER_BASEBAND, 0x56), "1"
// mode: 0 = off, 1 = on
};

hci_cmd_t hci_read_bd_addr = {
OPCODE(OGF_INFORMATIONAL_PARAMETERS, 0x09), ""
// no params
};

// BTstack commands

hci_cmd_t btstack_get_state = {
OPCODE(OGF_BTSTACK, BTSTACK_GET_STATE), ""
// no params -> 
};
*/
        btstack_set_power_mode = new HCI_COMMAND(Opcode(OGF_BTSTACK, BTSTACK_SET_POWER_MODE), "1"); // mode: 0 = off, 1 = on
/*
hci_cmd_t btstack_set_acl_capture_mode = {
OPCODE(OGF_BTSTACK, BTSTACK_SET_ACL_CAPTURE_MODE), "1"
// mode: 0 = off, 1 = on
};

hci_cmd_t btstack_get_version = {
OPCODE(OGF_BTSTACK, BTSTACK_GET_VERSION), ""
};

hci_cmd_t btstack_get_system_bluetooth_enabled = {
OPCODE(OGF_BTSTACK, BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED), ""
};

hci_cmd_t btstack_set_system_bluetooth_enabled = {
OPCODE(OGF_BTSTACK, BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED), "1"
};

hci_cmd_t l2cap_create_channel = {
OPCODE(OGF_BTSTACK, L2CAP_CREATE_CHANNEL), "B2"
// @param bd_addr(48), psm (16)
};

hci_cmd_t l2cap_disconnect = {
OPCODE(OGF_BTSTACK, L2CAP_DISCONNECT), "21"
// @param channel(16), reason(8)
};
hci_cmd_t l2cap_register_service = {
OPCODE(OGF_BTSTACK, L2CAP_REGISTER_SERVICE), "22"
// @param psm (16), mtu (16)
};
hci_cmd_t l2cap_unregister_service = {
OPCODE(OGF_BTSTACK, L2CAP_UNREGISTER_SERVICE), "2"
// @param psm (16)
};
hci_cmd_t l2cap_accept_connection = {
OPCODE(OGF_BTSTACK, L2CAP_ACCEPT_CONNECTION), "2"
// @param source cid (16)
};
hci_cmd_t l2cap_decline_connection = {
OPCODE(OGF_BTSTACK, L2CAP_DECLINE_CONNECTION), "21"
// @param source cid (16), reason(8)
};
             */
        }