org.hwo.pulscounter/src/org/hwo/pulscounter/device/ServiceLinkDeviceConnector....

188 lines
3.5 KiB
Java

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;
}
}