summaryrefslogtreecommitdiffstats
path: root/needlefish_13.92.0.xml
blob: 456ed921c8517f77742d17b56a611abd481249fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?xml version="1.0" encoding="UTF-8"?>
<manifest>

  <!-- remote servers to query -->
  <remote name="agl"
         fetch="https://gerrit.automotivelinux.org/gerrit/"
         review="https://gerrit.automotivelinux.org/gerrit/"
         pushurl="ssh://gerrit.automotivelinux.org:29418"
  />
  <remote name="yocto" fetch="https://git.yoctoproject.org/git/" />
  <remote name="github" fetch="https://github.com/" />
  <remote name="openembedded" fetch="https://git.openembedded.org/" />

  <!-- defaults -->
  <default remote="agl" sync-j="4" revision="refs/tags/needlefish/13.92.0"/>


  <!-- CORE -->
  <!-- use agl revisions/branches here -->

  <!-- AGL things. -->
  <project name="AGL/meta-agl" path="meta-agl" />
  <project name="AGL/meta-agl-demo" path="meta-agl-demo" />
  <project name="AGL/meta-agl-devel" path="meta-agl-devel" />


  <!-- ALL EXTERNAL REPOS BELOW USE A FIXED REVISION ! -->

  <!-- YOCTO & OE -->

  <!-- Yocto/OpenEmbedded things. -->
  <project name="poky" path="external/poky" remote="yocto" revision="a5ea426b1da472fc8549459fff3c1b8c6e02f4b5" upstream="kirkstone" />
  <project name="openembedded/meta-openembedded" path="external/meta-openembedded" remote="github" revision="fb7b26b0fb243620f52a61296f4eda6af6ad1af6" upstream="kirkstone" />


  <!-- UPSTREAM COMPONENTS -->

  <!-- meta-virtualization -->
  <project name="meta-virtualization" path="external/meta-virtualization" remote="yocto" revision="d81de7af35cc4ac803c1567a8af1c5725f80ef7d" upstream="kirkstone"/>

  <!-- Qt things -->
  <project name="meta-qt5/meta-qt5" path="external/meta-qt5" remote="github" revision="5b71df60e523423b9df6793de9387f87a149ac42" upstream="kirkstone"/>

  <!-- Security layer -->
  <project name="meta-security" path="external/meta-security" remote="yocto" revision="d3d8e62bf1caa3870a504c0addcfd200b33c189f" upstream="kirkstone"/>

  <!-- SELinux layer -->
  <project name="meta-selinux" path="external/meta-selinux" remote="yocto" revision="a401f4b2816a0b41ce8d9351542658c721935bcd" upstream="kirkstone"/>

  <!-- meta-codescanner - support for using CodeScanner during the build -->
  <project name="dl9pf/meta-codechecker" path="external/meta-codechecker" remote="github" revision="f27a46feb2291d333744850a82d5c8af303e3bd5" upstream="master"/>

  <!-- meta-spdxscanner - support for fossology -->
  <project name="meta-spdxscanner" path="external/meta-spdxscanner" remote="yocto" revision="25373bc58ece8b6f07680a103b4a1bbbc99e0db1" upstream="master"/>

  <!-- clang support -->
  <project name="kraj/meta-clang" path="external/meta-clang" remote="github" revision="d669d873edf68dc7440bb07096737203bb7ec505" upstream="kirkstone"/>

  <!-- meta-python2 as stop-gap to allow chromium to build until upstream fixes the dependencies -->
  <project name="meta-python2" path="external/meta-python2" remote="openembedded" revision="f02882e2aa9279ca7becca8d0cedbffe88b5a253" upstream="kirkstone" />

  <!-- meta-flutter -->
  <project name="meta-flutter/meta-flutter" path="external/meta-flutter" remote="github" revision="090231ac1d9c8745cf08997fa7e09bc810b7897c" upstream="kirkstone"/>

  <!-- BSPs -->

  <!-- Renesas Gen3 specific things -->
  <project name="renesas-rcar/meta-renesas" path="bsp/meta-renesas" remote="github" revision="7320fd6e4df8d622e741c923eb13c1c355a3972c" upstream="kirkstone-dev"/>
  <project name="CogentEmbedded/meta-rcar" path="bsp/meta-rcar" remote="github" revision="511808a3e794ad0e35386f83d3d159c9ba48b4be" upstream="kirkstone-Yocto-v5.9.0"/>
  <project name="AGL/meta-agl-refhw" path="bsp/meta-agl-refhw" />

  <!-- consolidate on meta-freescale from git.yoctoproject.org -->
  <project name="meta-freescale" path="bsp/meta-freescale" remote="yocto" revision="cdd388064845688ac3570aa76a5c01e3df32a67a" upstream="kirkstone"/>
  <project name="Freescale/meta-freescale-3rdparty" path="bsp/meta-freescale-3rdparty" remote="github" revision="3a3bc0ef50031f6254f7b5f9c7b799051ec74e09" upstream="kirkstone"/>

  <!-- TI Vayu / Jacinto 6 / DRA7 -->
  <project name="meta-arm" path="bsp/meta-arm" remote="yocto" revision="50b34c5cc9496441152ad28bf1022e5fc5ab0a7e" upstream="kirkstone"/>
  <project name="meta-ti" path="bsp/meta-ti" remote="yocto" revision="88e8c1cbf370940fae6dac4a8b732366f75173dc" upstream="master"/>

  <!-- Raspberry Pi 4 -->
  <project name="meta-raspberrypi" path="bsp/meta-raspberrypi" remote="yocto" revision="0135a02ea577bd39dd552236ead2c5894d89da1d" upstream="kirkstone"/>

  <!-- Sancloud BSP layers -->
  <project name="SanCloudLtd/meta-sancloud" path="bsp/meta-sancloud" remote="github" revision="a34ca4c3fedfed1915ec3acc40bc8c0edd70e8a4" upstream="dunfell"/>
  <project name="EmbeddedAndroid/meta-rtlwifi" path="bsp/meta-rtlwifi" remote="github" revision="98b2b2c34f186050e6092bc4f17ecb69aef6148a" upstream="master"/>

</manifest>
">if(!afb_event_is_valid(ss_i->second)) { if(!subscribe) { NOTICE(interface, "Event isn't valid, it can't be unsubscribed."); ret = 1; } else { ss_i->second = afb_daemon_make_event(afbitf->daemon, ss_i->first.genericName); if (!afb_event_is_valid(ss_i->second)) { ERROR(interface, "Can't create an event, something goes wrong."); ret = 0; } } } } else { subscribed_signals[sig_i] = afb_daemon_make_event(afbitf->daemon, sig_i.genericName); if (!afb_event_is_valid(ss_i->second)) { ERROR(interface, "Can't create an event, something goes wrong."); ret = 0; } } if (((subscribe ? afb_req_subscribe : afb_req_unsubscribe)(request, subscribed_signals[sig_i])) < 0) { ERROR(interface, "Operation goes wrong for signal: %s", sig_i.genericName); ret = 0; } else ret = 1; return ret; } static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, const std:vector<CanSignal>& signals) { std::vector<CanSignal>::iterator signal_i; std::map <CanSignal, struct afb_event>::iterator s_signal_i; int ret; // TODO: lock the subscribed_signals when insert/remove for(const auto& signal_i : signals) { ret = subscribe_unsubscribe_signal(request, subscribe, signal_i); if(ret == 0) return ret; } } static int subscribe_unsubscribe_all(struct afb_req request, bool subscribe) { int i, n, e; n = sizeof OBD2_PIDS / sizeof * OBD2_PIDS; e = 0; for (i = 0 ; i < n ; i++) e += !subscribe_unsubscribe_sig(request, subscribe, &OBD2_PIDS[i]); return e == 0; } static int subscribe_unsubscribe_name(struct afb_req request, bool subscribe, const char *name) { std::vector<CanSignal> sig; int ret = 0; if (!strcmp(name, "*")) ret = subscribe_unsubscribe_all(request, subscribe); else { //if(obd2_handler_c.is_obd2_signal(name)) if(false) { // TODO } else { sig = find_can_signals(name); if (sig.empty()) ret = 0; } ret = subscribe_unsubscribe_signals(request, subscribe, sig); } return ret; } static void subscribe_unsubscribe(struct afb_req request, bool subscribe) { int ok, i, n; struct json_object *args, *a, *x; /* makes the subscription/unsubscription */ args = afb_req_json(request); if (args == NULL || !json_object_object_get_ex(args, "event", &a)) { ok = subscribe_unsubscribe_all(request, subscribe); } else if (json_object_get_type(a) != json_type_array) { ok = subscribe_unsubscribe_name(request, subscribe, json_object_get_string(a)); } else { n = json_object_array_length(a); ok = 0; for (i = 0 ; i < n ; i++) { x = json_object_array_get_idx(a, i); if (subscribe_unsubscribe_name(request, subscribe, json_object_get_string(x))) ok++; } ok = (ok == n); } /* send the report */ if (ok) afb_req_success(request, NULL, NULL); else afb_req_fail(request, "error", NULL); } static void subscribe(struct afb_req request) { subscribe_unsubscribe(request, true); } static void unsubscribe(struct afb_req request) { subscribe_unsubscribe(request, false); } static const struct afb_verb_desc_v1 verbs[]= { { .name= "subscribe", .session= AFB_SESSION_NONE, .callback= subscribe, .info= "subscribe to notification of CAN bus messages." }, { .name= "unsubscribe", .session= AFB_SESSION_NONE, .callback= unsubscribe, .info= "unsubscribe a previous subscription." }, {NULL} }; static const struct afb_binding binding_desc = { .type = AFB_BINDING_VERSION_1, .v1 = { .info = "CAN bus service", .prefix = "can", .verbs = verbs } }; const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) { interface = itf; return &binding_desc; } /** * @brief Initialize the binding. * * @param[in] service Structure which represent the Application Framework Binder. * * @return Exit code, zero if success. */ int afbBindingV1ServiceInit(struct afb_service service) { std::ifstream fd_conf; fd_conf = afb_daemon_rootdir_open_locale(interface->daemon, "can_bus.json", O_RDONLY, NULL); /* Open CAN socket */ can_bus_t can_bus_handler(interface, )); CanBus_handler.open(); CanBus_handler.start_threads(); }