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() { } }