summaryrefslogtreecommitdiff
path: root/src/daemon/dlt_daemon_common.h
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2013-12-18 08:39:27 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2014-01-10 07:16:11 +0100
commitb7a37dc39a2a975e594bdb554e752c8ed563673e (patch)
tree95e127996f5ded7515312cd52af4ba49d54251aa /src/daemon/dlt_daemon_common.h
parent4094928eb19e7b088c50c166d06771893e7a7c05 (diff)
downloadDLT-daemon-b7a37dc39a2a975e594bdb554e752c8ed563673e.tar.gz
Centralised send function to client. Introduced connection state to dlt daemon.
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
Diffstat (limited to 'src/daemon/dlt_daemon_common.h')
-rw-r--r--src/daemon/dlt_daemon_common.h157
1 files changed, 17 insertions, 140 deletions
diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h
index f0a6be4..41d741b 100644
--- a/src/daemon/dlt_daemon_common.h
+++ b/src/daemon/dlt_daemon_common.h
@@ -86,7 +86,7 @@ extern "C" {
#define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000 /**< Ring buffer size for storing log messages while no client is connected */
#define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */
-#define DLT_DAEMON_STORE_TO_BUFFER -2 /**< Constant value to identify the command "store to buffer" */
+#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */
/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */
@@ -94,6 +94,16 @@ extern "C" {
#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); }
extern sem_t dlt_daemon_mutex;
+/**
+ * Definitions of DLT daemon logging states
+ */
+typedef enum
+{
+ DLT_DAEMON_STATE_INIT = 0, /**< Initial state */
+ DLT_DAEMON_STATE_BUFFER = 1, /**< logging is buffered until external logger is connected or internal logging is activated */
+ DLT_DAEMON_STATE_SEND_BUFFER = 2, /**< external logger is connected, but buffer is still not empty or external logger queue is full */
+ DLT_DAEMON_STATE_SEND_DIRECT = 3 /**< External logger is connected or internal logging is active, and buffer is empty */
+} DltDaemonState;
/**
* The parameters of a daemon application.
@@ -143,8 +153,9 @@ typedef struct
char runtime_context_cfg[PATH_MAX + 1]; /**< Path and filename of persistent context configuration */
char runtime_configuration[PATH_MAX + 1]; /**< Path and filename of persistent configuration */
DltUserLogMode mode; /**< Mode used for tracing: off, external, internal, both */
- char state; /**< state for tracing: 0 = no client connected, 1 = client connected */
+ char connectionState; /**< state for tracing: 0 = no client connected, 1 = client connected */
char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */
+ DltDaemonState state; /**< the current logging state of dlt daemon. */
} DltDaemon;
/**
@@ -337,113 +348,6 @@ void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose);
void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose);
/**
- * Process received control message from dlt client
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-int dlt_daemon_control_process_control(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Generate response to control message from dlt client
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param service_id service id of control message
- * @param status status of response (e.g. ok, not supported, error)
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_service_response(int sock, DltDaemon *daemon, uint32_t service_id, int8_t status, int verbose);
-/**
- * Send out response message to dlt client
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to response message
- * @param appid pointer to application id to be used in response message
- * @param contid pointer to context id to be used in response message
- * @param verbose if set to true verbose information is printed out.
- * @return -1 if there is an error or buffer is full
- */
-int dlt_daemon_control_send_control_message(int sock, DltDaemon *daemon, DltMessage *msg, char* appid, char* contid, int verbose);
-
-/**
- * Process and generate response to received sw injection control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received sw injection control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_callsw_cinjection(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to received set log level control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_set_log_level(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to received set trace status control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_set_trace_status(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to received set default log level control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_set_default_log_level(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to received set default trace status control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_set_default_trace_status(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to set timing packets control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_set_timing_packets(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to received get software version control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_get_software_version(int sock, DltDaemon *daemon, int verbose);
-/**
- * Process and generate response to received get default log level control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_get_default_log_level(int sock, DltDaemon *daemon, int verbose);
-/**
- * Process and generate response to received get log info control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param msg pointer to received control message
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_get_log_info(int sock, DltDaemon *daemon, DltMessage *msg, int verbose);
-/**
- * Process and generate response to message buffer overflow control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- * @return -1 if there is an error or buffer overflow, else 0
- */
-int dlt_daemon_control_message_buffer_overflow(int sock, DltDaemon *daemon, unsigned int overflow_counter,char* apid, int verbose);
-/**
* Process reset to factory default control message
* @param daemon pointer to dlt daemon structure
* @param filename name of file containing the runtime defaults for applications
@@ -451,40 +355,13 @@ int dlt_daemon_control_message_buffer_overflow(int sock, DltDaemon *daemon, unsi
* @param verbose if set to true verbose information is printed out.
*/
void dlt_daemon_control_reset_to_factory_default(DltDaemon *daemon,const char *filename, const char *filename1, int verbose);
+
/**
- * Send time control message
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param verbose if set to true verbose information is printed out.
- */
-void dlt_daemon_control_message_time(int sock, DltDaemon *daemon, int verbose);
-/**
- * Send control message unregister context (add on to AUTOSAR standard)
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param apid application id to be unregisteres
- * @param ctid context id to be unregistered
- * @param comid Communication id where apid is unregistered
- * @param verbose if set to true verbose information is printed out.
- */
-int dlt_daemon_control_message_unregister_context(int sock, DltDaemon *daemon, char* apid, char* ctid, char* comid, int verbose);
-/**
- * Send control message connection info (add on to AUTOSAR standard)
- * @param sock connection handle used for sending response
- * @param daemon pointer to dlt daemon structure
- * @param state state of connection
- * @param comid Communication id where connection state changed
- * @param verbose if set to true verbose information is printed out.
- */
-int dlt_daemon_control_message_connection_info(int sock, DltDaemon *daemon, uint8_t state, char* comid, int verbose);
-/**
- * Send control message connection info (add on to AUTOSAR standard)
- * @param sock connection handle used for sending response
+ * Change the logging state of dlt daemon
* @param daemon pointer to dlt daemon structure
- * @param timezone timezone on target
- * @param verbose if set to true verbose information is printed out.
+ * @param newState the requested new state
*/
-int dlt_daemon_control_message_timezone(int sock, DltDaemon *daemon, int32_t timezone, uint8_t isdst, int verbose);
+void dlt_daemon_change_state(DltDaemon *daemon, DltDaemonState newState);
#ifdef __cplusplus
}