diff options
-rw-r--r-- | docs/3-Usage.md | 2 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-apidef.h | 4 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-apidef.json | 2 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-hat.cpp | 97 |
4 files changed, 4 insertions, 101 deletions
diff --git a/docs/3-Usage.md b/docs/3-Usage.md index 317e0724..479dd51e 100644 --- a/docs/3-Usage.md +++ b/docs/3-Usage.md @@ -315,7 +315,7 @@ low-can write { "signal_name": "engine.speed", "value": 1256} ``` To be able to use write capability, you need to add the permission - ```urn:AGL:permission:low-can:platform:write``` to your package configuration + ```urn:AGL:permission::platform:can:write``` to your package configuration file that need to write on CAN bus through **low-can** api. Then in order to write on bus, your app needs to call verb **auth** diff --git a/low-can-binding/binding/low-can-apidef.h b/low-can-binding/binding/low-can-apidef.h index 6f6ec926..1182b4fe 100644 --- a/low-can-binding/binding/low-can-apidef.h +++ b/low-can-binding/binding/low-can-apidef.h @@ -57,10 +57,10 @@ static const char _afb_description_v2_low_can[] = #include <afb/afb-binding> #endif /*static const struct afb_auth _afb_auths_v2_low_can[] = { - { .type = afb_auth_Permission, .text = "urn:AGL:permission:low-can:platform:write", .next = NULL} + { .type = afb_auth_Permission, .text = "urn:AGL:permission:*:*platform:can:write ", .next = NULL} };*/ -const struct afb_auth _afb_auths_v2_low_can[] = {afb::auth_permission("urn:AGL:permission:low-can:platform:write")}; +const struct afb_auth _afb_auths_v2_low_can[] = {afb::auth_permission("urn:AGL:permission:*:*platform:can:write ")}; void subscribe(struct afb_req req); void unsubscribe(struct afb_req req); diff --git a/low-can-binding/binding/low-can-apidef.json b/low-can-binding/binding/low-can-apidef.json index 623b4c71..2c7de4a2 100644 --- a/low-can-binding/binding/low-can-apidef.json +++ b/low-can-binding/binding/low-can-apidef.json @@ -85,7 +85,7 @@ "permission": "urn:AGL:permission:low-can:public:monitor" }, "write": { - "permission": "urn:AGL:permission:low-can:platform:write" + "permission": "urn:AGL:permission::platform:can:write " } }, "responses": { diff --git a/low-can-binding/binding/low-can-hat.cpp b/low-can-binding/binding/low-can-hat.cpp deleted file mode 100644 index 2b5baa36..00000000 --- a/low-can-binding/binding/low-can-hat.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2015, 2016 "IoT.bzh" - * Author "Romain Forlot" <romain.forlot@iot.bzh> - * Author "Loic Collignon" <loic.collignon@iot.bzh> - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "low-can-hat.hpp" -#include "low-can-subscription.hpp" - -#include <map> -#include <queue> -#include <mutex> -#include <vector> -#include <json-c/json.h> - -#include "application.hpp" -#include "../can/can-bus.hpp" - -extern "C" -{ - static int initv2(); - - static constexpr struct afb_auth loa_afb_auth(const unsigned loa) - { - struct afb_auth a = {}; - a.type = afb_auth_LOA; - a.loa = loa; - return a; - } - - static constexpr struct afb_auth perm_afb_auth(const char* permission) - { - struct afb_auth a = {}; - a.type = afb_auth_Permission; - a.text = permission; - return a; - } - - static const struct afb_auth afb_auth_loa_1 = { loa_afb_auth(1) }; - static const struct afb_auth afb_auth_perm = { perm_afb_auth("urn:AGL:permission::platform:can:write") }; - - static const struct afb_verb_v2 verbs[]= - { - { .verb= "auth", .callback= auth, .auth= &afb_auth_perm, .info="Authentification against service to get the required level of confidence", .session= AFB_SESSION_NONE}, - { .verb= "subscribe", .callback= subscribe, .auth= NULL, .info="Let subscribe to signals", .session= AFB_SESSION_NONE}, - { .verb= "unsubscribe", .callback= unsubscribe, .auth= NULL, .info="Let unsubscribe signals", .session= AFB_SESSION_NONE}, - { .verb= "write", .callback= write, .auth= &afb_auth_loa_1, .info="Write a single CAN message on a CAN bus", .session= AFB_SESSION_LOA_1}, - { .verb= "get", .callback= get, .auth=NULL, .info="get a current value of CAN message", .session= AFB_SESSION_NONE}, - { .verb= "list",.callback= list, .auth=NULL, .info="get a supported CAN message list", .session= AFB_SESSION_NONE}, - { .verb= NULL, .callback= NULL, .auth= NULL, .info=NULL, .session= 0} - }; - - const struct afb_binding_v2 afbBindingV2 { - .api = "low-can", - .specification = NULL, - .info = "API to Low level CAN service, read and decode the bus", - .verbs = verbs, - .preinit = NULL, - .init = initv2, - .onevent = NULL, - .noconcurrency = 0 - }; - - /// @brief Initialize the binding. - /// - /// @param[in] service Structure which represent the Application Framework Binder. - /// - /// @return Exit code, zero if success. - static int initv2() - { - can_bus_t& can_bus_manager = application_t::instance().get_can_bus_manager(); - - can_bus_manager.set_can_devices(); - can_bus_manager.start_threads(); - - /// Initialize Diagnostic manager that will handle obd2 requests. - /// We pass by default the first CAN bus device to its Initialization. - /// TODO: be able to choose the CAN bus device that will be use as Diagnostic bus. - if(application_t::instance().get_diagnostic_manager().initialize()) - return 0; - - AFB_ERROR("There was something wrong with CAN device Initialization."); - return 1; - } -}; |