188 lines
3.5 KiB
Java
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;
|
|
}
|
|
|
|
|
|
|
|
}
|