|
@@ -2938,6 +2938,39 @@ void controllerFan()
|
2938
|
2938
|
}
|
2939
|
2939
|
#endif
|
2940
|
2940
|
|
|
2941
|
+#ifdef TEMP_STAT_LEDS
|
|
2942
|
+static bool blue_led = false;
|
|
2943
|
+static bool red_led = false;
|
|
2944
|
+static uint32_t stat_update = 0;
|
|
2945
|
+
|
|
2946
|
+void handle_status_leds(void) {
|
|
2947
|
+ float max_temp = 0.0;
|
|
2948
|
+ if(millis() > stat_update) {
|
|
2949
|
+ stat_update += 500; // Update every 0.5s
|
|
2950
|
+ for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
|
|
2951
|
+ max_temp = max(max_temp, degHotend(cur_extruder));
|
|
2952
|
+ max_temp = max(max_temp, degTargetHotend(cur_extruder));
|
|
2953
|
+ }
|
|
2954
|
+ #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
|
|
2955
|
+ max_temp = max(max_temp, degTargetBed());
|
|
2956
|
+ max_temp = max(max_temp, degBed());
|
|
2957
|
+ #endif
|
|
2958
|
+ if((max_temp > 55.0) && (red_led == false)) {
|
|
2959
|
+ digitalWrite(STAT_LED_RED, 1);
|
|
2960
|
+ digitalWrite(STAT_LED_BLUE, 0);
|
|
2961
|
+ red_led = true;
|
|
2962
|
+ blue_led = false;
|
|
2963
|
+ }
|
|
2964
|
+ if((max_temp < 54.0) && (blue_led == false)) {
|
|
2965
|
+ digitalWrite(STAT_LED_RED, 0);
|
|
2966
|
+ digitalWrite(STAT_LED_BLUE, 1);
|
|
2967
|
+ red_led = false;
|
|
2968
|
+ blue_led = true;
|
|
2969
|
+ }
|
|
2970
|
+ }
|
|
2971
|
+}
|
|
2972
|
+#endif
|
|
2973
|
+
|
2941
|
2974
|
void manage_inactivity()
|
2942
|
2975
|
{
|
2943
|
2976
|
if( (millis() - previous_millis_cmd) > max_inactive_time )
|
|
@@ -2991,7 +3024,10 @@ void manage_inactivity()
|
2991
|
3024
|
memcpy(destination,current_position,sizeof(destination));
|
2992
|
3025
|
prepare_move();
|
2993
|
3026
|
}
|
2994
|
|
- #endif
|
|
3027
|
+ #endif
|
|
3028
|
+ #ifdef TEMP_STAT_LEDS
|
|
3029
|
+ handle_status_leds();
|
|
3030
|
+ #endif
|
2995
|
3031
|
check_axes_activity();
|
2996
|
3032
|
}
|
2997
|
3033
|
|