/* * Mocks what a GrblCommunicator would do. */ /* Copywrite 2013-2016 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.mockobjects; import com.willwinder.universalgcodesender.GrblCommunicator; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * * @author wwinder */ public class MockGrblCommunicator extends GrblCommunicator { // Inputs. public String portName; public int portRate; public String queuedString; public List<String> queuedStrings = new ArrayList<>(); public ArrayList<Byte> sentBytes = new ArrayList<>(); public Boolean open = false; public Boolean areActiveCommands = false; // Function calls. public int numOpenCommPortCalls; public int numCloseCommPortCalls; public int numQueueStringForCommCalls; public int numSendByteImmediatelyCalls; public int numAreActiveCommandsCalls; public int numStreamCommandsCalls; public int numPauseSendCalls; public int numResumeSendCalls; public int numCancelSendCalls; public int numSoftResetCalls; public void resetInputsAndFunctionCalls() { this.portName = ""; this.portRate = 0; this.queuedStrings.clear(); this.queuedString = ""; this.open = false; this.numOpenCommPortCalls = 0; this.numCloseCommPortCalls = 0; this.numQueueStringForCommCalls = 0; this.numSendByteImmediatelyCalls = 0; this.numAreActiveCommandsCalls = 0; this.numStreamCommandsCalls = 0; this.numPauseSendCalls = 0; this.numResumeSendCalls = 0; this.numCancelSendCalls = 0; this.numSoftResetCalls = 0; } public MockGrblCommunicator() { //super(); this.conn = new MockConnection(); this.conn.setCommunicator(this); } @Override public boolean openCommPort(String name, int baud) throws Exception { this.numOpenCommPortCalls++; this.portName = name; this.portRate = baud; this.open = true; return true; } @Override public void closeCommPort() { this.numCloseCommPortCalls++; this.open = false; } @Override public boolean isCommOpen() { return open; } @Override public void queueStringForComm(String input) { this.numQueueStringForCommCalls++; this.queuedString = input; this.queuedStrings.add(input); } @Override public void sendByteImmediately(byte b) throws IOException { this.numSendByteImmediatelyCalls++; this.sentBytes.add(b); } @Override public String activeCommandSummary() { return ""; } @Override public boolean areActiveCommands() { this.numAreActiveCommandsCalls++; return this.areActiveCommands; } @Override public void streamCommands() { this.numStreamCommandsCalls++; } @Override public void pauseSend() { this.numPauseSendCalls++; } @Override public void resumeSend() { this.numResumeSendCalls++; } @Override public void cancelSend() { this.numCancelSendCalls++; } @Override public void softReset() { this.numSoftResetCalls++; } }