aboutsummaryrefslogtreecommitdiffstats
path: root/low-can-binding/diagnostic
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-07-04 14:27:16 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-07-04 14:27:16 +0200
commitc16ccc9d6a1de5406ba0e74f757403ac7553b6a8 (patch)
tree16df16f5cf53367e21aa865426ded8e9fd78a0f3 /low-can-binding/diagnostic
parent621f55e3e4b104d5771a38aae4db5439fe9a5aa8 (diff)
DAB RC3 Fixes follows appfw API break.
Following functions now return 0 on success and negative value on failure : o afb_req_subcall o afb_req_subcall_sync o afb_service_call o afb_service_call_sync Verbosity macros used in v2 bindings now needs to be prefixed with AFB_ (ERROR -> AFB_ERROR) Change-Id: Ica4346f215bb142fcda0c6ea15e7074f7091f4cc Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/diagnostic')
-rw-r--r--low-can-binding/diagnostic/active-diagnostic-request.cpp4
-rw-r--r--low-can-binding/diagnostic/diagnostic-manager.cpp24
2 files changed, 14 insertions, 14 deletions
diff --git a/low-can-binding/diagnostic/active-diagnostic-request.cpp b/low-can-binding/diagnostic/active-diagnostic-request.cpp
index f503e0a5..1ccb2e74 100644
--- a/low-can-binding/diagnostic/active-diagnostic-request.cpp
+++ b/low-can-binding/diagnostic/active-diagnostic-request.cpp
@@ -22,7 +22,7 @@
#include "../binding/application.hpp"
-#define ERROR_PID 0xFF
+#define AFB_ERROR_PID 0xFF
std::string active_diagnostic_request_t::prefix_ = "diagnostic_messages";
@@ -100,7 +100,7 @@ uint16_t active_diagnostic_request_t::get_pid() const
{
if (handle_->request.has_pid)
return handle_->request.pid;
- return ERROR_PID;
+ return AFB_ERROR_PID;
}
DiagnosticRequestHandle* active_diagnostic_request_t::get_handle()
diff --git a/low-can-binding/diagnostic/diagnostic-manager.cpp b/low-can-binding/diagnostic/diagnostic-manager.cpp
index 61aa699d..89303f1a 100644
--- a/low-can-binding/diagnostic/diagnostic-manager.cpp
+++ b/low-can-binding/diagnostic/diagnostic-manager.cpp
@@ -52,7 +52,7 @@ bool diagnostic_manager_t::initialize()
reset();
initialized_ = true;
- DEBUG("Diagnostic Manager initialized");
+ AFB_DEBUG("Diagnostic Manager initialized");
return initialized_;
}
@@ -62,13 +62,13 @@ bool diagnostic_manager_t::initialize()
void diagnostic_manager_t::init_diagnostic_shims()
{
shims_ = diagnostic_init_shims(shims_logger, shims_send, NULL);
- DEBUG("Shims initialized");
+ AFB_DEBUG("Shims initialized");
}
/// @brief Force cleanup all active requests.
void diagnostic_manager_t::reset()
{
- DEBUG("Clearing existing diagnostic requests");
+ AFB_DEBUG("Clearing existing diagnostic requests");
cleanup_active_requests(true);
}
@@ -132,7 +132,7 @@ void diagnostic_manager_t::shims_logger(const char* format, ...)
char buffer[256];
vsnprintf(buffer, 256, format, args);
- DEBUG("%s", buffer);
+ AFB_DEBUG("%s", buffer);
va_end(args);
}
@@ -201,11 +201,11 @@ void diagnostic_manager_t::cleanup_request(active_diagnostic_request_t* entry, b
{
cancel_request(entry);
find_and_erase(entry, recurring_requests_);
- DEBUG("Cancelling completed, recurring request: %s", request_string);
+ AFB_DEBUG("Cancelling completed, recurring request: %s", request_string);
}
else if (!entry->get_recurring())
{
- DEBUG("Cancelling completed, non-recurring request: %s", request_string);
+ AFB_DEBUG("Cancelling completed, non-recurring request: %s", request_string);
cancel_request(entry);
find_and_erase(entry, non_recurring_requests_);
}
@@ -297,14 +297,14 @@ active_diagnostic_request_t* diagnostic_manager_t::add_request(DiagnosticRequest
// Erase any existing request not already cleaned.
cleanup_request(entry, true);
- DEBUG("Added one-time diagnostic request on bus %s: %s",
+ AFB_DEBUG("Added one-time diagnostic request on bus %s: %s",
bus_.c_str(), request_string);
non_recurring_requests_.push_back(entry);
}
else
{
- WARNING("There isn't enough request entry. Vector exhausted %d/%d", (int)non_recurring_requests_.size(), MAX_SIMULTANEOUS_DIAG_REQUESTS);
+ AFB_WARNING("There isn't enough request entry. Vector exhausted %d/%d", (int)non_recurring_requests_.size(), MAX_SIMULTANEOUS_DIAG_REQUESTS);
non_recurring_requests_.resize(MAX_SIMULTANEOUS_DIAG_REQUESTS);
}
return entry;
@@ -319,7 +319,7 @@ active_diagnostic_request_t* diagnostic_manager_t::add_request(DiagnosticRequest
bool diagnostic_manager_t::validate_optional_request_attributes(float frequencyHz)
{
if(frequencyHz > MAX_RECURRING_DIAGNOSTIC_FREQUENCY_HZ) {
- DEBUG("Requested recurring diagnostic frequency %lf is higher than maximum of %d",
+ AFB_DEBUG("Requested recurring diagnostic frequency %lf is higher than maximum of %d",
frequencyHz, MAX_RECURRING_DIAGNOSTIC_FREQUENCY_HZ);
return false;
}
@@ -377,12 +377,12 @@ active_diagnostic_request_t* diagnostic_manager_t::add_recurring_request(Diagnos
}
else
{
- WARNING("There isn't enough request entry. Vector exhausted %d/%d", (int)recurring_requests_.size(), MAX_SIMULTANEOUS_DIAG_REQUESTS);
+ AFB_WARNING("There isn't enough request entry. Vector exhausted %d/%d", (int)recurring_requests_.size(), MAX_SIMULTANEOUS_DIAG_REQUESTS);
recurring_requests_.resize(MAX_SIMULTANEOUS_DIAG_REQUESTS);
}
}
else
- { DEBUG("Can't add request, one already exists with same key");}
+ { AFB_DEBUG("Can't add request, one already exists with same key");}
return entry;
}
@@ -425,7 +425,7 @@ openxc_VehicleMessage diagnostic_manager_t::relay_diagnostic_response(active_dia
found_signals = utils::signals_manager_t::instance().find_signals(build_DynamicField(adr->get_name()));
found_signals.diagnostic_messages.front()->set_supported(false);
cleanup_request(adr, true);
- NOTICE("PID not supported or ill formed. Please unsubscribe from it. Error code : %d", response.negative_response_code);
+ AFB_NOTICE("PID not supported or ill formed. Please unsubscribe from it. Error code : %d", response.negative_response_code);
message = build_VehicleMessage(build_SimpleMessage(adr->get_name(), build_DynamicField("This PID isn't supported by your vehicle.")));
}
s called during loading of the binding. It * receives an 'interface' that should be recorded for later access to * functions provided by the framework. * * This function MUST return the address of a structure that describes * the binding and its implemented verbs. * * In case of initialisation error, NULL must be returned. * * Be aware that the given 'interface' is not fully functionnal * because no provision is given to the name and description * of the binding. Check the function 'afbBindingV1ServiceInit' * defined in the file <afb/afb-service-v1.h> because when * the function 'afbBindingV1ServiceInit' is called, the 'interface' * is fully functionnal. */ extern const struct afb_binding_v1 *afbBindingV1Register (const struct afb_binding_interface_v1 *interface); /* * When a binding have an exported implementation of the * function 'afbBindingV1ServiceInit', defined below, * the framework calls it for initialising the service after * registration of all bindings. * * The object 'service' should be recorded. It has functions that * allows the binding to call features with its own personality. * * The function should return 0 in case of success or, else, should return * a negative value. */ extern int afbBindingV1ServiceInit(struct afb_service service); /* * When a binding have an implementation of the function 'afbBindingV1ServiceEvent', * defined below, the framework calls that function for any broadcasted event or for * events that the service subscribed to in its name. * * It receive the 'event' name and its related data in 'object' (be aware that 'object' * might be NULL). */ extern void afbBindingV1ServiceEvent(const char *event, struct json_object *object); /* * Description of one verb of the API provided by the binding * This enumeration is valid for bindings of type version 1 */ struct afb_verb_desc_v1 { const char *name; /* name of the verb */ enum afb_session_flags_v1 session; /* authorisation and session requirements of the verb */ void (*callback)(struct afb_req req); /* callback function implementing the verb */ const char *info; /* textual description of the verb */ }; /* * Description of the bindings of type version 1 */ struct afb_binding_desc_v1 { const char *info; /* textual information about the binding */ const char *prefix; /* required prefix name for the binding */ const struct afb_verb_desc_v1 *verbs; /* array of descriptions of verbs terminated by a NULL name */ }; /* * Definition of the type+versions of the binding. * The definition uses hashes. */ enum afb_binding_type_v1 { AFB_BINDING_VERSION_1 = 123456789 }; /* * Description of a binding */ struct afb_binding_v1 { enum afb_binding_type_v1 type; /* type of the binding */ union { struct afb_binding_desc_v1 v1; /* description of the binding of type 1 */ }; }; /* * config mode */ enum afb_mode_v1 { AFB_MODE_LOCAL = 0, /* run locally */ AFB_MODE_REMOTE, /* run remotely */ AFB_MODE_GLOBAL /* run either remotely or locally (DONT USE! reserved for future) */ }; /* * Interface between the daemon and the binding. */ struct afb_binding_interface_v1 { struct afb_daemon daemon; /* access to the daemon facilies */ int verbosity; /* level of verbosity */ enum afb_mode_v1 mode; /* run mode (local or remote) */ }; /* * Macros for logging messages */ #if defined(AFB_BINDING_PRAGMA_NO_VERBOSE_DATA) # define _AFB_LOGGING_V1_(itf,vlevel,llevel,...) \ do{ \ if(itf->verbosity>=vlevel) {\ if (llevel <= AFB_VERBOSITY_LEVEL_ERROR) \ afb_daemon_verbose2_v1(itf->daemon,llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ else \ afb_daemon_verbose2_v1(itf->daemon,llevel,__FILE__,__LINE__,NULL,NULL); \ } \ }while(0) # define _AFB_REQ_LOGGING_V1_(itf,vlevel,llevel,req,...) \ do{ \ if(itf->verbosity>=vlevel) \ afb_req_verbose(req,llevel,__FILE__,__LINE__,NULL,NULL); \ }while(0) #elif defined(AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS) # define _AFB_LOGGING_V1_(itf,vlevel,llevel,...) \ do{ \ if(itf->verbosity>=vlevel) \ afb_daemon_verbose2_v1(itf->daemon,llevel,NULL,0,NULL,__VA_ARGS__); \ }while(0) # define _AFB_REQ_LOGGING_V1_(itf,vlevel,llevel,req,...) \ do{ \ if(itf->verbosity>=vlevel) \ afb_req_verbose(req,llevel,NULL,0,NULL,__VA_ARGS__); \ }while(0) #else # define _AFB_LOGGING_V1_(itf,vlevel,llevel,...) \ do{ \ if(itf->verbosity>=vlevel) \ afb_daemon_verbose2_v1(itf->daemon,llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ }while(0) # define _AFB_REQ_LOGGING_V1_(itf,vlevel,llevel,req,...) \ do{ \ if(itf->verbosity>=vlevel) \ afb_req_verbose(req,llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ }while(0) #endif # include "afb-verbosity.h" # define AFB_ERROR_V1(itf,...) _AFB_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) # define AFB_WARNING_V1(itf,...) _AFB_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) # define AFB_NOTICE_V1(itf,...) _AFB_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) # define AFB_INFO_V1(itf,...) _AFB_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) # define AFB_DEBUG_V1(itf,...) _AFB_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__) # define AFB_REQ_ERROR_V1(itf,...) _AFB_REQ_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) # define AFB_REQ_WARNING_V1(itf,...) _AFB_REQ_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) # define AFB_REQ_NOTICE_V1(itf,...) _AFB_REQ_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) # define AFB_REQ_INFO_V1(itf,...) _AFB_REQ_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) # define AFB_REQ_DEBUG_V1(itf,...) _AFB_REQ_LOGGING_V1_(itf,AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__)