/**
*
*/
package org.goko.controller.grbl.v09.handlers.watcher;
import org.apache.commons.lang3.StringUtils;
import org.goko.controller.grbl.v09.configuration.GrblConfiguration;
import org.goko.controller.grbl.v09.configuration.GrblIntegerSetting;
/**
* @author Psyko
* @date 28 nov. 2016
*/
public class BufferReportConfigurationFix implements IGrblConfigurationFix {
/** (inheritDoc)
* @see org.goko.controller.grbl.v09.handlers.watcher.IGrblConfigurationFix#shouldApply(org.goko.controller.grbl.v09.configuration.GrblConfiguration)
*/
@Override
public boolean shouldApply(String identifier, GrblConfiguration configuration) {
if(StringUtils.isBlank(identifier) || StringUtils.equals(identifier, GrblConfiguration.STATUS_REPORT_MASK)){
GrblIntegerSetting mask = configuration.getStatusReportMask();
// Planner Buffer 4
return mask.isAssigned() && (mask.getValue() & (1 << 2)) != 4;
}
return false;
}
/** (inheritDoc)
* @see org.goko.controller.grbl.v09.handlers.watcher.IGrblConfigurationFix#apply(org.goko.controller.grbl.v09.configuration.GrblConfiguration)
*/
@Override
public void apply(GrblConfiguration configuration) {
GrblIntegerSetting maskSetting = configuration.getStatusReportMask();
int mask = maskSetting.getValue();
maskSetting.setValue( mask | (1 << 2));
}
/** (inheritDoc)
* @see org.goko.controller.grbl.v09.handlers.watcher.IGrblConfigurationFix#getDescription()
*/
@Override
public String getDescription() {
return "Status report will be modified to include buffer report";
}
}