Commit 6db6e530 authored by Claes Sjofors's avatar Claes Sjofors

Bugfix in Max object. Default values were wrong and didn't work for negative input values

parent bdf31a73
......@@ -108,4 +108,5 @@
081022 cs convert Xtthelp bookmark on header didn't work after html conversion.
081024 cs xtthelp New program co_help to view helptexts.
081124 cs qcom Quota check for max number of buffered messages in a queue added.
090224 cs xtthelp New home button in help window.
\ No newline at end of file
090224 cs xtthelp New home button in help window.
090506 cs pwrb Bugfix in Max object. Default values were wrong and didn't work for negative input values.
\ No newline at end of file
......@@ -166,14 +166,14 @@ SObject pwrb:Class
EndObject
Object Template Max
Body RtBody
Attr In1 = FLT_MIN
Attr In2 = FLT_MIN
Attr In3 = FLT_MIN
Attr In4 = FLT_MIN
Attr In5 = FLT_MIN
Attr In6 = FLT_MIN
Attr In7 = FLT_MIN
Attr In8 = FLT_MIN
Attr In1 = FLT_NMAX
Attr In2 = FLT_NMAX
Attr In3 = FLT_NMAX
Attr In4 = FLT_NMAX
Attr In5 = FLT_NMAX
Attr In6 = FLT_NMAX
Attr In7 = FLT_NMAX
Attr In8 = FLT_NMAX
EndBody
EndObject
EndObject
......
......@@ -2026,12 +2026,14 @@ int wb_wblnode::attrStringToValue( int type_id, char *value_str,
}
case pwr_eType_Float32:
{
if ( strcmp( value_str, "FLT_MIN") == 0) {
if ( strcmp( value_str, "FLT_MIN") == 0)
*(float *)buffer_ptr = FLT_MIN;
}
else if ( strcmp( value_str, "FLT_MAX") == 0) {
else if ( strcmp( value_str, "FLT_NMIN") == 0)
*(float *)buffer_ptr = -FLT_MIN;
else if ( strcmp( value_str, "FLT_MAX") == 0)
*(float *)buffer_ptr = FLT_MAX;
}
else if ( strcmp( value_str, "FLT_NMAX") == 0)
*(float *)buffer_ptr = -FLT_MAX;
else if ( sscanf( value_str, "%f", (float *)buffer_ptr) != 1)
return 0;
break;
......
......@@ -69,8 +69,12 @@ int wnav_attr_string_to_value( ldh_tSesContext ldhses, int type_id, char *value
case pwr_eType_Float32: {
if ( strcmp( value_str, "FLT_MIN") == 0)
*(float *)buffer_ptr = FLT_MIN;
else if ( strcmp( value_str, "FLT_NMIN") == 0)
*(float *)buffer_ptr = -FLT_MIN;
else if ( strcmp( value_str, "FLT_MAX") == 0)
*(float *)buffer_ptr = FLT_MAX;
else if ( strcmp( value_str, "FLT_NMAX") == 0)
*(float *)buffer_ptr = -FLT_MAX;
else if ( sscanf( value_str, "%f", (float *)buffer_ptr) != 1)
return WNAV__INPUT_SYNTAX;
break;
......@@ -293,10 +297,18 @@ void wnav_attrvalue_to_string( ldh_tSesContext ldhses, int type_id, void *value
strcpy( str, "FLT_MIN");
*len = strlen( str);
}
else if ( *(float *)value_ptr == -FLT_MIN) {
strcpy( str, "FLT_NMIN");
*len = strlen( str);
}
else if ( *(float *)value_ptr == FLT_MAX) {
strcpy( str, "FLT_MAX");
*len = strlen( str);
}
else if ( *(float *)value_ptr == -FLT_MAX) {
strcpy( str, "FLT_NMAX");
*len = strlen( str);
}
else
*len = sprintf( str, "%f", *(float *)value_ptr);
*buff = str;
......
......@@ -239,8 +239,12 @@ int XNav::attr_string_to_value( int type_id, char *value_str,
case pwr_eType_Float32: {
if ( strcmp( value_str, "FLT_MIN") == 0)
*(float *)buffer_ptr = FLT_MIN;
else if ( strcmp( value_str, "FLT_NMIN") == 0)
*(float *)buffer_ptr = -FLT_MIN;
else if ( strcmp( value_str, "FLT_MAX") == 0)
*(float *)buffer_ptr = FLT_MAX;
else if ( strcmp( value_str, "FLT_NMAX") == 0)
*(float *)buffer_ptr = -FLT_MAX;
else if ( sscanf( value_str, "%f", (float *)buffer_ptr) != 1)
return XNAV__INPUT_SYNTAX;
break;
......@@ -451,10 +455,18 @@ void XNav::attrvalue_to_string( int type_id, pwr_tTid tid, void *value_ptr,
strcpy( str, "FLT_MIN");
*len = strlen(str);
}
else if ( *(float *)value_ptr == -FLT_MIN) {
strcpy( str, "FLT_NMIN");
*len = strlen(str);
}
else if ( *(float *)value_ptr == FLT_MAX) {
strcpy( str, "FLT_MAX");
*len = strlen(str);
}
else if ( *(float *)value_ptr == -FLT_MAX) {
strcpy( str, "FLT_NMAX");
*len = strlen(str);
}
else {
if ( !format)
*len = snprintf( str, size, "%g", *(float *)value_ptr);
......
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