12 , periodic(false) , status(false), signalEdge(false)
22 if (signalEdge && !status && newStatus) {
32 listener->
signal(*
this, time);
49 executeUntil(time, 0);
51 listener->
signal(*
this, time);
63 return ((time - referenceTime) % totalDur) < hiDur;
91 int a = (begin < referenceTime) ?
93 (begin - referenceTime) / totalDur;
94 int b = (end - referenceTime) / totalDur;
104 if (signalEdge != wanted) {
122 void ClockPin::unschedule()
129 assert(signalEdge && periodic && listener);
135 assert(signalEdge && periodic && listener);
138 schedule(time + totalDur);
143 template<
typename Archive>
146 ar.template serializeBase<Schedulable>(*this);
147 ar.serialize(
"totalDur", totalDur);
148 ar.serialize(
"hiDur", hiDur);
149 ar.serialize(
"referenceTime", referenceTime);
150 ar.serialize(
"periodic", periodic);
151 ar.serialize(
"status", status);
152 ar.serialize(
"signalEdge", signalEdge);