org.hwo.pulscounter/src/org/hwo/pulscounter/device/SimulatedCounter.java

161 lines
2.8 KiB
Java

package org.hwo.pulscounter.device;
import java.util.Random;
import static org.hwo.logging.Logging.*;
import static org.hwo.logging.LogLevel.*;
public class SimulatedCounter implements IDeviceConnector {
private int serial;
private int[] values;
private float[] analogs;
private int inputs,
outputs,
pullups,
inverts;
private Random random;
public SimulatedCounter() {
random = new Random();
serial = random.nextInt();
values = new int[32];
analogs = new float[8];
for (int i=0;i<8;i++){
analogs[i] = (float)(random.nextFloat() * 10.0);
}
}
@Override
public String toString() {
return String.format("Simulated Counter [%d]", serial);
}
@Override
public String getDeviceSerial() {
return String.format("%d", serial);
}
@Override
public boolean showConnctionSetup() {
return SimulatedCounterSettingsDialog.show(this);
}
@Override
public String getConnectionSettings() {
return String.format("%d", serial);
}
@Override
public void setConnectionSettings(String connectionSettings) {
if (!connectionSettings.equals("")){
log(INFO,"Simulated Counter changes serial %d -> %s",serial,connectionSettings);
serial = Integer.parseInt(connectionSettings);
}
}
@Override
public String getConnectionSettingsText() {
return String.format("Device Serial: %d\nSimulated Values", serial);
}
@Override
public int[] getCounters() {
int i = random.nextInt();
values[ i & 0x1F ] += random.nextInt() & 0x07;
for (i=0;i<8;i++){
analogs[i] += (float)(random.nextFloat() * 0.6)-0.3;
if (analogs[i] > 10.0f){
analogs[i] = 10.0f;
}
if (analogs[i] < 0.0f){
analogs[i] = 0.0f;
}
}
inputs = random.nextInt();
return values;
}
@Override
public void setCounters(int[] values) {
this.values = values;
}
@Override
public int getCounter(int channel) {
return values[channel];
}
@Override
public void setCounter(int channel, int counter) {
values[channel] = counter;
}
@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() {
return inputs;
}
@Override
public int getOutputs() {
return outputs;
}
@Override
public void setOutputs(int outputs) {
this.outputs = outputs;
}
@Override
public int getPullups() {
return pullups;
}
@Override
public void setPullups(int pullups) {
this.pullups = pullups;
}
@Override
public int getInverts() {
return inverts;
}
@Override
public void setInverts(int inverts) {
this.inverts = inverts;
}
@Override
public float[] getAnalogs() {
return analogs;
}
@Override
public float getAnalog(int channel) {
return analogs[channel];
}
}