|
@@ -1,5 +1,6 @@
|
|
#include "la10compat.h"
|
|
#include "la10compat.h"
|
|
#include "Marlin.h"
|
|
#include "Marlin.h"
|
|
|
|
+#include <float.h>
|
|
|
|
|
|
|
|
|
|
static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode
|
|
static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode
|
|
@@ -38,7 +39,9 @@ void la10c_mode_change(LA10C_MODE mode)
|
|
static float la10c_convert(float k)
|
|
static float la10c_convert(float k)
|
|
{
|
|
{
|
|
float new_K = k * 0.004 - 0.05;
|
|
float new_K = k * 0.004 - 0.05;
|
|
- return (new_K < 0? 0: new_K);
|
|
|
|
|
|
+ return new_K < 0? 0:
|
|
|
|
+ new_K > (LA_K_MAX - FLT_EPSILON)? (LA_K_MAX - FLT_EPSILON):
|
|
|
|
+ new_K;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -52,11 +55,11 @@ float la10c_value(float k)
|
|
else if(k < 0)
|
|
else if(k < 0)
|
|
return -1;
|
|
return -1;
|
|
|
|
|
|
- la10c_mode_change(k < 10? LA10C_LA15: LA10C_LA10);
|
|
|
|
|
|
+ la10c_mode_change(k < LA_LA10_MIN? LA10C_LA15: LA10C_LA10);
|
|
}
|
|
}
|
|
|
|
|
|
if(la10c_mode == LA10C_LA15)
|
|
if(la10c_mode == LA10C_LA15)
|
|
- return (k >= 0 && k < 10? k: -1);
|
|
|
|
|
|
+ return (k >= 0 && k < LA_K_MAX? k: -1);
|
|
else
|
|
else
|
|
return (k >= 0? la10c_convert(k): -1);
|
|
return (k >= 0? la10c_convert(k): -1);
|
|
}
|
|
}
|