ゲート(AND、ORなど)を作成するプログラムを作成していますが、SRラッチを作成したい場合、タイマーを使用する必要があります。
したがって、このメソッド (inputChanged) が呼び出されると、タイマーが実行されているかどうかを確認する必要があります。実行中の場合は何もしません。(これは私が立ち往生していた...)それ以外の場合は、新しい値が古い値から逸脱しているかどうかを確認する必要があります(getOutputValue()
)。
その場合、新しい値を保存し、少し遅れて割り込み信号を送信する必要があります。初期遅延に setInitialDelay() を使用していますが、割り込み信号の送信方法がわかりません。
このコードはうまく機能していないので、このコードで何が間違っているのだろうか....
public void inputChanged()
{
timer = new javax.swing.Timer(delay, new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
// Check if timer is running.
if(timer.isRunning())
{
boolean value = calculateValue();
// new Value old Value
if(calculateValue() != getOutputValue())
{
timer.setInitialDelay(delay);
timer.stop();
}
outputChanged(value);
}
}
});
timer.start();
}