summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Vaganov <nvaganov@luxoft.com>2014-07-07 19:36:31 +0400
committerNikita Vaganov <nvaganov@luxoft.com>2014-07-07 19:36:31 +0400
commitbf53bb7e5981f16d31be569aa5de57012b101ac6 (patch)
treed41b4e2a1d74b50f9f7ec01d0af7803f7df52198
parentcbc6af262bf70ee99d3aeec345272f2dcca032c6 (diff)
parentb54b900e21a3b6d9814a42d4f05740d2f72f143d (diff)
downloadsdl_core-bf53bb7e5981f16d31be569aa5de57012b101ac6.tar.gz
Merge branch 'develop' of https://adc.luxoft.com/stash/scm/ford/applink into develop
-rw-r--r--src/appMain/CMakeLists.txt2
-rw-r--r--src/appMain/life_cycle.cc7
-rw-r--r--src/appMain/life_cycle.h1
-rwxr-xr-xsrc/components/dbus/codegen/make_RequestToSDL_class.py76
-rw-r--r--src/components/interfaces/HMI_API.xml2
-rw-r--r--src/components/interfaces/QT_HMI_API.xml2
-rw-r--r--src/components/smart_objects/src/smart_object.cc1
-rwxr-xr-xtools/Utils/initialize_git.sh3
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: "