summaryrefslogtreecommitdiff
path: root/src/lib/dlt_user.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dlt_user.c')
-rw-r--r--src/lib/dlt_user.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c
index bf63ed7..1ad4335 100644
--- a/src/lib/dlt_user.c
+++ b/src/lib/dlt_user.c
@@ -1302,6 +1302,11 @@ int dlt_user_log_write_finish(DltContextData *log)
int dlt_user_log_write_raw(DltContextData *log,void *data,uint16_t length)
{
+ return dlt_user_log_write_raw_formated(log,data,length,DLT_FORMAT_DEFAULT);
+}
+
+int dlt_user_log_write_raw_formated(DltContextData *log,void *data,uint16_t length,DltFormatType type)
+{
uint16_t arg_size;
uint32_t type_info;
@@ -1325,6 +1330,17 @@ int dlt_user_log_write_raw(DltContextData *log,void *data,uint16_t length)
/* Transmit type information */
type_info = DLT_TYPE_INFO_RAWD;
+ if(type>=DLT_FORMAT_HEX8 && type<=DLT_FORMAT_HEX64)
+ {
+ type_info |= DLT_SCOD_HEX;
+ type_info += type;
+ }
+ else if(type>=DLT_FORMAT_BIN8 && type<=DLT_FORMAT_BIN16)
+ {
+ type_info |= DLT_SCOD_BIN;
+ type_info += type - DLT_FORMAT_BIN8 + 1;
+ }
+
memcpy((log->buffer)+log->size,&(type_info),sizeof(uint32_t));
log->size += sizeof(uint32_t);