Important Update:
- FunctionCore: - Bug Fix: Change Channel OutState before triggering event - TimingCore: - Add method SecondsPassed() (provides seconds instead of milli-seconds)
This commit is contained in:
@@ -219,8 +219,8 @@ bool CFunctionCore::SetChannelInState( TChannel * Channel, const EChannelState S
|
|||||||
ProcessName, Name, Channel->Ref, LinkChannel->Channel->Ref, ChannelStateName[State] );
|
ProcessName, Name, Channel->Ref, LinkChannel->Channel->Ref, ChannelStateName[State] );
|
||||||
|
|
||||||
// Trigger Linked Channel Events
|
// Trigger Linked Channel Events
|
||||||
LinkChannel->Function->ChannelStateEvent( LinkChannel->Channel, Channel->Ref, OldState, State );
|
|
||||||
LinkChannel->Function->UpdateChannelOutState( LinkChannel->Channel );
|
LinkChannel->Function->UpdateChannelOutState( LinkChannel->Channel );
|
||||||
|
LinkChannel->Function->ChannelStateEvent( LinkChannel->Channel, Channel->Ref, OldState, State );
|
||||||
|
|
||||||
LinkChannel = LinkChannel->Next;
|
LinkChannel = LinkChannel->Next;
|
||||||
}
|
}
|
||||||
@@ -323,12 +323,12 @@ bool CFunctionCore::LinkChannel( const char * ChannelName, const char * LinkFunc
|
|||||||
ProcessName, Name, LinkChannel->Ref, (*LinkedChannel)->Channel->Ref, ((Output)? "Yes" : "No"), ((Input)? "Yes" : "No") );
|
ProcessName, Name, LinkChannel->Ref, (*LinkedChannel)->Channel->Ref, ((Output)? "Yes" : "No"), ((Input)? "Yes" : "No") );
|
||||||
|
|
||||||
// Trigger Forward Channel Events
|
// Trigger Forward Channel Events
|
||||||
LinkFunction->ChannelStateEvent( LinkChannel, Channel->Ref, CH_off, Channel->InState );
|
|
||||||
LinkFunction->UpdateChannelOutState( LinkChannel );
|
LinkFunction->UpdateChannelOutState( LinkChannel );
|
||||||
|
LinkFunction->ChannelStateEvent( LinkChannel, Channel->Ref, CH_off, Channel->InState );
|
||||||
|
|
||||||
// Trigger Reverse Channel Events
|
// Trigger Reverse Channel Events
|
||||||
ChannelStateEvent( Channel, LinkChannel->Ref, CH_off, LinkChannel->InState );
|
|
||||||
UpdateChannelOutState( Channel );
|
UpdateChannelOutState( Channel );
|
||||||
|
ChannelStateEvent( Channel, LinkChannel->Ref, CH_off, LinkChannel->InState );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
14
TimingCore.h
14
TimingCore.h
@@ -53,6 +53,16 @@ inline long TimePassed( timeval StartTime ) {
|
|||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
inline long SecondsPassed( timeval StartTime ) {
|
||||||
|
timeval CurrTime;
|
||||||
|
long Duration;
|
||||||
|
|
||||||
|
gettimeofday( &CurrTime, NULL );
|
||||||
|
Duration = CurrTime.tv_sec - StartTime.tv_sec;
|
||||||
|
return Duration;
|
||||||
|
};
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
// Time remaining from Start time to given time out
|
// Time remaining from Start time to given time out
|
||||||
inline long TimeLeft( timeval StartTime, long MilliSeconds ) {
|
inline long TimeLeft( timeval StartTime, long MilliSeconds ) {
|
||||||
return (MilliSeconds - TimePassed(StartTime));
|
return (MilliSeconds - TimePassed(StartTime));
|
||||||
@@ -69,11 +79,9 @@ inline bool Timeout( timeval StartTime, long MilliSeconds ) {
|
|||||||
inline long GetUpCounter( timeval StartTime, char * TextStr ) {
|
inline long GetUpCounter( timeval StartTime, char * TextStr ) {
|
||||||
long Duration;
|
long Duration;
|
||||||
int Days, Hours, Minutes, Seconds;
|
int Days, Hours, Minutes, Seconds;
|
||||||
timeval CurrTime;
|
|
||||||
|
|
||||||
// Get duration
|
// Get duration
|
||||||
gettimeofday( &CurrTime, NULL );
|
Duration = SecondsPassed( StartTime );
|
||||||
Duration = (!StartTime.tv_sec)? 0 : (CurrTime.tv_sec - StartTime.tv_sec); // Handle zero start
|
|
||||||
|
|
||||||
// Create string
|
// Create string
|
||||||
if (TextStr) {
|
if (TextStr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user