/*
* Controler Listener event interface
*/
/*
Copywrite 2013-2017 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.listeners;
import com.willwinder.universalgcodesender.i18n.Localization;
import com.willwinder.universalgcodesender.model.Position;
import com.willwinder.universalgcodesender.model.UGSEvent.ControlState;
import com.willwinder.universalgcodesender.types.GcodeCommand;
/**
*
* @author wwinder
*/
public interface ControllerListener {
/**
* The controller has modified the state by itself, such as pausing a job on
* an error.
*/
void controlStateChange(ControlState state);
/**
* The file streaming has completed.
*/
void fileStreamComplete(String filename, boolean success);
/**
* A command in the stream has been skipped.
*/
void commandSkipped(GcodeCommand command);
/**
* A command has successfully been sent to the controller.
*/
void commandSent(GcodeCommand command);
/**
* A command has been processed by the the controller.
*/
void commandComplete(GcodeCommand command);
/**
* A comment has been processed.
*/
void commandComment(String comment);
/**
* Probe coordinates received.
*/
void probeCoordinates(Position p);
enum MessageType {
VERBOSE("verbose"),
INFO("info"),
ERROR("error");
private final String key;
private MessageType(String key) {
this.key = key;
}
public String getLocalizedString() {
return Localization.getString(key);
}
}
/**
* A console message from the controller.
*/
void messageForConsole(MessageType type, String msg);
/**
* Controller status information.
*/
//void statusStringListener(String state, Position machineCoord, Position workCoord);
void statusStringListener(ControllerStatus status);
/**
* Data gathered while preprocessing commands for queue.
*/
void postProcessData(int numRows);
}