Loading tools/rootcanal/lib/hci/pcap_filter.cc +4 −4 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ std::vector<uint8_t> PcapFilter::FilterLeSetExtendedScanResponseData( ->SerializeToBytes(); } // Replace the device names in the GAP entries of the periodic scan response // Replace the device names in the GAP entries of the periodic advertising // data. std::vector<uint8_t> PcapFilter::FilterLeSetPeriodicAdvertisingData( bluetooth::hci::CommandView& command) { Loading @@ -293,11 +293,11 @@ std::vector<uint8_t> PcapFilter::FilterLeSetPeriodicAdvertisingData( LeAdvertisingCommandView::Create(command)); ASSERT(parameters.IsValid()); std::vector<GapData> scan_response_data = parameters.GetScanResponseData(); FilterGapData(scan_response_data); std::vector<GapData> advertising_data = parameters.GetAdvertisingData(); FilterGapData(advertising_data); return LeSetPeriodicAdvertisingDataBuilder::Create( parameters.GetAdvertisingHandle(), parameters.GetOperation(), scan_response_data) advertising_data) ->SerializeToBytes(); } Loading tools/rootcanal/model/controller/controller_properties.cc +10 −11 Original line number Diff line number Diff line Loading @@ -341,7 +341,7 @@ static std::array<uint8_t, 64> SupportedCommands() { OpCodeIndex::LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS, OpCodeIndex::LE_REMOVE_ADVERTISING_SET, OpCodeIndex::LE_CLEAR_ADVERTISING_SETS, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAM, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_DATA, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_ENABLE, OpCodeIndex::LE_SET_EXTENDED_SCAN_PARAMETERS, Loading @@ -350,10 +350,10 @@ static std::array<uint8_t, 64> SupportedCommands() { // OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC, // OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL, // OpCodeIndex::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, // OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, // OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, // OpCodeIndex::LE_READ_TRANSMIT_POWER, OpCodeIndex::LE_READ_RF_PATH_COMPENSATION_POWER, OpCodeIndex::LE_WRITE_RF_PATH_COMPENSATION_POWER, Loading Loading @@ -1647,14 +1647,14 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(IO_CAPABILITY_REQUEST_REPLY, mandatory, excluded); check_command_(LE_ACCEPT_CIS_REQUEST, excluded, c40); check_command_(LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_ADD_DEVICE_TO_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 9 of 49) check_command_(LE_BIG_CREATE_SYNC, excluded, c42); check_command_(LE_BIG_TERMINATE_SYNC, excluded, c42); check_command_(LE_CLEAR_ADVERTISING_SETS, excluded, c17); check_command_(LE_CLEAR_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_CLEAR_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_CLEAR_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_CLEAR_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 10 of 49) check_command_(LE_CONNECTION_CTE_REQUEST_ENABLE, excluded, c25); Loading Loading @@ -1704,7 +1704,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_READ_MAXIMUM_DATA_LENGTH, excluded, c8); check_command_(LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS, excluded, c17); check_command_(LE_READ_PEER_RESOLVABLE_ADDRESS, excluded, c10); check_command_(LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, excluded, c21); check_command_(LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, excluded, c21); check_command_(LE_READ_PHY, excluded, c11); check_command_(LE_READ_REMOTE_FEATURES, excluded, c3); // Table 3.1: Alphabetical list of commands and events (Sheet 17 of 49) Loading @@ -1725,8 +1725,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_REMOVE_ADVERTISING_SET, excluded, c17); check_command_(LE_REMOVE_CIG, excluded, c39); check_command_(LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_REMOVE_DEVICE_FROM_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 19 of 49) check_command_(LE_REMOVE_ISO_DATA_PATH, excluded, c47); Loading Loading @@ -1765,7 +1764,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_SET_PATH_LOSS_REPORTING_PARAMETERS, excluded, c52); check_command_(LE_SET_PERIODIC_ADVERTISING_DATA, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_ENABLE, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_PARAM, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_PARAMETERS, excluded, c18); // Table 3.1: Alphabetical list of commands and events (Sheet 23 of 49) check_command_(LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE, excluded, c32); check_command_(LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS, excluded, Loading tools/rootcanal/model/controller/dual_mode_controller.cc +20 −20 Original line number Diff line number Diff line Loading @@ -3429,8 +3429,8 @@ const std::unordered_map<OpCode, OpCodeIndex> OpCodeIndex::LE_REMOVE_ADVERTISING_SET}, {OpCode::LE_CLEAR_ADVERTISING_SETS, OpCodeIndex::LE_CLEAR_ADVERTISING_SETS}, {OpCode::LE_SET_PERIODIC_ADVERTISING_PARAM, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAM}, {OpCode::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAMETERS}, {OpCode::LE_SET_PERIODIC_ADVERTISING_DATA, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_DATA}, {OpCode::LE_SET_PERIODIC_ADVERTISING_ENABLE, Loading @@ -3447,14 +3447,14 @@ const std::unordered_map<OpCode, OpCodeIndex> OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL}, {OpCode::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, OpCodeIndex::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC}, {OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_CLEAR_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, OpCodeIndex::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE}, {OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_CLEAR_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, OpCodeIndex::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE}, {OpCode::LE_READ_TRANSMIT_POWER, OpCodeIndex::LE_READ_TRANSMIT_POWER}, {OpCode::LE_READ_RF_PATH_COMPENSATION_POWER, OpCodeIndex::LE_READ_RF_PATH_COMPENSATION_POWER}, Loading Loading @@ -3960,8 +3960,8 @@ const std::unordered_map<OpCode, DualModeController::CommandHandler> &DualModeController::LeRemoveAdvertisingSet}, {OpCode::LE_CLEAR_ADVERTISING_SETS, &DualModeController::LeClearAdvertisingSets}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_PARAM, //&DualModeController::LeSetPeriodicAdvertisingParam}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, //&DualModeController::LeSetPeriodicAdvertisingParameters}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_DATA, //&DualModeController::LeSetPeriodicAdvertisingData}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_ENABLE, Loading @@ -3978,14 +3978,14 @@ const std::unordered_map<OpCode, DualModeController::CommandHandler> //&DualModeController::LePeriodicAdvertisingCreateSyncCancel}, //{OpCode::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, //&DualModeController::LePeriodicAdvertisingTerminateSync}, //{OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeAddDeviceToPeriodicAdvertisingList}, //{OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeRemoveDeviceFromPeriodicAdvertisingList}, //{OpCode::LE_CLEAR_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeClearPeriodicAdvertisingList}, //{OpCode::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, //&DualModeController::LeReadPeriodicAdvertisingListSize}, //{OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeAddDeviceToPeriodicAdvertiserList}, //{OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeRemoveDeviceFromPeriodicAdvertiserList}, //{OpCode::LE_CLEAR_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeClearPeriodicAdvertiserList}, //{OpCode::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, //&DualModeController::LeReadPeriodicAdvertiserListSize}, //{OpCode::LE_READ_TRANSMIT_POWER, //&DualModeController::LeReadTransmitPower}, //{OpCode::LE_READ_RF_PATH_COMPENSATION_POWER, Loading tools/rootcanal/packets/hci/hci_packets.pdl +46 −43 Original line number Diff line number Diff line Loading @@ -362,7 +362,7 @@ enum OpCode : 16 { LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS = 0x203B, LE_REMOVE_ADVERTISING_SET = 0x203C, LE_CLEAR_ADVERTISING_SETS = 0x203D, LE_SET_PERIODIC_ADVERTISING_PARAM = 0x203E, LE_SET_PERIODIC_ADVERTISING_PARAMETERS = 0x203E, LE_SET_PERIODIC_ADVERTISING_DATA = 0x203F, LE_SET_PERIODIC_ADVERTISING_ENABLE = 0x2040, LE_SET_EXTENDED_SCAN_PARAMETERS = 0x2041, Loading @@ -371,10 +371,10 @@ enum OpCode : 16 { LE_PERIODIC_ADVERTISING_CREATE_SYNC = 0x2044, LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL = 0x2045, LE_PERIODIC_ADVERTISING_TERMINATE_SYNC = 0x2046, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST = 0x2047, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST = 0x2048, LE_CLEAR_PERIODIC_ADVERTISING_LIST = 0x2049, LE_READ_PERIODIC_ADVERTISING_LIST_SIZE = 0x204A, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST = 0x2047, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST = 0x2048, LE_CLEAR_PERIODIC_ADVERTISER_LIST = 0x2049, LE_READ_PERIODIC_ADVERTISER_LIST_SIZE = 0x204A, LE_READ_TRANSMIT_POWER = 0x204B, LE_READ_RF_PATH_COMPENSATION_POWER = 0x204C, LE_WRITE_RF_PATH_COMPENSATION_POWER = 0x204D, Loading Loading @@ -678,7 +678,7 @@ enum OpCodeIndex : 16 { LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS = 367, LE_REMOVE_ADVERTISING_SET = 370, LE_CLEAR_ADVERTISING_SETS = 371, LE_SET_PERIODIC_ADVERTISING_PARAM = 372, LE_SET_PERIODIC_ADVERTISING_PARAMETERS = 372, LE_SET_PERIODIC_ADVERTISING_DATA = 373, LE_SET_PERIODIC_ADVERTISING_ENABLE = 374, LE_SET_EXTENDED_SCAN_PARAMETERS = 375, Loading @@ -687,10 +687,10 @@ enum OpCodeIndex : 16 { LE_PERIODIC_ADVERTISING_CREATE_SYNC = 380, LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL = 381, LE_PERIODIC_ADVERTISING_TERMINATE_SYNC = 382, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST = 383, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST = 384, LE_CLEAR_PERIODIC_ADVERTISING_LIST = 385, LE_READ_PERIODIC_ADVERTISING_LIST_SIZE = 386, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST = 383, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST = 384, LE_CLEAR_PERIODIC_ADVERTISER_LIST = 385, LE_READ_PERIODIC_ADVERTISER_LIST_SIZE = 386, LE_READ_TRANSMIT_POWER = 387, LE_READ_RF_PATH_COMPENSATION_POWER = 390, LE_WRITE_RF_PATH_COMPENSATION_POWER = 391, Loading Loading @@ -4040,7 +4040,7 @@ packet LeClearAdvertisingSetsComplete : CommandComplete (command_op_code = LE_CL status : ErrorCode, } packet LeSetPeriodicAdvertisingParam : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_PARAM) { packet LeSetPeriodicAdvertisingParameters : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_PARAMETERS) { advertising_handle : 8, periodic_advertising_interval_min : 16, // 0x006 to 0xFFFF (7.5 ms to 82s) periodic_advertising_interval_max : 16, // 0x006 to 0xFFFF (7.5 ms to 82s) Loading @@ -4049,7 +4049,7 @@ packet LeSetPeriodicAdvertisingParam : LeAdvertisingCommand (op_code = LE_SET_PE _reserved_ : 9, } packet LeSetPeriodicAdvertisingParamComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_PARAM) { packet LeSetPeriodicAdvertisingParametersComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_PARAMETERS) { status : ErrorCode, } Loading @@ -4057,8 +4057,16 @@ packet LeSetPeriodicAdvertisingData : LeAdvertisingCommand (op_code = LE_SET_PER advertising_handle : 8, operation : Operation, _reserved_ : 5, _size_(scan_response_data) : 8, scan_response_data : GapData[], _size_(advertising_data) : 8, advertising_data : GapData[], } packet LeSetPeriodicAdvertisingDataRaw : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_DATA) { advertising_handle : 8, operation : Operation, _reserved_ : 5, _size_(advertising_data) : 8, advertising_data : 8[], } packet LeSetPeriodicAdvertisingDataComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_DATA) { Loading Loading @@ -4163,25 +4171,26 @@ enum PeriodicSyncCteType : 8 { AVOID_NO_CONSTANT_TONE_EXTENSION = 0x10, } enum PeriodicAdvertisingOptions : 8 { USE_PERIODIC_ADVERTISER_LIST_SELECT_ADVERTISER = 0x01, ENABLE_REPORTING = 0x02, ENABLE_DUPLICATE_FILTERING = 0x04, struct PeriodicAdvertisingOptions { use_periodic_advertiser_list: 1, disable_reporting: 1, enable_duplicate_filtering: 1, _reserved_: 5, } enum AdvertisingAddressType : 8 { PUBLIC_ADDRESS = 0x00, RANDOM_ADDRESS = 0x01, enum AdvertiserAddressType : 8 { PUBLIC_DEVICE_OR_IDENTITY_ADDRESS = 0x00, RANDOM_DEVICE_OR_IDENTITY_ADDRESS = 0x01, } packet LePeriodicAdvertisingCreateSync : LeScanningCommand (op_code = LE_PERIODIC_ADVERTISING_CREATE_SYNC) { options : PeriodicAdvertisingOptions, advertising_sid : 8, advertiser_address_type : AdvertisingAddressType, advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, skip : 16, sync_timeout : 16, sync_cte_type : PeriodicSyncCteType, sync_cte_type : 8, } packet LePeriodicAdvertisingCreateSyncStatus : CommandStatus (command_op_code = LE_PERIODIC_ADVERTISING_CREATE_SYNC) { Loading @@ -4203,38 +4212,37 @@ packet LePeriodicAdvertisingTerminateSyncComplete : CommandComplete (command_op_ status : ErrorCode, } packet LeAddDeviceToPeriodicAdvertisingList : LeScanningCommand (op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST) { advertising_address_type : AdvertisingAddressType, packet LeAddDeviceToPeriodicAdvertiserList : LeScanningCommand (op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST) { advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, advertising_sid : 4, _reserved_ : 4, advertising_sid : 8, } packet LeAddDeviceToPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST) { packet LeAddDeviceToPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeRemoveDeviceFromPeriodicAdvertisingList : LeScanningCommand (op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST) { advertiser_address_type : AdvertisingAddressType, packet LeRemoveDeviceFromPeriodicAdvertiserList : LeScanningCommand (op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST) { advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, advertising_sid : 8, } packet LeRemoveDeviceFromPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST) { packet LeRemoveDeviceFromPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeClearPeriodicAdvertisingList : LeScanningCommand (op_code = LE_CLEAR_PERIODIC_ADVERTISING_LIST) { packet LeClearPeriodicAdvertiserList : LeScanningCommand (op_code = LE_CLEAR_PERIODIC_ADVERTISER_LIST) { } packet LeClearPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_CLEAR_PERIODIC_ADVERTISING_LIST) { packet LeClearPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_CLEAR_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeReadPeriodicAdvertiserListSize : Command (op_code = LE_READ_PERIODIC_ADVERTISING_LIST_SIZE) { packet LeReadPeriodicAdvertiserListSize : Command (op_code = LE_READ_PERIODIC_ADVERTISER_LIST_SIZE) { } packet LeReadPeriodicAdvertiserListSizeComplete : CommandComplete (command_op_code = LE_READ_PERIODIC_ADVERTISING_LIST_SIZE) { packet LeReadPeriodicAdvertiserListSizeComplete : CommandComplete (command_op_code = LE_READ_PERIODIC_ADVERTISER_LIST_SIZE) { status : ErrorCode, periodic_advertiser_list_size : 8, } Loading Loading @@ -4938,7 +4946,7 @@ packet LeBatchScanSetScanParameters : LeBatchScan (batch_scan_opcode = SET_SCAN_ _reserved_ : 6, duty_cycle_scan_window_slots : 32, duty_cycle_scan_interval_slots : 32, own_address_type : AdvertisingAddressType, own_address_type : PeerAddressType, batch_scan_discard_rule : BatchScanDiscardRule, } Loading Loading @@ -5950,19 +5958,14 @@ packet LePeriodicAdvertisingSyncEstablished : LeMetaEvent (subevent_code = PERIO advertiser_clock_accuracy : ClockAccuracy, } enum PeriodicAdvertisingDataStatus : 8 { DATA_COMPLETE = 0, DATA_INCOMPLETE_MORE_TO_COME = 1, DATA_INCOMPLETE_TRUNCATED_NO_MORE_DATA = 2, } packet LePeriodicAdvertisingReport : LeMetaEvent (subevent_code = PERIODIC_ADVERTISING_REPORT) { sync_handle : 12, _reserved_ : 4, tx_power : 8, rssi : 8, cte_type : CteType, data_status : PeriodicAdvertisingDataStatus, data_status : DataStatus, _reserved_: 6, _size_(data) : 8, data : 8[], } Loading Loading
tools/rootcanal/lib/hci/pcap_filter.cc +4 −4 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ std::vector<uint8_t> PcapFilter::FilterLeSetExtendedScanResponseData( ->SerializeToBytes(); } // Replace the device names in the GAP entries of the periodic scan response // Replace the device names in the GAP entries of the periodic advertising // data. std::vector<uint8_t> PcapFilter::FilterLeSetPeriodicAdvertisingData( bluetooth::hci::CommandView& command) { Loading @@ -293,11 +293,11 @@ std::vector<uint8_t> PcapFilter::FilterLeSetPeriodicAdvertisingData( LeAdvertisingCommandView::Create(command)); ASSERT(parameters.IsValid()); std::vector<GapData> scan_response_data = parameters.GetScanResponseData(); FilterGapData(scan_response_data); std::vector<GapData> advertising_data = parameters.GetAdvertisingData(); FilterGapData(advertising_data); return LeSetPeriodicAdvertisingDataBuilder::Create( parameters.GetAdvertisingHandle(), parameters.GetOperation(), scan_response_data) advertising_data) ->SerializeToBytes(); } Loading
tools/rootcanal/model/controller/controller_properties.cc +10 −11 Original line number Diff line number Diff line Loading @@ -341,7 +341,7 @@ static std::array<uint8_t, 64> SupportedCommands() { OpCodeIndex::LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS, OpCodeIndex::LE_REMOVE_ADVERTISING_SET, OpCodeIndex::LE_CLEAR_ADVERTISING_SETS, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAM, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_DATA, // OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_ENABLE, OpCodeIndex::LE_SET_EXTENDED_SCAN_PARAMETERS, Loading @@ -350,10 +350,10 @@ static std::array<uint8_t, 64> SupportedCommands() { // OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC, // OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL, // OpCodeIndex::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, // OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISING_LIST, // OpCodeIndex::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, // OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISER_LIST, // OpCodeIndex::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, // OpCodeIndex::LE_READ_TRANSMIT_POWER, OpCodeIndex::LE_READ_RF_PATH_COMPENSATION_POWER, OpCodeIndex::LE_WRITE_RF_PATH_COMPENSATION_POWER, Loading Loading @@ -1647,14 +1647,14 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(IO_CAPABILITY_REQUEST_REPLY, mandatory, excluded); check_command_(LE_ACCEPT_CIS_REQUEST, excluded, c40); check_command_(LE_ADD_DEVICE_TO_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_ADD_DEVICE_TO_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 9 of 49) check_command_(LE_BIG_CREATE_SYNC, excluded, c42); check_command_(LE_BIG_TERMINATE_SYNC, excluded, c42); check_command_(LE_CLEAR_ADVERTISING_SETS, excluded, c17); check_command_(LE_CLEAR_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_CLEAR_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_CLEAR_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_CLEAR_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 10 of 49) check_command_(LE_CONNECTION_CTE_REQUEST_ENABLE, excluded, c25); Loading Loading @@ -1704,7 +1704,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_READ_MAXIMUM_DATA_LENGTH, excluded, c8); check_command_(LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS, excluded, c17); check_command_(LE_READ_PEER_RESOLVABLE_ADDRESS, excluded, c10); check_command_(LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, excluded, c21); check_command_(LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, excluded, c21); check_command_(LE_READ_PHY, excluded, c11); check_command_(LE_READ_REMOTE_FEATURES, excluded, c3); // Table 3.1: Alphabetical list of commands and events (Sheet 17 of 49) Loading @@ -1725,8 +1725,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_REMOVE_ADVERTISING_SET, excluded, c17); check_command_(LE_REMOVE_CIG, excluded, c39); check_command_(LE_REMOVE_DEVICE_FROM_FILTER_ACCEPT_LIST, excluded, mandatory); check_command_(LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, excluded, c21); check_command_(LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, excluded, c21); check_command_(LE_REMOVE_DEVICE_FROM_RESOLVING_LIST, excluded, c9); // Table 3.1: Alphabetical list of commands and events (Sheet 19 of 49) check_command_(LE_REMOVE_ISO_DATA_PATH, excluded, c47); Loading Loading @@ -1765,7 +1764,7 @@ bool ControllerProperties::CheckSupportedCommands() const { check_command_(LE_SET_PATH_LOSS_REPORTING_PARAMETERS, excluded, c52); check_command_(LE_SET_PERIODIC_ADVERTISING_DATA, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_ENABLE, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_PARAM, excluded, c18); check_command_(LE_SET_PERIODIC_ADVERTISING_PARAMETERS, excluded, c18); // Table 3.1: Alphabetical list of commands and events (Sheet 23 of 49) check_command_(LE_SET_PERIODIC_ADVERTISING_RECEIVE_ENABLE, excluded, c32); check_command_(LE_SET_PERIODIC_ADVERTISING_SYNC_TRANSFER_PARAMETERS, excluded, Loading
tools/rootcanal/model/controller/dual_mode_controller.cc +20 −20 Original line number Diff line number Diff line Loading @@ -3429,8 +3429,8 @@ const std::unordered_map<OpCode, OpCodeIndex> OpCodeIndex::LE_REMOVE_ADVERTISING_SET}, {OpCode::LE_CLEAR_ADVERTISING_SETS, OpCodeIndex::LE_CLEAR_ADVERTISING_SETS}, {OpCode::LE_SET_PERIODIC_ADVERTISING_PARAM, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAM}, {OpCode::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_PARAMETERS}, {OpCode::LE_SET_PERIODIC_ADVERTISING_DATA, OpCodeIndex::LE_SET_PERIODIC_ADVERTISING_DATA}, {OpCode::LE_SET_PERIODIC_ADVERTISING_ENABLE, Loading @@ -3447,14 +3447,14 @@ const std::unordered_map<OpCode, OpCodeIndex> OpCodeIndex::LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL}, {OpCode::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, OpCodeIndex::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC}, {OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_CLEAR_PERIODIC_ADVERTISING_LIST, OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISING_LIST}, {OpCode::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, OpCodeIndex::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE}, {OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_CLEAR_PERIODIC_ADVERTISER_LIST, OpCodeIndex::LE_CLEAR_PERIODIC_ADVERTISER_LIST}, {OpCode::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, OpCodeIndex::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE}, {OpCode::LE_READ_TRANSMIT_POWER, OpCodeIndex::LE_READ_TRANSMIT_POWER}, {OpCode::LE_READ_RF_PATH_COMPENSATION_POWER, OpCodeIndex::LE_READ_RF_PATH_COMPENSATION_POWER}, Loading Loading @@ -3960,8 +3960,8 @@ const std::unordered_map<OpCode, DualModeController::CommandHandler> &DualModeController::LeRemoveAdvertisingSet}, {OpCode::LE_CLEAR_ADVERTISING_SETS, &DualModeController::LeClearAdvertisingSets}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_PARAM, //&DualModeController::LeSetPeriodicAdvertisingParam}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_PARAMETERS, //&DualModeController::LeSetPeriodicAdvertisingParameters}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_DATA, //&DualModeController::LeSetPeriodicAdvertisingData}, //{OpCode::LE_SET_PERIODIC_ADVERTISING_ENABLE, Loading @@ -3978,14 +3978,14 @@ const std::unordered_map<OpCode, DualModeController::CommandHandler> //&DualModeController::LePeriodicAdvertisingCreateSyncCancel}, //{OpCode::LE_PERIODIC_ADVERTISING_TERMINATE_SYNC, //&DualModeController::LePeriodicAdvertisingTerminateSync}, //{OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeAddDeviceToPeriodicAdvertisingList}, //{OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeRemoveDeviceFromPeriodicAdvertisingList}, //{OpCode::LE_CLEAR_PERIODIC_ADVERTISING_LIST, //&DualModeController::LeClearPeriodicAdvertisingList}, //{OpCode::LE_READ_PERIODIC_ADVERTISING_LIST_SIZE, //&DualModeController::LeReadPeriodicAdvertisingListSize}, //{OpCode::LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeAddDeviceToPeriodicAdvertiserList}, //{OpCode::LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeRemoveDeviceFromPeriodicAdvertiserList}, //{OpCode::LE_CLEAR_PERIODIC_ADVERTISER_LIST, //&DualModeController::LeClearPeriodicAdvertiserList}, //{OpCode::LE_READ_PERIODIC_ADVERTISER_LIST_SIZE, //&DualModeController::LeReadPeriodicAdvertiserListSize}, //{OpCode::LE_READ_TRANSMIT_POWER, //&DualModeController::LeReadTransmitPower}, //{OpCode::LE_READ_RF_PATH_COMPENSATION_POWER, Loading
tools/rootcanal/packets/hci/hci_packets.pdl +46 −43 Original line number Diff line number Diff line Loading @@ -362,7 +362,7 @@ enum OpCode : 16 { LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS = 0x203B, LE_REMOVE_ADVERTISING_SET = 0x203C, LE_CLEAR_ADVERTISING_SETS = 0x203D, LE_SET_PERIODIC_ADVERTISING_PARAM = 0x203E, LE_SET_PERIODIC_ADVERTISING_PARAMETERS = 0x203E, LE_SET_PERIODIC_ADVERTISING_DATA = 0x203F, LE_SET_PERIODIC_ADVERTISING_ENABLE = 0x2040, LE_SET_EXTENDED_SCAN_PARAMETERS = 0x2041, Loading @@ -371,10 +371,10 @@ enum OpCode : 16 { LE_PERIODIC_ADVERTISING_CREATE_SYNC = 0x2044, LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL = 0x2045, LE_PERIODIC_ADVERTISING_TERMINATE_SYNC = 0x2046, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST = 0x2047, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST = 0x2048, LE_CLEAR_PERIODIC_ADVERTISING_LIST = 0x2049, LE_READ_PERIODIC_ADVERTISING_LIST_SIZE = 0x204A, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST = 0x2047, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST = 0x2048, LE_CLEAR_PERIODIC_ADVERTISER_LIST = 0x2049, LE_READ_PERIODIC_ADVERTISER_LIST_SIZE = 0x204A, LE_READ_TRANSMIT_POWER = 0x204B, LE_READ_RF_PATH_COMPENSATION_POWER = 0x204C, LE_WRITE_RF_PATH_COMPENSATION_POWER = 0x204D, Loading Loading @@ -678,7 +678,7 @@ enum OpCodeIndex : 16 { LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS = 367, LE_REMOVE_ADVERTISING_SET = 370, LE_CLEAR_ADVERTISING_SETS = 371, LE_SET_PERIODIC_ADVERTISING_PARAM = 372, LE_SET_PERIODIC_ADVERTISING_PARAMETERS = 372, LE_SET_PERIODIC_ADVERTISING_DATA = 373, LE_SET_PERIODIC_ADVERTISING_ENABLE = 374, LE_SET_EXTENDED_SCAN_PARAMETERS = 375, Loading @@ -687,10 +687,10 @@ enum OpCodeIndex : 16 { LE_PERIODIC_ADVERTISING_CREATE_SYNC = 380, LE_PERIODIC_ADVERTISING_CREATE_SYNC_CANCEL = 381, LE_PERIODIC_ADVERTISING_TERMINATE_SYNC = 382, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST = 383, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST = 384, LE_CLEAR_PERIODIC_ADVERTISING_LIST = 385, LE_READ_PERIODIC_ADVERTISING_LIST_SIZE = 386, LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST = 383, LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST = 384, LE_CLEAR_PERIODIC_ADVERTISER_LIST = 385, LE_READ_PERIODIC_ADVERTISER_LIST_SIZE = 386, LE_READ_TRANSMIT_POWER = 387, LE_READ_RF_PATH_COMPENSATION_POWER = 390, LE_WRITE_RF_PATH_COMPENSATION_POWER = 391, Loading Loading @@ -4040,7 +4040,7 @@ packet LeClearAdvertisingSetsComplete : CommandComplete (command_op_code = LE_CL status : ErrorCode, } packet LeSetPeriodicAdvertisingParam : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_PARAM) { packet LeSetPeriodicAdvertisingParameters : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_PARAMETERS) { advertising_handle : 8, periodic_advertising_interval_min : 16, // 0x006 to 0xFFFF (7.5 ms to 82s) periodic_advertising_interval_max : 16, // 0x006 to 0xFFFF (7.5 ms to 82s) Loading @@ -4049,7 +4049,7 @@ packet LeSetPeriodicAdvertisingParam : LeAdvertisingCommand (op_code = LE_SET_PE _reserved_ : 9, } packet LeSetPeriodicAdvertisingParamComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_PARAM) { packet LeSetPeriodicAdvertisingParametersComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_PARAMETERS) { status : ErrorCode, } Loading @@ -4057,8 +4057,16 @@ packet LeSetPeriodicAdvertisingData : LeAdvertisingCommand (op_code = LE_SET_PER advertising_handle : 8, operation : Operation, _reserved_ : 5, _size_(scan_response_data) : 8, scan_response_data : GapData[], _size_(advertising_data) : 8, advertising_data : GapData[], } packet LeSetPeriodicAdvertisingDataRaw : LeAdvertisingCommand (op_code = LE_SET_PERIODIC_ADVERTISING_DATA) { advertising_handle : 8, operation : Operation, _reserved_ : 5, _size_(advertising_data) : 8, advertising_data : 8[], } packet LeSetPeriodicAdvertisingDataComplete : CommandComplete (command_op_code = LE_SET_PERIODIC_ADVERTISING_DATA) { Loading Loading @@ -4163,25 +4171,26 @@ enum PeriodicSyncCteType : 8 { AVOID_NO_CONSTANT_TONE_EXTENSION = 0x10, } enum PeriodicAdvertisingOptions : 8 { USE_PERIODIC_ADVERTISER_LIST_SELECT_ADVERTISER = 0x01, ENABLE_REPORTING = 0x02, ENABLE_DUPLICATE_FILTERING = 0x04, struct PeriodicAdvertisingOptions { use_periodic_advertiser_list: 1, disable_reporting: 1, enable_duplicate_filtering: 1, _reserved_: 5, } enum AdvertisingAddressType : 8 { PUBLIC_ADDRESS = 0x00, RANDOM_ADDRESS = 0x01, enum AdvertiserAddressType : 8 { PUBLIC_DEVICE_OR_IDENTITY_ADDRESS = 0x00, RANDOM_DEVICE_OR_IDENTITY_ADDRESS = 0x01, } packet LePeriodicAdvertisingCreateSync : LeScanningCommand (op_code = LE_PERIODIC_ADVERTISING_CREATE_SYNC) { options : PeriodicAdvertisingOptions, advertising_sid : 8, advertiser_address_type : AdvertisingAddressType, advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, skip : 16, sync_timeout : 16, sync_cte_type : PeriodicSyncCteType, sync_cte_type : 8, } packet LePeriodicAdvertisingCreateSyncStatus : CommandStatus (command_op_code = LE_PERIODIC_ADVERTISING_CREATE_SYNC) { Loading @@ -4203,38 +4212,37 @@ packet LePeriodicAdvertisingTerminateSyncComplete : CommandComplete (command_op_ status : ErrorCode, } packet LeAddDeviceToPeriodicAdvertisingList : LeScanningCommand (op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST) { advertising_address_type : AdvertisingAddressType, packet LeAddDeviceToPeriodicAdvertiserList : LeScanningCommand (op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST) { advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, advertising_sid : 4, _reserved_ : 4, advertising_sid : 8, } packet LeAddDeviceToPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISING_LIST) { packet LeAddDeviceToPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_ADD_DEVICE_TO_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeRemoveDeviceFromPeriodicAdvertisingList : LeScanningCommand (op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST) { advertiser_address_type : AdvertisingAddressType, packet LeRemoveDeviceFromPeriodicAdvertiserList : LeScanningCommand (op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST) { advertiser_address_type : AdvertiserAddressType, advertiser_address : Address, advertising_sid : 8, } packet LeRemoveDeviceFromPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISING_LIST) { packet LeRemoveDeviceFromPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_REMOVE_DEVICE_FROM_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeClearPeriodicAdvertisingList : LeScanningCommand (op_code = LE_CLEAR_PERIODIC_ADVERTISING_LIST) { packet LeClearPeriodicAdvertiserList : LeScanningCommand (op_code = LE_CLEAR_PERIODIC_ADVERTISER_LIST) { } packet LeClearPeriodicAdvertisingListComplete : CommandComplete (command_op_code = LE_CLEAR_PERIODIC_ADVERTISING_LIST) { packet LeClearPeriodicAdvertiserListComplete : CommandComplete (command_op_code = LE_CLEAR_PERIODIC_ADVERTISER_LIST) { status : ErrorCode, } packet LeReadPeriodicAdvertiserListSize : Command (op_code = LE_READ_PERIODIC_ADVERTISING_LIST_SIZE) { packet LeReadPeriodicAdvertiserListSize : Command (op_code = LE_READ_PERIODIC_ADVERTISER_LIST_SIZE) { } packet LeReadPeriodicAdvertiserListSizeComplete : CommandComplete (command_op_code = LE_READ_PERIODIC_ADVERTISING_LIST_SIZE) { packet LeReadPeriodicAdvertiserListSizeComplete : CommandComplete (command_op_code = LE_READ_PERIODIC_ADVERTISER_LIST_SIZE) { status : ErrorCode, periodic_advertiser_list_size : 8, } Loading Loading @@ -4938,7 +4946,7 @@ packet LeBatchScanSetScanParameters : LeBatchScan (batch_scan_opcode = SET_SCAN_ _reserved_ : 6, duty_cycle_scan_window_slots : 32, duty_cycle_scan_interval_slots : 32, own_address_type : AdvertisingAddressType, own_address_type : PeerAddressType, batch_scan_discard_rule : BatchScanDiscardRule, } Loading Loading @@ -5950,19 +5958,14 @@ packet LePeriodicAdvertisingSyncEstablished : LeMetaEvent (subevent_code = PERIO advertiser_clock_accuracy : ClockAccuracy, } enum PeriodicAdvertisingDataStatus : 8 { DATA_COMPLETE = 0, DATA_INCOMPLETE_MORE_TO_COME = 1, DATA_INCOMPLETE_TRUNCATED_NO_MORE_DATA = 2, } packet LePeriodicAdvertisingReport : LeMetaEvent (subevent_code = PERIODIC_ADVERTISING_REPORT) { sync_handle : 12, _reserved_ : 4, tx_power : 8, rssi : 8, cte_type : CteType, data_status : PeriodicAdvertisingDataStatus, data_status : DataStatus, _reserved_: 6, _size_(data) : 8, data : 8[], } Loading