161 lines
2.8 KiB
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];
|
|
}
|
|
|
|
}
|