summaryrefslogtreecommitdiff
path: root/src/system
diff options
context:
space:
mode:
authorChristian Muck <christian.muck@bmw.de>2012-02-08 14:55:54 +0100
committerChristian Muck <christian.muck@bmw.de>2012-02-08 14:55:54 +0100
commit5f0abf66eb361e0a41ddfc8b47b6433da5d2b097 (patch)
tree39625e12ed92d905e8ad23894f182827031dce81 /src/system
parent12b47dc73a54e89e0f7ded02faf7d0485b6a31af (diff)
downloadDLT-daemon-5f0abf66eb361e0a41ddfc8b47b6433da5d2b097.tar.gz
[GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer fixed.
Diffstat (limited to 'src/system')
-rw-r--r--src/system/dlt-system-log.c15
-rwxr-xr-xsrc/system/dlt-system.c8
-rw-r--r--src/system/dlt-system.conf10
-rw-r--r--src/system/dlt-system.h34
-rw-r--r--src/system/dlt-system_cfg.h2
5 files changed, 48 insertions, 21 deletions
diff --git a/src/system/dlt-system-log.c b/src/system/dlt-system-log.c
index 6c9f2bc..c71f930 100644
--- a/src/system/dlt-system-log.c
+++ b/src/system/dlt-system-log.c
@@ -179,6 +179,7 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run
runtime->filetransferCountPackages = 0;
runtime->filetransferRunning = 0;
runtime->timeFiletransferDelay = options->FiletransferTimeDelay;
+
return;
}
runtime->filetransferLastSentPackage = 0;
@@ -189,8 +190,15 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run
if (runtime->filetransferRunning == 1) {
/* filetransfer is running, send next data */
while(runtime->filetransferLastSentPackage<runtime->filetransferCountPackages) {
+ /* wait sending next package if more than 50% of buffer used */
+ dlt_user_check_buffer(&total_size, &used_size);
+ if((total_size - used_size) < (total_size/2))
+ {
+ break;
+ }
+
runtime->filetransferLastSentPackage++;
- transferResult = dlt_user_log_file_data(context,runtime->filetransferFile,runtime->filetransferLastSentPackage,0);
+ transferResult = dlt_user_log_file_data(context,runtime->filetransferFile,runtime->filetransferLastSentPackage,options->FiletransferTimeoutBetweenLogs);
if(transferResult < 0)
{
/* a problem occured; stop filetransfer and continue with next file after timeout */
@@ -200,10 +208,7 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run
runtime->timeFiletransferDelay = options->FiletransferTimeDelay;
return;
}
- /* wait sending next package if more than 50% of buffer used */
- dlt_user_check_buffer(&total_size, &used_size);
- if((total_size - used_size) < (total_size/2))
- break;
+
}
if(runtime->filetransferLastSentPackage==runtime->filetransferCountPackages) {
transferResult = dlt_user_log_file_end(context,runtime->filetransferFile,0);
diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c
index 2902363..55d053c 100755
--- a/src/system/dlt-system.c
+++ b/src/system/dlt-system.c
@@ -128,7 +128,8 @@ void dlt_system_init_options(DltSystemOptions *options)
options->FiletransferDirectory2[0]=0;
options->FiletransferTimeStartup = DEFAULT_FILETRANSFER_TIME_STARTUP;
options->FiletransferTimeDelay = DEFAULT_FILETRANSFER_TIME_DELAY;
-
+ options->FiletransferTimeoutBetweenLogs = DEFAULT_FILETRANSFER_TIMEOUT_BETWEEN_LOGS;
+
/* Log file */
options->LogFileEnable = 0;
options->LogFileNumber = 0;
@@ -292,6 +293,11 @@ int dlt_system_parse_configuration(DltSystemOptions *options)
options->FiletransferTimeDelay = atoi(value);
printf("Option: %s=%s\n",token,value);
}
+ else if(strcmp(token,"FiletransferTimeoutBetweenLogs")==0)
+ {
+ options->FiletransferTimeoutBetweenLogs = atoi(value);
+ printf("Option: %s=%s\n",token,value);
+ }
/* Log File */
else if(strcmp(token,"LogFileEnable")==0)
{
diff --git a/src/system/dlt-system.conf b/src/system/dlt-system.conf
index 235f00e..426d3ef 100644
--- a/src/system/dlt-system.conf
+++ b/src/system/dlt-system.conf
@@ -26,7 +26,7 @@ SyslogPort = 47111
########################################################################
# Enable the Filetransfer (Default: 0)
-FiletransferEnable = 1
+FiletransferEnable = 0
# Directory which contains files to be transfered over DLT (Default: /tmp/filetransfer)
# Files are deleted after Filetransfer is finished and after TimeDelay expired
@@ -44,12 +44,16 @@ FiletransferTimeStartup = 10
# Time in seconds
FiletransferTimeDelay = 3
+# Time to wait between two file transfer logs of a single file to DLT. (Default: 10)
+# Time in ms seconds
+FiletransferTimeoutBetweenLogs = 10
+
########################################################################
# Log short files, expecially from proc filesystem
########################################################################
# Enable the logging of files (Default: 0)
-LogFileEnable = 1
+LogFileEnable = 0
# Log different files
# Mode: 0 = off, 1 = startup only, 2 = regular
@@ -108,7 +112,7 @@ LogFileContextId = STAT
########################################################################
# Enable the logging of processes (Default: 0)
-LogProcessesEnable = 1
+LogProcessesEnable = 0
# The Context Id of the kernel version (Default: PROC)
LogProcessesContextId = PROC
diff --git a/src/system/dlt-system.h b/src/system/dlt-system.h
index 8fca0ae..210de3c 100644
--- a/src/system/dlt-system.h
+++ b/src/system/dlt-system.h
@@ -83,26 +83,38 @@ typedef struct {
char ApplicationId[256];
int daemonise;
- int SyslogEnable;
- char SyslogContextId[256];
- int SyslogPort;
+ int SyslogEnable; /*# Enable the Syslog Adapter (Default: 0)*/
+ char SyslogContextId[256]; /*# The Context Id of the syslog adapter (Default: SYSL)*/
+ int SyslogPort; /*# The UDP port opened by DLT system mamager to receive system logs (Default: 47111)*/
- int FiletransferEnable;
- char FiletransferDirectory1[256];
+ int FiletransferEnable; /*# Enable the Filetransfer (Default: 0)*/
+ char FiletransferDirectory1[256]; /*# Directory which contains files to be transfered over DLT (Default: /tmp/filetransfer)# Files are deleted after Filetransfer is finished and after TimeDelay expired*/
char FiletransferDirectory2[256];
- char FiletransferContextId[256];
- int FiletransferTimeStartup;
- int FiletransferTimeDelay;
+ char FiletransferContextId[256]; /*# The Context Id of the filetransfer (Default: FILE)*/
+ int FiletransferTimeStartup; /*# Time after startup of dlt-system when first file is transfered (Default: 30)# Time in seconds*/
+ int FiletransferTimeDelay; /*# Time to wait when transfered file is deleted and next file transfer starts (Default: 10)# Time in seconds*/
+ int FiletransferTimeoutBetweenLogs;/*# Waits a period of time between two file transfer logs of a single file to DLT to ensure that the FIFO of DLT is not flooded.*/
- int LogFileEnable;
+ /*# Log different files
+ # Mode: 0 = off, 1 = startup only, 2 = regular
+ # TimeDelay: If mode regular is set, time delay is the number of seconds for next sent
+ */
+ int LogFileEnable; /*# Enable the logging of files (Default: 0)*/
int LogFileNumber;
char LogFileFilename[DLT_SYSTEM_LOG_FILE_MAX][256];
int LogFileMode[DLT_SYSTEM_LOG_FILE_MAX];
int LogFileTimeDelay[DLT_SYSTEM_LOG_FILE_MAX];
char LogFileContextId[DLT_SYSTEM_LOG_FILE_MAX][256];
- int LogProcessesEnable;
- char LogProcessesContextId[256];
+ int LogProcessesEnable; /*# Enable the logging of processes (Default: 0)*/
+ char LogProcessesContextId[256]; /*# The Context Id of the kernel version (Default: PROC)*/
+
+ /*# Log different processes
+ # Name: * = all process, X=alternative name (must correspind to /proc/X/cmdline
+ # Filename: the filename in the subdirectory /proc/processid/
+ # Mode: 0 = off, 1 = startup only, 2 = regular
+ # TimeDelay: If mode regular is set, time delay is the number of seconds for next sent
+ */
int LogProcessNumber;
char LogProcessName[DLT_SYSTEM_LOG_PROCESSES_MAX][256];
char LogProcessFilename[DLT_SYSTEM_LOG_PROCESSES_MAX][256];
diff --git a/src/system/dlt-system_cfg.h b/src/system/dlt-system_cfg.h
index c90d28f..82260a3 100644
--- a/src/system/dlt-system_cfg.h
+++ b/src/system/dlt-system_cfg.h
@@ -78,5 +78,5 @@
#define DEFAULT_FILETRANSFER_CONTEXT_ID "FILE"
#define DEFAULT_FILETRANSFER_TIME_STARTUP 30
#define DEFAULT_FILETRANSFER_TIME_DELAY 10
-
+#define DEFAULT_FILETRANSFER_TIMEOUT_BETWEEN_LOGS 10
#define DEFAULT_LOG_PROCESSES_CONTEXT_ID "PROC"