diff options
author | JackLivio <jack@livio.io> | 2019-08-15 13:53:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-15 13:53:53 -0400 |
commit | fcdd7f70417a2c685795c9062177b225eb9d2183 (patch) | |
tree | 65d3c55a48698826b785239586ff67dac02c7de4 | |
parent | 6f84c1ab5140422c978df7ab18e5043d5cefbf83 (diff) | |
parent | 36faeb447b32d904d3102c6402e464768064f97f (diff) | |
download | sdl_core-fcdd7f70417a2c685795c9062177b225eb9d2183.tar.gz |
Merge pull request #2972 from smartdevicelink/feature/usb_ini_config
Add AOA filtering parameters to .ini configuration
8 files changed, 140 insertions, 13 deletions
diff --git a/src/appMain/smartDeviceLink.ini b/src/appMain/smartDeviceLink.ini index 40c1bf08a7..0c85a867d0 100644 --- a/src/appMain/smartDeviceLink.ini +++ b/src/appMain/smartDeviceLink.ini @@ -205,6 +205,15 @@ TCPAdapterNetworkInterface = ; 128 bit uuid for bluetooth device discovery. Please format as 16 seperate bytes. ;BluetoothUUID = 0x93, 0x6D, 0xA0, 0x1F, 0x9A, 0xBD, 0x4D, 0x9D, 0x80, 0xC7, 0x02, 0xAF, 0x85, 0xC8, 0x22, 0xA8 +; AOA USB Transport Configuration +; USBAccessory Filter Parameters +AOAFilterManufacturer = SDL +AOAFilterModelName = Core +AOAFilterDescription = SmartDeviceLink Core Component USB +AOAFilterVersion = 1.0 +AOAFilterURI = http://www.smartdevicelink.org +AOAFilterSerialNumber = N000000 + [CloudAppConnections] ; Value in milliseconds for time between retry attempts on a failed websocket connection CloudAppRetryTimeout = 1000 diff --git a/src/components/config_profile/include/config_profile/profile.h b/src/components/config_profile/include/config_profile/profile.h index 0a1e8b2c17..a6773e8987 100644 --- a/src/components/config_profile/include/config_profile/profile.h +++ b/src/components/config_profile/include/config_profile/profile.h @@ -425,6 +425,13 @@ class Profile : public protocol_handler::ProtocolHandlerSettings, const uint8_t* bluetooth_uuid() const OVERRIDE; + const std::string& aoa_filter_manufacturer() const OVERRIDE; + const std::string& aoa_filter_model_name() const OVERRIDE; + const std::string& aoa_filter_description() const OVERRIDE; + const std::string& aoa_filter_version() const OVERRIDE; + const std::string& aoa_filter_uri() const OVERRIDE; + const std::string& aoa_filter_serial_number() const OVERRIDE; + // TransportManageMMESettings interface const std::string& event_mq_name() const OVERRIDE; @@ -982,6 +989,12 @@ class Profile : public protocol_handler::ProtocolHandlerSettings, uint32_t cloud_app_retry_timeout_; uint16_t cloud_app_max_retry_attempts_; std::vector<uint8_t> bluetooth_uuid_; + std::string aoa_filter_manufacturer_; + std::string aoa_filter_model_name_; + std::string aoa_filter_description_; + std::string aoa_filter_version_; + std::string aoa_filter_uri_; + std::string aoa_filter_serial_number_; std::string tts_delimiter_; uint32_t audio_data_stopped_timeout_; uint32_t video_data_stopped_timeout_; diff --git a/src/components/config_profile/src/profile.cc b/src/components/config_profile/src/profile.cc index c38b28db5f..02015e66d5 100644 --- a/src/components/config_profile/src/profile.cc +++ b/src/components/config_profile/src/profile.cc @@ -185,6 +185,12 @@ const char* kPendingRequestsAmoundKey = "PendingRequestsAmount"; const char* kSupportedDiagModesKey = "SupportedDiagModes"; const char* kTransportManagerDisconnectTimeoutKey = "DisconnectTimeout"; const char* kBluetoothUUIDKey = "BluetoothUUID"; +const char* kAOAFilterManufacturerKey = "AOAFilterManufacturer"; +const char* kAOAFilterModelNameKey = "AOAFilterModelName"; +const char* kAOAFilterDescriptionKey = "AOAFilterDescription"; +const char* kAOAFilterVersionKey = "AOAFilterVersion"; +const char* kAOAFilterURIKey = "AOAFilterURI"; +const char* kAOAFilterSerialNumber = "AOAFilterSerialNumber"; const char* kTTSDelimiterKey = "TTSDelimiter"; const char* kRecordingFileNameKey = "RecordingFileName"; const char* kRecordingFileSourceKey = "RecordingFileSource"; @@ -414,6 +420,12 @@ const std::vector<uint8_t> kDefaultBluetoothUUID = {0x93, 0xC8, 0x22, 0xA8}; +const char* kDefaultAOAFilterManufacturer = "SDL"; +const char* kDefaultAOAFilterModelName = "Core"; +const char* kDefaultAOAFilterDescription = "SmartDeviceLink Core Component USB"; +const char* kDefaultAOAFilterVersion = "1.0"; +const char* kDefaultAOAFilterURI = "http://www.smartdevicelink.org"; +const char* kDefaultAOAFilterSerialNumber = "N000000"; } // namespace namespace profile { @@ -827,6 +839,30 @@ const uint8_t* Profile::bluetooth_uuid() const { return bluetooth_uuid_.data(); } +const std::string& Profile::aoa_filter_manufacturer() const { + return aoa_filter_manufacturer_; +} + +const std::string& Profile::aoa_filter_model_name() const { + return aoa_filter_model_name_; +} + +const std::string& Profile::aoa_filter_description() const { + return aoa_filter_description_; +} + +const std::string& Profile::aoa_filter_version() const { + return aoa_filter_version_; +} + +const std::string& Profile::aoa_filter_uri() const { + return aoa_filter_uri_; +} + +const std::string& Profile::aoa_filter_serial_number() const { + return aoa_filter_serial_number_; +} + const std::string& Profile::tts_delimiter() const { return tts_delimiter_; } @@ -1849,6 +1885,57 @@ void Profile::UpdateValues() { bluetooth_uuid_ = kDefaultBluetoothUUID; } + ReadStringValue(&aoa_filter_manufacturer_, + kDefaultAOAFilterManufacturer, + kTransportManagerSection, + kAOAFilterManufacturerKey); + + LOG_UPDATED_VALUE(aoa_filter_manufacturer_, + kAOAFilterManufacturerKey, + kTransportManagerSection); + + ReadStringValue(&aoa_filter_model_name_, + kDefaultAOAFilterModelName, + kTransportManagerSection, + kAOAFilterModelNameKey); + + LOG_UPDATED_VALUE( + aoa_filter_model_name_, kAOAFilterModelNameKey, kTransportManagerSection); + + ReadStringValue(&aoa_filter_description_, + kDefaultAOAFilterDescription, + kTransportManagerSection, + kAOAFilterDescriptionKey); + + LOG_UPDATED_VALUE(aoa_filter_description_, + kAOAFilterDescriptionKey, + kTransportManagerSection); + + ReadStringValue(&aoa_filter_version_, + kDefaultAOAFilterVersion, + kTransportManagerSection, + kAOAFilterVersionKey); + + LOG_UPDATED_VALUE( + aoa_filter_version_, kAOAFilterVersionKey, kTransportManagerSection); + + ReadStringValue(&aoa_filter_uri_, + kDefaultAOAFilterURI, + kTransportManagerSection, + kAOAFilterURIKey); + + LOG_UPDATED_VALUE( + aoa_filter_uri_, kAOAFilterURIKey, kTransportManagerSection); + + ReadStringValue(&aoa_filter_serial_number_, + kDefaultAOAFilterSerialNumber, + kTransportManagerSection, + kAOAFilterSerialNumber); + + LOG_UPDATED_VALUE(aoa_filter_serial_number_, + kAOAFilterSerialNumber, + kTransportManagerSection); + // Event MQ ReadStringValue( &event_mq_name_, kDefaultEventMQ, kTransportManagerSection, kEventMQKey); diff --git a/src/components/include/test/transport_manager/mock_transport_manager_settings.h b/src/components/include/test/transport_manager/mock_transport_manager_settings.h index eb12ce1b55..6ed4ac5d51 100644 --- a/src/components/include/test/transport_manager/mock_transport_manager_settings.h +++ b/src/components/include/test/transport_manager/mock_transport_manager_settings.h @@ -66,6 +66,12 @@ class MockTransportManagerSettings MOCK_CONST_METHOD0(cloud_app_retry_timeout, uint32_t()); MOCK_CONST_METHOD0(cloud_app_max_retry_attempts, uint16_t()); MOCK_CONST_METHOD0(bluetooth_uuid, const uint8_t*()); + MOCK_CONST_METHOD0(aoa_filter_manufacturer, const std::string&()); + MOCK_CONST_METHOD0(aoa_filter_model_name, const std::string&()); + MOCK_CONST_METHOD0(aoa_filter_description, const std::string&()); + MOCK_CONST_METHOD0(aoa_filter_version, const std::string&()); + MOCK_CONST_METHOD0(aoa_filter_uri, const std::string&()); + MOCK_CONST_METHOD0(aoa_filter_serial_number, const std::string&()); }; } // namespace transport_manager_test diff --git a/src/components/include/transport_manager/transport_manager_settings.h b/src/components/include/transport_manager/transport_manager_settings.h index 4a183ad22d..83d0b3e833 100644 --- a/src/components/include/transport_manager/transport_manager_settings.h +++ b/src/components/include/transport_manager/transport_manager_settings.h @@ -81,6 +81,13 @@ class TransportManagerSettings : public TransportManagerMMESettings { virtual uint16_t cloud_app_max_retry_attempts() const = 0; virtual const uint8_t* bluetooth_uuid() const = 0; + + virtual const std::string& aoa_filter_manufacturer() const = 0; + virtual const std::string& aoa_filter_model_name() const = 0; + virtual const std::string& aoa_filter_description() const = 0; + virtual const std::string& aoa_filter_version() const = 0; + virtual const std::string& aoa_filter_uri() const = 0; + virtual const std::string& aoa_filter_serial_number() const = 0; }; } // namespace transport_manager #endif // SRC_COMPONENTS_INCLUDE_TRANSPORT_MANAGER_TRANSPORT_MANAGER_SETTINGS_H_ diff --git a/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h b/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h index 2cc482297b..9d99b1b548 100644 --- a/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h +++ b/src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h @@ -48,7 +48,8 @@ namespace transport_adapter { class UsbDeviceScanner : public DeviceScanner, public UsbDeviceListener { public: - UsbDeviceScanner(class TransportAdapterController* controller); + UsbDeviceScanner(class TransportAdapterController* controller, + const TransportManagerSettings& settings); virtual ~UsbDeviceScanner(); protected: @@ -65,6 +66,7 @@ class UsbDeviceScanner : public DeviceScanner, public UsbDeviceListener { void SupportedDeviceFound(PlatformUsbDevice* device); TransportAdapterController* controller_; + const TransportManagerSettings& settings_; typedef std::list<PlatformUsbDevice*> Devices; Devices devices_; diff --git a/src/components/transport_manager/src/usb/usb_aoa_adapter.cc b/src/components/transport_manager/src/usb/usb_aoa_adapter.cc index 3ecc1e22f3..d1e9c64c3b 100644 --- a/src/components/transport_manager/src/usb/usb_aoa_adapter.cc +++ b/src/components/transport_manager/src/usb/usb_aoa_adapter.cc @@ -45,7 +45,7 @@ namespace transport_adapter { CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") UsbAoaAdapter::UsbAoaAdapter(resumption::LastState& last_state, const TransportManagerSettings& settings) - : TransportAdapterImpl(new UsbDeviceScanner(this), + : TransportAdapterImpl(new UsbDeviceScanner(this, settings), new UsbConnectionFactory(this), NULL, last_state, diff --git a/src/components/transport_manager/src/usb/usb_device_scanner.cc b/src/components/transport_manager/src/usb/usb_device_scanner.cc index 3a17203307..cff42123a4 100644 --- a/src/components/transport_manager/src/usb/usb_device_scanner.cc +++ b/src/components/transport_manager/src/usb/usb_device_scanner.cc @@ -47,6 +47,7 @@ CREATE_LOGGERPTR_GLOBAL(logger_, "TransportManager") class AoaInitSequence : public UsbControlTransferSequence { public: AoaInitSequence(); + AoaInitSequence(const TransportManagerSettings& settings); virtual ~AoaInitSequence() {} private: @@ -86,8 +87,9 @@ void UsbDeviceScanner::OnDeviceLeft(PlatformUsbDevice* device) { } } -UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller) - : controller_(controller) {} +UsbDeviceScanner::UsbDeviceScanner(TransportAdapterController* controller, + const TransportManagerSettings& settings) + : controller_(controller), settings_(settings) {} UsbDeviceScanner::~UsbDeviceScanner() {} @@ -171,14 +173,14 @@ class AoaInitSequence::AoaTurnIntoAccessoryMode : public UsbControlOutTransfer { } }; -static char manufacturer[] = "SDL"; -static char model_name[] = "Core"; -static char description[] = "SmartDeviceLink Core Component USB"; -static char version[] = "1.0"; -static char uri[] = "http://www.smartdevicelink.org"; -static char serial_num[] = "N000000"; - -AoaInitSequence::AoaInitSequence() : UsbControlTransferSequence() { +AoaInitSequence::AoaInitSequence(const TransportManagerSettings& settings) + : UsbControlTransferSequence() { + auto manufacturer = settings.aoa_filter_manufacturer().c_str(); + auto model_name = settings.aoa_filter_model_name().c_str(); + auto description = settings.aoa_filter_description().c_str(); + auto version = settings.aoa_filter_version().c_str(); + auto uri = settings.aoa_filter_uri().c_str(); + auto serial_num = settings.aoa_filter_serial_number().c_str(); AddTransfer(new AoaGetProtocolRequest); AddTransfer(new AoaSendIdString(0, manufacturer, sizeof(manufacturer))); AddTransfer(new AoaSendIdString(1, model_name, sizeof(model_name))); @@ -192,7 +194,8 @@ AoaInitSequence::AoaInitSequence() : UsbControlTransferSequence() { void UsbDeviceScanner::TurnIntoAccessoryMode(PlatformUsbDevice* device) { LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "PlatformUsbDevice: " << device); - GetUsbHandler()->StartControlTransferSequence(new AoaInitSequence, device); + GetUsbHandler()->StartControlTransferSequence(new AoaInitSequence(settings_), + device); } void UsbDeviceScanner::SupportedDeviceFound(PlatformUsbDevice* device) { |