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

311 lines
5.2 KiB
Java

package org.hwo.pulscounter.device;
import java.awt.Component;
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;
private int[] scriptElements;
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(Component parent) {
return SimulatedCounterSettingsDialog.show(parent,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() {
return scriptElements;
}
@Override
public void setSimpleScript(int[] simpleScript) {
scriptElements = simpleScript;
}
@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, Integer 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) {
};
@Override
public int escape(int escape, int parm) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int[] getIncrements() {
return new int[]{1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1};
}
@Override
public void setIncrements(int[] triggers) {
}
@Override
public void shutdown() {
}
@Override
public void checkRealTimeClock() {
}
}