package org.hwo.pulscounter.device; import java.io.IOException; import org.hwo.io.NewSerialPort.NewSerialPort; import org.hwo.pulscounter.ui.DeviceConfiguration; import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.ServiceLinkRequestFailedException; import org.hwo.ui.dialog.SerialPortChooser; import static org.hwo.logging.Logging.*; import static org.hwo.logging.LogLevel.*; public class ServiceLinkDeviceConnector implements IDeviceConnector { private ServiceLink serviceLink; public ServiceLinkDeviceConnector() { serviceLink = new ServiceLink(new NewSerialPort("COM1:")); } private void checkOpen(){ if (!serviceLink.isOpen()){ try { serviceLink.open(); serviceLink.getSerialPort().setTimeOut(250); } catch (ServiceLinkException e) { throw new NoDeviceConnectionException(); } } } @Override public String toString() { return String.format("Serial [%s]", this.serviceLink.getSerialPort().getPortName()); } @Override public String getDeviceSerial() { return null; } public void setDeviceSerial(int serial) { } @Override public boolean showConnctionSetup() { NewSerialPort newSerialPort = SerialPortChooser.execute(serviceLink.getSerialPort().getPortName()); if (newSerialPort != null){ serviceLink.close(); serviceLink.getSerialPort().setPortName(newSerialPort.getPortName()); return true; } return false; } @Override public String getConnectionSettings() { return serviceLink.getSerialPort().getPortName(); } @Override public void setConnectionSettings(String connectionSettings) { serviceLink.close(); serviceLink.getSerialPort().setPortName(connectionSettings); } @Override public String getConnectionSettingsText() { return String.format("Port: %s",getConnectionSettings()); } @Override public int[] getCounters() { int[] values = new int[32]; checkOpen(); for (int n=0;n<32;n++){ Integer v = null; try { v = serviceLink.readInt(13, 0, 0x600 + n ); } catch (Exception e) { throw new NoDeviceConnectionException(); } if (v != null){ values[n] = v; } else { values[n] = 0; } } return values; } @Override public void setCounters(int[] values) { // TODO Auto-generated method stub } @Override public int getCounter(int channel) { // TODO Auto-generated method stub return 0; } @Override public void setCounter(int channel, int counter) { // TODO Auto-generated method stub } @Override public int[] getSimpleScript() { // TODO Auto-generated method stub return null; } @Override public void setSimpleScript(int[] simpleScript) { // TODO Auto-generated method stub } @Override public int getInputs() { // TODO Auto-generated method stub return 0; } @Override public int getOutputs() { // TODO Auto-generated method stub return 0; } @Override public void setOutputs(int outputs) { // TODO Auto-generated method stub } @Override public int getPullups() { // TODO Auto-generated method stub return 0; } @Override public void setPullups(int pullups) { // TODO Auto-generated method stub } @Override public int getInverts() { // TODO Auto-generated method stub return 0; } @Override public void setInverts(int inverts) { // TODO Auto-generated method stub } @Override public float[] getAnalogs() { // TODO Auto-generated method stub return null; } @Override public float getAnalog(int channel) { // TODO Auto-generated method stub return 0; } }