| Class TFormChangeState (unit main) |
TForm
| Constructors |
| Functions |
procedure ButtonStartClick(Sender: TObject);
procedure ButtonStopClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure StateBooleanDayValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanForwardValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanPINValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanRadioValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanStartValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanStatusEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanStopValidEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateBooleanVerifyEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateMachineChangeState(Sender: TStateMachine; FromState,
ToState: TStateControl);
procedure StateMachineException(Sender: TStateMachine;
Node: TStateControl; Error: Exception);
procedure StateNodeAbortEnterState(Sender: TObject);
procedure StateNodeAcceptCallEnterState(Sender: TObject);
procedure StateNodeErrorEnterState(Sender: TObject);
procedure StateNodeGetActionEnterState(Sender: TObject);
procedure StateNodeGetAreaEnterState(Sender: TObject);
procedure StateNodeGetDayEnterState(Sender: TObject);
procedure StateNodeGetForwardEnterState(Sender: TObject);
procedure StateNodeGetPINEnterState(Sender: TObject);
procedure StateNodeGetRadioEnterState(Sender: TObject);
procedure StateNodeGetStartEnterState(Sender: TObject);
procedure StateNodeGetStopEnterState(Sender: TObject);
procedure StateNodeInitDatabaseEnterState(Sender: TObject);
procedure StateNodeInitEnterState(Sender: TObject);
procedure StateNodeOpenEnterState(Sender: TObject);
procedure StateNodePlayWelcomeEnterState(Sender: TObject);
procedure StateNodeResetEnterState(Sender: TObject);
procedure StateNodeStatusEnterState(Sender: TObject);
procedure StateNodeStoreEnterState(Sender: TObject);
procedure StateNodeVerifyActionEnterState(Sender: TObject);
procedure StateNodeWaitForCallEnterState(Sender: TObject);
procedure StateStartEnterState(Sender: TObject);
procedure StateTransitionActionTransition(Sender: TObject);
procedure StateTransitionBadForwardTransition(Sender: TObject);
procedure StateTransitionBadPINTransition(Sender: TObject);
procedure StateTransitionBadRadioTransition(Sender: TObject);
procedure StateTransitionCloseTransition(Sender: TObject);
procedure StateTransitionForwardTransition(Sender: TObject);
procedure StateTransitionGetAreaPINTransition(Sender: TObject);
procedure StateTransitionGetRadioTransition(Sender: TObject);
procedure StateTransitionGetTimeTransition(Sender: TObject);
procedure StateTransitionInitTransition(Sender: TObject);
procedure StateTransitionOpenTransition(Sender: TObject);
procedure StateTransitionStatusEndTransition(Sender: TObject);
procedure StateTransitionStatusTransition(Sender: TObject);
procedure StateTransitionVerifyTransition(Sender: TObject);
procedure Voice1LineDropped(Sender: TObject);
procedure Voice1RingDetected(Sender: TObject);
procedure DoHangup;
procedure DoStop;
procedure LogError(Error: Exception);
function SmartGetDigits(MaxDigits: integer; Terminators: string;
MaxInterval, DigitInterval: integer): string;
procedure SmartPlayIndexedFile(Filename: string; Index: integer;
Text: string; Start: integer; Terminators: string; Clear: boolean; Format: integer);
procedure SpeakStatus(RadioNo: string; p: PInterval; Term: string);
function SpeakTime(T: TDateTime): string;
procedure StripTerm(var s: string; Term: string);
function StrToTime(s: string): TDateTime;
function ValidatePhoneNo(s: string): boolean;
function ValidateTime(s: string): boolean;
procedure WriteEventLog(EventType: WORD; EventID: integer; Msg1, Msg2, Msg3: string; address: LongInt);| Properties |
| Events |
| Variables |
ButtonStart : TBitBtn;
ButtonStop : TBitBtn;
Label1 : TLabel;
Panel1 : TPanel;
StateBooleanDayValid : TStateBoolean;
StateBooleanForwardValid : TStateBoolean;
StateBooleanPINValid : TStateBoolean;
StateBooleanRadioValid : TStateBoolean;
StateBooleanStartValid : TStateBoolean;
StateBooleanStatus : TStateBoolean;
StateBooleanStopValid : TStateBoolean;
StateBooleanVerify : TStateBoolean;
StateLinkActionIn : TStateLink;
StateLinkActionLoopOut : TStateLink;
StateLinkInitIn : TStateLink;
StateLinkInitOut : TStateLink;
StateMachine : TStateMachine;
StateNodeAbort : TStateNode;
StateNodeAcceptCall : TStateNode;
StateNodeError : TStateNode;
StateNodeGetAction : TStateNode;
StateNodeGetArea : TStateNode;
StateNodeGetDay : TStateNode;
StateNodeGetForward : TStateNode;
StateNodeGetPIN : TStateNode;
StateNodeGetRadio : TStateNode;
StateNodeGetStart : TStateNode;
StateNodeGetStop : TStateNode;
StateNodeInit : TStateNode;
StateNodeInitDatabase : TStateNode;
StateNodeOpen : TStateNode;
StateNodePlayWelcome : TStateNode;
StateNodeReset : TStateNode;
StateNodeStatus : TStateNode;
StateNodeStore : TStateNode;
StateNodeVerifyAction : TStateNode;
StateNodeWaitForCall : TStateNode;
StateStart : TStateStart;
StateStop : TStateStop;
StateTransitionAction : TStateTransition;
StateTransitionBadForward : TStateTransition;
StateTransitionBadPIN : TStateTransition;
StateTransitionBadRadio : TStateTransition;
StateTransitionClose : TStateTransition;
StateTransitionForward : TStateTransition;
StateTransitionGetAreaPIN : TStateTransition;
StateTransitionGetRadio : TStateTransition;
StateTransitionGetTime : TStateTransition;
StateTransitionInit : TStateTransition;
StateTransitionOpen : TStateTransition;
StateTransitionStatus : TStateTransition;
StateTransitionStatusEnd : TStateTransition;
StateTransitionVerify : TStateTransition;
Voice1 : TVoice;
DataModuleRemote : TDataModuleRemote;
ActionLoopCounter : integer;
EntryAreaCode : string;
EntryDay : string;
EntryDayTime : integer;
EntryForward : string;
EntryPINCode : string;
EntryRadioNo : string;
EntryStart : string;
EntryStartTime : TDateTime;
EntryStop : string;
EntryStopTime : TDateTime;
ErrorCounter : integer;
FileNamePhrases : string;
FileNameSupport : string;
hEventSource : THandle;
IgnoreAsync : boolean;
IntervalList : TList;
LastErrorNode : TStateControl;
LookupNumberType : string;
LoopCounter : integer;
RemoteAction : TRemoteAction;
RemoteNumberType : string;
SumCall : integer;
TotalCall : integer;| Constructors |
| Functions |
procedure ButtonStartClick(Sender: TObject);****************************************************************************** ** ** Support Routines **
procedure ButtonStopClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);****************************************************************************** ** ** Form/Application Event Handlers **
procedure FormDestroy(Sender: TObject);Only radio supported at the moment
procedure FormShow(Sender: TObject);Voice1.DeAllocateLine;
procedure StateBooleanDayValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Wait for max 1 digit
procedure StateBooleanForwardValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Wait 10 second for max 1 digit
procedure StateBooleanPINValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Wait 10 second for max 10 digits
procedure StateBooleanRadioValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Recording format
procedure StateBooleanStartValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Wait 10 second for max 4 digits
procedure StateBooleanStatusEnterState(Sender: TStateBoolean;
var Result: Boolean);Recording format
procedure StateBooleanStopValidEnterState(Sender: TStateBoolean;
var Result: Boolean);Wait 10 second for max 4 digits
procedure StateBooleanVerifyEnterState(Sender: TStateBoolean;
var Result: Boolean);
procedure StateMachineChangeState(Sender: TStateMachine; FromState,
ToState: TStateControl);****************************************************************************** ** ** State Machine Event Handlers **
procedure StateMachineException(Sender: TStateMachine;
Node: TStateControl; Error: Exception);
procedure StateNodeAbortEnterState(Sender: TObject);Ignore
procedure StateNodeAcceptCallEnterState(Sender: TObject);ignore
procedure StateNodeErrorEnterState(Sender: TObject);****************************************************************************** ** ** State Transition Event Handlers **
procedure StateNodeGetActionEnterState(Sender: TObject);
procedure StateNodeGetAreaEnterState(Sender: TObject);
procedure StateNodeGetDayEnterState(Sender: TObject);
procedure StateNodeGetForwardEnterState(Sender: TObject);
procedure StateNodeGetPINEnterState(Sender: TObject);Wait 10 second for max 4 digits
procedure StateNodeGetRadioEnterState(Sender: TObject);
procedure StateNodeGetStartEnterState(Sender: TObject);Convert specified time from relative to absolute
procedure StateNodeGetStopEnterState(Sender: TObject);Recording format
procedure StateNodeInitDatabaseEnterState(Sender: TObject);[system] Username=xxx Password=xxx LocalUsername=xxx LocalPassword=xxx [override] VoiceLine=1 DigitInterval=0 ShortInterval=15 LongInterval=20 SupportNumber=21265338
procedure StateNodeInitEnterState(Sender: TObject);Initialize database connections
procedure StateNodeOpenEnterState(Sender: TObject);
procedure StateNodePlayWelcomeEnterState(Sender: TObject);Pause before message
procedure StateNodeResetEnterState(Sender: TObject);
procedure StateNodeStatusEnterState(Sender: TObject);
procedure StateNodeStoreEnterState(Sender: TObject);Wait 10 second for max 1 digit
procedure StateNodeVerifyActionEnterState(Sender: TObject);Stop is always later than start
procedure StateNodeWaitForCallEnterState(Sender: TObject);Ignore
procedure StateStartEnterState(Sender: TObject);Settle down
procedure StateTransitionActionTransition(Sender: TObject);
procedure StateTransitionBadForwardTransition(Sender: TObject);
procedure StateTransitionBadPINTransition(Sender: TObject);Check AreaCode/PIN
procedure StateTransitionBadRadioTransition(Sender: TObject);Wait 20 second for max 10 digits
procedure StateTransitionCloseTransition(Sender: TObject);Wait 10 second for max 1 digit
procedure StateTransitionForwardTransition(Sender: TObject);// Cancel all alterations from now EntryDayTime := 0 EntryStart := FormatDateTime('hhnn', Now); // and two days forward EntryStop := FormatDateTime('hhnn', Now+2.0);
procedure StateTransitionGetAreaPINTransition(Sender: TObject);Recording format
procedure StateTransitionGetRadioTransition(Sender: TObject);Recording format
procedure StateTransitionGetTimeTransition(Sender: TObject);
procedure StateTransitionInitTransition(Sender: TObject);
procedure StateTransitionOpenTransition(Sender: TObject);
procedure StateTransitionStatusEndTransition(Sender: TObject);Repeat last
procedure StateTransitionStatusTransition(Sender: TObject);Recording format
procedure StateTransitionVerifyTransition(Sender: TObject);Recording format
procedure Voice1LineDropped(Sender: TObject);This is an error!
procedure Voice1RingDetected(Sender: TObject);****************************************************************************** ** ** Voice Control Event Handlers **
procedure DoHangup;Recording format
procedure DoStop;Ignore
procedure LogError(Error: Exception);****************************************************************************** ** ** Application Error Handlers **
function SmartGetDigits(MaxDigits: integer; Terminators: string;
MaxInterval, DigitInterval: integer): string;'til klokken'
procedure SmartPlayIndexedFile(Filename: string; Index: integer;
Text: string; Start: integer; Terminators: string; Clear: boolean; Format: integer);
procedure SpeakStatus(RadioNo: string; p: PInterval; Term: string);
function SpeakTime(T: TDateTime): string;Result is always later than now if (Result < Now) then Result := Result + 1.0;
procedure StripTerm(var s: string; Term: string);
function StrToTime(s: string): TDateTime;Remove trailing terms
function ValidatePhoneNo(s: string): boolean;
function ValidateTime(s: string): boolean;
procedure WriteEventLog(EventType: WORD; EventID: integer; Msg1, Msg2, Msg3: string; address: LongInt);| Properties |
| Events |
| Variables |
ButtonStart : TBitBtn;
ButtonStop : TBitBtn;
Label1 : TLabel;
Panel1 : TPanel;
StateBooleanDayValid : TStateBoolean;
StateBooleanForwardValid : TStateBoolean;
StateBooleanPINValid : TStateBoolean;
StateBooleanRadioValid : TStateBoolean;
StateBooleanStartValid : TStateBoolean;
StateBooleanStatus : TStateBoolean;
StateBooleanStopValid : TStateBoolean;
StateBooleanVerify : TStateBoolean;
StateLinkActionIn : TStateLink;
StateLinkActionLoopOut : TStateLink;
StateLinkInitIn : TStateLink;
StateLinkInitOut : TStateLink;
StateMachine : TStateMachine;
StateNodeAbort : TStateNode;
StateNodeAcceptCall : TStateNode;
StateNodeError : TStateNode;
StateNodeGetAction : TStateNode;
StateNodeGetArea : TStateNode;
StateNodeGetDay : TStateNode;
StateNodeGetForward : TStateNode;
StateNodeGetPIN : TStateNode;
StateNodeGetRadio : TStateNode;
StateNodeGetStart : TStateNode;
StateNodeGetStop : TStateNode;
StateNodeInit : TStateNode;
StateNodeInitDatabase : TStateNode;
StateNodeOpen : TStateNode;
StateNodePlayWelcome : TStateNode;
StateNodeReset : TStateNode;
StateNodeStatus : TStateNode;
StateNodeStore : TStateNode;
StateNodeVerifyAction : TStateNode;
StateNodeWaitForCall : TStateNode;
StateStart : TStateStart;
StateStop : TStateStop;
StateTransitionAction : TStateTransition;
StateTransitionBadForward : TStateTransition;
StateTransitionBadPIN : TStateTransition;
StateTransitionBadRadio : TStateTransition;
StateTransitionClose : TStateTransition;
StateTransitionForward : TStateTransition;
StateTransitionGetAreaPIN : TStateTransition;
StateTransitionGetRadio : TStateTransition;
StateTransitionGetTime : TStateTransition;
StateTransitionInit : TStateTransition;
StateTransitionOpen : TStateTransition;
StateTransitionStatus : TStateTransition;
StateTransitionStatusEnd : TStateTransition;
StateTransitionVerify : TStateTransition;
Voice1 : TVoice;
DataModuleRemote : TDataModuleRemote;Public declarations
ActionLoopCounter : integer;
EntryAreaCode : string;User entries
EntryDay : string;
EntryDayTime : integer;
EntryForward : string;
EntryPINCode : string;
EntryRadioNo : string;
EntryStart : string;
EntryStartTime : TDateTime;
EntryStop : string;
EntryStopTime : TDateTime;
ErrorCounter : integer;
FileNamePhrases : string;Message files
FileNameSupport : string;
hEventSource : THandle;Event logging
IgnoreAsync : boolean;
IntervalList : TList;
LastErrorNode : TStateControl;Private declarations
LookupNumberType : string;
LoopCounter : integer;
RemoteAction : TRemoteAction;
RemoteNumberType : string;
SumCall : integer;
TotalCall : integer;Statistics