40 lines
748 B
C++
40 lines
748 B
C++
Wire::Wire ()
|
|
{
|
|
// Initialisiere mit unbekanntem Zustand
|
|
q = unknown;
|
|
}
|
|
|
|
inline State Wire::GetState ()
|
|
{
|
|
return q;
|
|
}
|
|
|
|
|
|
void Wire::ChangeState (int t, State s)
|
|
{
|
|
Sim.StoreWireEvent(*this,t,s);
|
|
}
|
|
|
|
void Wire::Action (State s)
|
|
{
|
|
if (s==q) return; // nix zu tun
|
|
q = s; // neuer Zustand
|
|
c->ChangeInput(q,pin); // Nachricht an angeschlossen Baustein
|
|
}
|
|
|
|
void Wire::ConnectInput (Circuit& cir, int i)
|
|
{
|
|
// Merke NICHT an wen ich angeschlossen bin
|
|
// aber Baustein muss mich kennen.
|
|
cir.ConnectOutput(*this,i);
|
|
}
|
|
|
|
void Wire::ConnectOutput (Circuit& cir, int i)
|
|
{
|
|
// Merke Baustein, an den der Ausgang angeschlossen ist
|
|
c = ○
|
|
pin = i;
|
|
// Rueckverbindung Baustein an Draht
|
|
c->ConnectInput(*this,pin);
|
|
}
|