Commit b634e4ba authored by claes's avatar claes

More Ext_User_Prm_Data_Const

parent 32271d63
/* /*
* Proview $Id: rt_pb_gsd.cpp,v 1.9 2007-11-15 16:59:47 claes Exp $ * Proview $Id: rt_pb_gsd.cpp,v 1.10 2007-11-15 17:28:18 claes Exp $
* Copyright (C) 2005 SSAB Oxelsund AB. * Copyright (C) 2005 SSAB Oxelsund AB.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -837,16 +837,21 @@ int pb_gsd::read( char *filename) ...@@ -837,16 +837,21 @@ int pb_gsd::read( char *filename)
// Addition module data // Addition module data
if ( current_module->extuserprmdataconst) if ( current_module->extuserprmdataconst)
e = current_module->extuserprmdataconst; e = current_module->extuserprmdataconst;
else
new_data = 1;
} }
else if ( extuserprmdataconst)
// Additiona slave data
e = extuserprmdataconst;
else { else {
// New data if ( extuserprmdataconst)
e = (gsd_sExtUserPrmDataConst *) calloc( 1, sizeof(gsd_sExtUserPrmDataConst)); // Additional slave data
new_data = 1; e = extuserprmdataconst;
else
new_data = 1;
} }
if ( new_data)
e = (gsd_sExtUserPrmDataConst *) calloc( 1, sizeof(gsd_sExtUserPrmDataConst));
dcli_remove_blank( idx_str, idx_str); dcli_remove_blank( idx_str, idx_str);
if ( idx_str[0] == '0' && idx_str[1] == 'x') if ( idx_str[0] == '0' && idx_str[1] == 'x')
sts = sscanf( idx_str, "%x", &const_offset); sts = sscanf( idx_str, "%x", &const_offset);
...@@ -869,6 +874,11 @@ int pb_gsd::read( char *filename) ...@@ -869,6 +874,11 @@ int pb_gsd::read( char *filename)
} }
else { else {
if ( (s = strchr( line, '='))) { if ( (s = strchr( line, '='))) {
// Pad with zero
for ( int i = e->Const_Offset + e->len; i < const_offset - e->Const_Offset; i++) {
if ( i < (int)sizeof( e->Const_Prm_Data))
e->Const_Prm_Data[i] = '0';
}
str_to_ostring( &t, s+1, sizeof(e->Const_Prm_Data), &data_len); str_to_ostring( &t, s+1, sizeof(e->Const_Prm_Data), &data_len);
memcpy( (char *)e->Const_Prm_Data + const_offset, (char *)t, data_len); memcpy( (char *)e->Const_Prm_Data + const_offset, (char *)t, data_len);
e->len = const_offset + data_len - e->Const_Offset; e->len = const_offset + data_len - e->Const_Offset;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment