package de.bse.prgm.cmd.io;
import de.bse.prgm.cmd.ICommand;
import de.bse.prgm.cmd.time.Pause;
import de.bse.run.app.IConsole;
import de.bse.vm.Machine;
public class Pwm implements ICommand {
/**
* Simulate analog pwm.
*
* @param pin
* @param duty
* @param duration
*/
/**
* Constructor of the PWM class which simulates a PWM
* command on the BS1.
* @param pin on which the PWM signal shall be created
* @param duty time of the PWM signal
* @param duration of the whole PWM signal
*/
public Pwm(String pin, int duty, int duration) {
pause = new Pause(String.valueOf(duration));
input = new Input(pin);
this.pin = pin;
this.duty = duty;
this.duration = duration;
}
private final int duty;
private final String pin;
private final int duration;
private final Pause pause;
private final Input input;
public void execute(Machine machine, IConsole console) {
pause.execute(machine, console);
input.execute(machine, console);
}
public String infoMsg() {
return "[Info]Simulate PWM on PIN" + pin + " with duty " + duty
+ " and duration " + duration;
}
}