No it is not installed but would in deed be a good addition. Only thing is I can not test it due to not having a ps on controlled power. I think it would be ok to put it into the GCode::fatalError function which gets called on all serious errors where print should stopp any way. Function then looks like this:
void GCode::fatalError(FSTRINGPARAM(message)) {
fatalErrorMsg = message;
Printer::stopPrint();
if (Printer::currentPosition[Z_AXIS] < Printer::zMin + Printer::zLength - 15)
PrintLine::moveRelativeDistanceInSteps(
0, 0, 10 * Printer::axisStepsPerMM[Z_AXIS], 0,
Printer::homingFeedrate[Z_AXIS], true, true);
EVENT_FATAL_ERROR_OCCURED
Commands::waitUntilEndOfAllMoves();
Printer::kill(false);
#if defined(PS_ON_PIN) && PS_ON_PIN > -1
WRITE(PS_ON_PIN, (POWER_INVERTING ? LOW : HIGH));
Printer::setPowerOn(false);
#endif
reportFatalError();
}
would be great if you could verify this. E.g. if you unplug heater cable and run a test it should trigger and disable power then. Have already added it for next update of dev version, but knowing it works is always better.