/**
* API used by front ends to interface with the model.
*/
/*
Copywrite 2015 Will Winder
This file is part of Universal Gcode Sender (UGS).
UGS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
UGS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with UGS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.willwinder.universalgcodesender.model;
import com.willwinder.universalgcodesender.IController;
import com.willwinder.universalgcodesender.types.GcodeCommand;
import com.willwinder.universalgcodesender.utils.Settings;
import com.willwinder.universalgcodesender.model.UnitUtils.Units;
import java.io.File;
import java.io.IOException;
public abstract interface BackendAPI extends BackendAPIReadOnly {
// Config options
public void setGcodeFile(File file) throws Exception;
public void setTempDir(File file) throws IOException;
public void applySettings(Settings settings) throws Exception;
public void preprocessAndExportToFile(File f) throws Exception;
// Control options
public void connect(String firmware, String port, int baudRate) throws Exception;
public void disconnect() throws Exception;
public void sendGcodeCommand(String commandText) throws Exception;
public void sendGcodeCommand(boolean restoreParserState, String commandText) throws Exception;
public void sendGcodeCommand(GcodeCommand command) throws Exception;
public void adjustManualLocation(int dirX, int dirY, int dirZ, double stepSize, double feedRate, Units units) throws Exception;
public void probe(String axis, double feedRate, double distance, UnitUtils.Units units) throws Exception;
public void offsetTool(String axis, double offset, UnitUtils.Units units) throws Exception;
public void send() throws Exception;
public void pauseResume() throws Exception;
public void cancel() throws Exception;
public void returnToZero() throws Exception;
public void resetCoordinatesToZero() throws Exception;
public void resetCoordinateToZero(char coordinate) throws Exception;
public void restoreParserState() throws Exception;
public void killAlarmLock() throws Exception;
public void performHomingCycle() throws Exception;
public void toggleCheckMode() throws Exception;
public void issueSoftReset() throws Exception;
public void requestParserState() throws Exception;
public enum ACTIONS {
RETURN_TO_ZERO,
RESET_COORDINATES_TO_ZERO,
KILL_ALARM_LOCK,
HOMING_CYCLE,
TOGGLE_CHECK_MODE,
ISSUE_SOFT_RESET,
REQUEST_PARSER_STATE
}
// Programatically call an action.
public void performAction(ACTIONS action) throws Exception;
// Programatically call an override.
public void sendOverrideCommand(Overrides override) throws Exception;
// Shouldn't be needed often.
public IController getController();
public void applySettingsToController(Settings settings, IController controller) throws Exception;
void sendMessageForConsole(String msg);
}