summaryrefslogtreecommitdiffstats
path: root/navigation
AgeCommit message (Collapse)AuthorFilesLines
2023-08-24Rework vehicle signals support to use KUKSA.val databrokerScott Murray2-90/+139
Rework the VehicleSignals class and its use in the Navigation and Hvac classes to switch from using the original KUKSA.val server via WebSockets to the KUKSA.val databroker's gRPC "VAL" API. Notable changes: - The VehicleSignals API has changed a bit with respect to setting signals, callers now need to pass the new value as the type that matches the signal as opposed to always passing a string, and optionally indicate if an actuator's target or value is being set. Subscribe operations now also allow subscribing for either actuator targets or values. - It is possible that the values returned by get and subscribe operations will be changed to using QVariant instead of QStrings in a future follow up, but that has not been done in these changes. - The connected signal from VehicleSignals still has roughly the same meaning, but the authorize function and authorized signals are to some degree redundant now. They have been kept for compatibility, but may be removed in a follow up set of changes. - The section header in the .ini files expected by the VehicleSignalsConfig class has been changed from "vis-client" to "kuksa-client" since the databroker is not a VIS server, and to some degree forcing an update on the part of clients is useful since their authorization tokens also need to change. - The client key and certificate support has been removed from the VehicleSignalsConfig class, as they are no longer used in either the server or databroker as of KUKSA.val 0.4.0. A new optional parameter, "tls-server-name", has been added to work with the new TLS support behavior. It can be used to override the expected host name for connecting to a non-local databroker instance. - The Navigation constructor now takes an additional parameter to indicate whether the instance acts as a router or a client. The underlying need for this stems from an application acting as a router needing to subscribe to the destination setting actuator targets. Bug-AGL: SPEC-4762 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I253480ae2abf068dc6e41a495454960ed5c0feaf
2023-05-12navigation: uppercase state in Navigation::broadcastStatusScott Murray1-1/+3
The states for the Vehicle.Cabin.Infotainment.Navigation.State signal have been changed to uppercase values with the upgrade to VSS 3.1.1 to match upstream VSS signals. Uppercase the provided state name in Navigation::broadcastStatus to ensure clients respect this. Bug-AGL: SPEC-4761 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I2af108655470907c0c04ffafd7cd9375f30fc0fe
2022-09-19Add meson.build filesScott Murray1-0/+22
Add meson configuration missed in previous commit. Bug-AGL: SPEC-4559 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Idbcd961ab91cf48e7dc3b841aee3a79d0b615dcd
2022-09-10Add applaunchd gRPC API wrapperScott Murray2-31/+0
Changes: - Add applaunchd gRPC API wrapper in applauncher directory, clients can include AppLauncherClient.h to use it. - To facilitate generating protobuf and gRPC code with protoc, switch from CMake to meson for building. While the code generation can be done in CMake, it is a lot more straightforward with meson, and if use of this library continues meson will be easier to maintain. Known issues: - The behavior of the client implementation here with respect to the server side (i.e. applaunchd) going away is currently robust, but could stand improvement with some further investigation. As the code stands, starting applications works when applaunchd becomes available again, but the streaming status RPC that is tied to window activation in the homescreen does not reconnect, and there seem to be some things that need to be resolved with respect to Qt object connection expiry to do so. If the Qt demos continue to be used in a significant fashion, this may be worth picking up. Bug-AGL: SPEC-4559 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5cb480d4ce4d1cb944ebfd4114fb305f09f28ea3
2022-07-04Reimplement navigation API with VIS signalsScott Murray3-35/+163
Reimplement the navigation interface with use of VIS signals. There is some impedance mismatching done between VIS signal notifications and the API Qt signals to avoid changing the clients signficantly for now. If the Qt demo lifetime is extended, this may be revisited to either switch to directly using the VehicleSignals interface or doing a more granular mapping that works better with the VSS schema / VIS. Bug-AGL: SPEC-4408 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ieab42daddadca60de634f414171a133af53938f5 (cherry picked from commit 4ce04ff30e753556cf9cb371780f2a873f6fedaa)
2021-12-16Initial rework to replace app framework usageScott Murray3-121/+5
Changes: - Remove "core" code related to WebSocket messaging for the app framework. - Stub out hvac, navigation, network, and weather interfaces. This allows building several of the demo applications without modification for now. The network interface will definitely be reused to plumb in a new connman-glib library derived from the previous network binding. The others may potentially be reused to plumb in other new backend implementations. - Update the Network interface object constructor arguments to add a agent registration flag. This prepares for the connman-glib switch and means users will not need to be updated twice. - Update the Bluetooth interface to use a new bluez-glib library that is derived from the previous Bluetooth binding. This has been successfully tested with a the Settings application. - Remove signal-composer and voice API interface code as there are no direct replacements planned. The signal-composer interface was effectively exposing the binding events, so has little reuse potential with a new backend. For the voice interface, if some form of Alexa support becomes desirable, it can potentially be brought back for adaptation if required. - Disable compilation of the remaining interfaces for now. Some like map, pbap, and mediaplayer are very likely to be used as the basis for updating their associated applications, so keeping the code for the planned iterative development seems easier. - Updated copyright lines in all touched files. Bug-AGL: SPEC-4182 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ib717ac8ac68ec457eaee74755dcf9d4f36b79d12
2020-06-09split qtappfw in independent qtappfw-* modulesRaquel Medina2-2/+31
Bug-AGL: SPEC-3390 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: Ib8096c8dd2d59d3728e824ae13ba401da0971dc4
2020-05-04share MessageEngine instanceRaquel Medina2-8/+7
Share MessageEngine instance among clients in the same process using a common socket (same url). - add MessageEngineFactory class; - extend std::unordered_map<> to use QString as key; - use std::shared_ptr<MessageEngine> to share ownership among MessageEngineFactory and the engine clients; - force MessagEngine parent object null to avoid life cycle dependency on a parent; - protect insertions & deletions in m_calls map; Also, not directly related but as part of testing these changes: cleanup on voice to remove superflous model sorting (there's just one voice model for alexa voice agent). Bug-AGL: SPEC-3112 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: Ie2304453dc37723dac13d256286eeb85f84ca2ab
2020-04-21remove deprecated filesRaquel Medina2-70/+0
Bug-AGL: SPEC-3112 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I044a406eb2309d4ae0547969cb2bf33b398ba2ae
2020-03-23rework message hierarchyRaquel Medina3-45/+63
Rework message hierarchy with the final objective of splitting libqtappfw into several libraries. This commit carries the following changes: - Simplify message hierarchy, keeping abstract Message class, adding specialization for call and event messages, keeping ResponseMessage, and removing all module specific specializations. - Add MessageFactory class to create message objects. - Change messages life cycle: using smart pointers and removing QObject from message hierarchy (a Message is not a QObject anymore and thus 'deleteLater()' is not available). - Adapt all modules to use new message hierarchy. - Keep ResponseMessage original constructor to avoid breaking TaskManager. - Message constructors have been kept public, but will go private on a follow-up patch (once TaskManager class has been modified to use new MessageFactory). Bug-AGL: SPEC-3112 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I3a7a6325209ddeca2293f1ac745371861a947bfb
2020-03-09eliminate unneeded dependencies on public headersRaquel Medina2-9/+12
- Remove unneeded dependencies from libqtappfw public headers, specifically MessageEngine and Message hierarchy header files, in preparation for refactoring work on these areas. This change helps shield client apps from the upcoming changes in the library, and highlight the separation between the library's core and the various modules providing public interfaces to those apps. - Make MessageType an scoped enum to fwd declare it. - Update Copyright statement on files updated by this patch. Bug-AGL: SPEC-3112 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I12fd9cdc034aa1166f6448c07befadd9d2042b05
2019-11-12libqtappfw: remove not currently implemented broadcastWaypointsicefish_8.99.1icefish/8.99.18.99.1Matt Ranostay2-10/+0
broadcastWaypoints doesn't actually broadcast out a valid event currently, and thus just remove for now. Bug-AGL: SPEC-2880 Change-Id: I9e865113949c236e59e27319b02ea22178a9dc9e Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-10-31libqtappfw: add initial navigation supportMatt Ranostay5-0/+287
Add initial navigation service support in qtappfw for new agl-service-navigation rewrite. Bug-AGL: SPEC-2880 Change-Id: I276de006af3c1e19e669ae3b9d05c92360893467 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>