diff options
author | Nikita Vaganov <nvaganov@luxoft.com> | 2014-07-07 19:36:31 +0400 |
---|---|---|
committer | Nikita Vaganov <nvaganov@luxoft.com> | 2014-07-07 19:36:31 +0400 |
commit | bf53bb7e5981f16d31be569aa5de57012b101ac6 (patch) | |
tree | d41b4e2a1d74b50f9f7ec01d0af7803f7df52198 | |
parent | cbc6af262bf70ee99d3aeec345272f2dcca032c6 (diff) | |
parent | b54b900e21a3b6d9814a42d4f05740d2f72f143d (diff) | |
download | sdl_core-bf53bb7e5981f16d31be569aa5de57012b101ac6.tar.gz |
Merge branch 'develop' of https://adc.luxoft.com/stash/scm/ford/applink into develop
-rw-r--r-- | src/appMain/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/appMain/life_cycle.cc | 7 | ||||
-rw-r--r-- | src/appMain/life_cycle.h | 1 | ||||
-rwxr-xr-x | src/components/dbus/codegen/make_RequestToSDL_class.py | 76 | ||||
-rw-r--r-- | src/components/interfaces/HMI_API.xml | 2 | ||||
-rw-r--r-- | src/components/interfaces/QT_HMI_API.xml | 2 | ||||
-rw-r--r-- | src/components/smart_objects/src/smart_object.cc | 1 | ||||
-rwxr-xr-x | tools/Utils/initialize_git.sh | 3 |
8 files changed, 75 insertions, 19 deletions
diff --git a/src/appMain/CMakeLists.txt b/src/appMain/CMakeLists.txt index ffec9d994b..46d279a841 100644 --- a/src/appMain/CMakeLists.txt +++ b/src/appMain/CMakeLists.txt @@ -183,7 +183,7 @@ endif () # Install rules install(TARGETS ${PROJECT} DESTINATION bin) install( - FILES log4cxx.properties audio.8bit.wav test.txt smartDeviceLink.ini policy_table.json + FILES log4cxx.properties audio.8bit.wav test.txt smartDeviceLink.ini hmi_capabilities.json sdl_preloaded_pt.json DESTINATION bin ) diff --git a/src/appMain/life_cycle.cc b/src/appMain/life_cycle.cc index 8608617e36..22d03b4102 100644 --- a/src/appMain/life_cycle.cc +++ b/src/appMain/life_cycle.cc @@ -81,6 +81,7 @@ LifeCycle::LifeCycle() , mb_pasa_adapter_thread_(NULL) #endif // PASA_HMI #endif // CUSTOMER_PASA + , components_started(false) { } bool LifeCycle::StartComponents() { @@ -137,6 +138,7 @@ bool LifeCycle::StartComponents() { app_manager_->set_protocol_handler(protocol_handler_); app_manager_->set_connection_handler(connection_handler_); app_manager_->set_hmi_message_handler(hmi_handler_); + components_started = true; return true; } @@ -292,6 +294,10 @@ bool LifeCycle::InitMessageSystem() { #endif // CUSTOMER_PASA void LifeCycle::StopComponents() { + if (components_started == false) { + LOG4CXX_ERROR(logger_, "Components wasn't started"); + return; + } hmi_handler_->set_message_observer(NULL); connection_handler_->set_connection_handler_observer(NULL); protocol_handler_->RemoveProtocolObserver(app_manager_); @@ -390,6 +396,7 @@ void LifeCycle::StopComponents() { time_tester_ = NULL; } #endif //TIME_TESTER + components_started =false; } } // namespace main_namespace diff --git a/src/appMain/life_cycle.h b/src/appMain/life_cycle.h index c029cc606f..f6a29ac155 100644 --- a/src/appMain/life_cycle.h +++ b/src/appMain/life_cycle.h @@ -108,6 +108,7 @@ class LifeCycle : public utils::Singleton<LifeCycle> { #endif // PASA_HMI #endif // CUSTOMER_PASA + bool components_started; DISALLOW_COPY_AND_ASSIGN(LifeCycle); FRIEND_BASE_SINGLETON_CLASS(LifeCycle); diff --git a/src/components/dbus/codegen/make_RequestToSDL_class.py b/src/components/dbus/codegen/make_RequestToSDL_class.py index 07787fdb74..95eedafa63 100755 --- a/src/components/dbus/codegen/make_RequestToSDL_class.py +++ b/src/components/dbus/codegen/make_RequestToSDL_class.py @@ -60,12 +60,10 @@ def defaultValue(param): class Impl(FordXmlParser): - def args_for_function_definition(self, params, out): - if len(params) == 0: - out.write('QJSValue hmi_callback') - return - for param in params: - out.write('QVariant ' + param.get('name') + ', ') + def args_for_function_definition(self, params, iface_name, out): + for param_el in params: + param = self.make_param_desc(param_el, iface_name) + out.write('%s %s,' % (self.qt_param_type(param), param.name)) out.write('QJSValue hmi_callback') @@ -78,7 +76,7 @@ class Impl(FordXmlParser): all_params.append(param_el) with CodeBlock(out) as output: output.write("Q_INVOKABLE void " + interface_el.get('name') + "_" +request.get('name') + "(") - impl.args_for_function_definition(all_params, out) + impl.args_for_function_definition(all_params, interface_el.get('name'), out) output.write(");\n") @@ -100,20 +98,74 @@ class Impl(FordXmlParser): out.write('#endif // SRC_COMPONENTS_QTHMI_QMLMODELQT5_REQUESTTOSDL_') + def qt_param_type(self, param): + if not param.mandatory: + param_copy = copy(param) + param_copy.mandatory = True + return "QVariant" + if param.array: + param_copy = copy(param) + param_copy.array = False + if param.type == 'String': + return "QStringList" + return "QList< " + self.qt_param_type(param_copy) + " >" + if param.type == 'Integer' or param.enum: + return 'int' + elif param.type == 'String': + return 'QString' + elif param.type == 'Boolean': + return 'bool' + elif param.type == 'Float': + return 'double' + elif param.struct: + return "_".join(param.fulltype) + return "xxx" + + + def optional_param_type(self, param): + if param.array: + param_copy = copy(param) + param_copy.array = False + if param.type == 'String': + return "QStringList" + return "QList< " + self.qt_param_type(param_copy) + " >" + if param.type == 'Integer' or param.enum: + return 'int' + elif param.type == 'String': + return 'QString' + elif param.type == 'Boolean': + return 'bool' + elif param.type == 'Float': + return 'double' + elif param.struct: + return "_".join(param.fulltype) + return "xxx" + + def make_requests_for_source(self, out): for interface_el in self.el_tree.findall('interface'): request_responses = self.find_request_response_pairs_by_provider(interface_el, "sdl") for (request, response) in request_responses: request_name = request.get('name') - request_full_name = interface_el.get('name') + '_' + request_name + iface_name = interface_el.get('name') + request_full_name = iface_name + '_' + request_name out.write('void RequestToSDL::' + request_full_name + '(') for param_el in request.findall('param'): - out.write('QVariant ' + param_el.get('name') + ', ') + param = self.make_param_desc(param_el, iface_name) + out.write('%s %s,' % (self.qt_param_type(param), param.name)) + out.write('QJSValue hmi_callback) {\n') with CodeBlock(out) as output: output.write('QList<QVariant> args;\n') for param_el in request.findall('param'): - output.write('args << ' + param_el.get('name') + ';\n') + param = self.make_param_desc(param_el, iface_name) + if not param.mandatory: + output.write("OptionalArgument<%s> o_%s;\n" % (self.optional_param_type(param), param.name)) + output.write("o_%s.presence = !%s.isNull();\n" % (param.name, param.name)) + output.write("o_%s.val = %s.value<%s>();\n" % (param.name, param.name, self.optional_param_type(param))) + output.write('args << QVariant::fromValue(o_%s);\n' % param.name) + else: + output.write('args << ' + param.name + ';\n') output.write('new requests::' + request_full_name + '(' + interface_el.get('name') + ', "' + request_name + '", args, hmi_callback);\n}\n') @@ -134,9 +186,6 @@ class Impl(FordXmlParser): output.write('this->deleteLater();\n') out.write('}\n\n') impl.make_requests_for_source(out) - - - arg_parser = ArgumentParser(description="Generator of Qt to QDbus C++ part") @@ -207,6 +256,7 @@ header_out.write("#define SRC_COMPONENTS_QTHMI_QMLMODELQT5_REQUESTTOSDL_\n\n") header_out.write("#include <QJSValue>\n") header_out.write("#include <QObject>\n") header_out.write("#include <QVariant>\n") +header_out.write("#include <QStringList>\n") impl.make_header_file(header_out) diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml index 95b895fa3b..219acf195a 100644 --- a/src/components/interfaces/HMI_API.xml +++ b/src/components/interfaces/HMI_API.xml @@ -362,7 +362,7 @@ <element name="MFD5"> <description> 5 inch GEN1.1 display </description> </element> - <element name="GEN3_8-INCH" internal_name="GEN3_8_INCH" /> + <element name="GEN3_8_INCH"/> </enum> <enum name="ImageType"> diff --git a/src/components/interfaces/QT_HMI_API.xml b/src/components/interfaces/QT_HMI_API.xml index 04c8f6793c..0607a95506 100644 --- a/src/components/interfaces/QT_HMI_API.xml +++ b/src/components/interfaces/QT_HMI_API.xml @@ -339,7 +339,7 @@ <element name="MFD5"> <description> 5 inch GEN1.1 display </description> </element> - <element name="GEN3_8-INCH" internal_name="GEN3_8_INCH"/> + <element name="GEN3_8_INCH"/> </enum> <enum name="ImageType"> <description>Contains information about the type of image.</description> diff --git a/src/components/smart_objects/src/smart_object.cc b/src/components/smart_objects/src/smart_object.cc index 46404818e7..d95354cebe 100644 --- a/src/components/smart_objects/src/smart_object.cc +++ b/src/components/smart_objects/src/smart_object.cc @@ -40,6 +40,7 @@ #include <sstream> #include <iomanip> #include <iterator> +#include <limits> namespace NsSmartDeviceLink { namespace NsSmartObjects { diff --git a/tools/Utils/initialize_git.sh b/tools/Utils/initialize_git.sh index 25ad735408..20380ddbb2 100755 --- a/tools/Utils/initialize_git.sh +++ b/tools/Utils/initialize_git.sh @@ -21,9 +21,6 @@ DOT_GIT=$GIT_REPO/.git/ POLICY_REPO=$GIT_REPO/src/components/policy POLICY_DOT_GIT=$GIT_REPO/.git/modules/src/components/policy -git submodule init -git submodule update - echo "Enter first name: " read FIRST_NAME echo "Enter last name: " |