286 lines
4.8 KiB
Java
286 lines
4.8 KiB
Java
package org.hwo.pulscounter.device;
|
|
|
|
import java.util.Random;
|
|
|
|
import org.hwo.pulscounter.SnapShot;
|
|
|
|
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 Integer getDeviceSerial() {
|
|
return 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 int getTriggers() {
|
|
// TODO Auto-generated method stub
|
|
return 0;
|
|
}
|
|
@Override
|
|
public void setTriggers(int triggers) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public int getConfigOutputs() {
|
|
return outputs;
|
|
}
|
|
|
|
@Override
|
|
public void setConfigOutputs(int outputs) {
|
|
this.outputs = outputs;
|
|
}
|
|
|
|
@Override
|
|
public int getConfigPullups() {
|
|
return pullups;
|
|
}
|
|
|
|
@Override
|
|
public void setConfigPullups(int pullups) {
|
|
this.pullups = pullups;
|
|
}
|
|
|
|
@Override
|
|
public int getConfigInverts() {
|
|
return inverts;
|
|
}
|
|
|
|
@Override
|
|
public void setConfigInverts(int inverts) {
|
|
this.inverts = inverts;
|
|
}
|
|
|
|
@Override
|
|
public int getConfigTriggers() {
|
|
// TODO Auto-generated method stub
|
|
return 0;
|
|
}
|
|
@Override
|
|
public void setConfigTriggers(int triggers) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
@Override
|
|
public float[] getAnalogs() {
|
|
return analogs;
|
|
}
|
|
|
|
@Override
|
|
public float getAnalog(int channel) {
|
|
return analogs[channel];
|
|
}
|
|
|
|
|
|
@Override
|
|
public int getHighestSnapShotIndex() {
|
|
// TODO Auto-generated method stub
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public SnapShot[] readSnapShots(int startIndex) {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public int getInterval(int iNo) {
|
|
// TODO Auto-generated method stub
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public boolean isIntervalDailyBased(int iNo) {
|
|
// TODO Auto-generated method stub
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void setInterval(int iNo, int intervall, boolean dailyBase) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public int[] getDebounce() {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setDebounce(int[] filters) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public int[] getWindows() {
|
|
// TODO Auto-generated method stub
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setWindows(int[] windows) {
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public int getDailyBaseMask() {
|
|
// TODO Auto-generated method stub
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void syncConfigToLive() {
|
|
// TODO Auto-generated method stub
|
|
}
|
|
|
|
public void reset(int flags) {
|
|
|
|
|
|
};
|
|
|
|
}
|