summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2019-07-24 12:36:58 -0400
committerJackLivio <jack@livio.io>2019-07-24 12:36:58 -0400
commit36faeb447b32d904d3102c6402e464768064f97f (patch)
treec4b04a4d8ac539fc14814ae43ebac6b4cc934823
parenta6d1390dab380805ef475552b63a95843ed97133 (diff)
downloadsdl_core-feature/usb_ini_config.tar.gz
Add AOA filtering parameters to .ini configurationfeature/usb_ini_config
-rw-r--r--src/appMain/smartDeviceLink.ini9
-rw-r--r--src/components/config_profile/include/config_profile/profile.h13
-rw-r--r--src/components/config_profile/src/profile.cc87
-rw-r--r--src/components/include/test/transport_manager/mock_transport_manager_settings.h6
-rw-r--r--src/components/include/transport_manager/transport_manager_settings.h7
-rw-r--r--src/components/transport_manager/include/transport_manager/usb/usb_device_scanner.h4
-rw-r--r--src/components/transport_manager/src/usb/usb_aoa_adapter.cc2
-rw-r--r--src/components/transport_manager/src/usb/usb_device_scanner.cc25
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) {