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