package org.goko.core.gcode.rs274ngcv3.instruction.exporter;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.goko.core.common.exception.GkException;
import org.goko.core.common.measure.quantity.SpeedUnit;
import org.goko.core.gcode.element.GCodeWord;
import org.goko.core.gcode.rs274ngcv3.RenderingFormat;
import org.goko.core.gcode.rs274ngcv3.context.EnumUnit;
import org.goko.core.gcode.rs274ngcv3.context.GCodeContext;
import org.goko.core.gcode.rs274ngcv3.element.InstructionType;
import org.goko.core.gcode.rs274ngcv3.instruction.SetFeedRateInstruction;
public class SetFeedRateExporter extends AbstractInstructionExporter<SetFeedRateInstruction>{
public SetFeedRateExporter() {
super(InstructionType.SET_FEED_RATE);
}
/** (inheritDoc)
* @see org.goko.core.gcode.rs274ngcv3.instruction.exporter.AbstractInstructionExporter#getWords(org.goko.core.gcode.rs274ngcv3.context.GCodeContext, org.goko.core.gcode.element.IInstruction)
*/
@Override
protected List<GCodeWord> getWords(GCodeContext context, SetFeedRateInstruction instruction, RenderingFormat format) throws GkException {
String feedrate = StringUtils.EMPTY;
if(context.getUnit() == EnumUnit.INCHES){
feedrate = format.format(instruction.getFeedrate(), SpeedUnit.INCH_PER_MINUTE);
}else{
feedrate = format.format(instruction.getFeedrate(), SpeedUnit.MILLIMETRE_PER_MINUTE);
}
return wrap(new GCodeWord("F", feedrate));
}
}