diff options
Diffstat (limited to 'src/system')
-rw-r--r-- | src/system/dlt-system-log.c | 15 | ||||
-rwxr-xr-x | src/system/dlt-system.c | 8 | ||||
-rw-r--r-- | src/system/dlt-system.conf | 10 | ||||
-rw-r--r-- | src/system/dlt-system.h | 34 | ||||
-rw-r--r-- | src/system/dlt-system_cfg.h | 2 |
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" |