123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System;
- using System.Collections.Generic;
- using Wayne.Lib;
- using Wayne.Lib.StateEngine;
- using Wayne.Lib.StateEngine.Generic;
- namespace SinochemInternetPlusApp.States.CarPlateMode
- {
- class DisableICCardReader : TimeoutState<FuelingPoint>
- {
- private byte sqNo;
- protected override void Enter(StateEntry stateEntry, ref Transition transition)
- {
- base.Enter(stateEntry, ref transition);
- //transition = new Transition(this, TransitionType.ICCardReaderDisabled);
- //return;
- Main.CloseICCardReader(out sqNo);
- }
- protected override void HandleNonTimeoutEvent(StateEngineEvent stateEngineEvent, ref Transition transition)
- {
- GenericEvent<CardReaderAckEventArgs> ackEvent = stateEngineEvent as GenericEvent<CardReaderAckEventArgs>;
- if (ackEvent != null && ackEvent.EventArgs != null)
- {
- if (ackEvent.EventArgs.Ack.MessageSeqNumber == sqNo)
- {
- DebugLog($"Ack for previous req arrived, SqNo: {sqNo}");
- Main.CardReaderDisabled = true;
- ackEvent.Handled = true;
- transition = new Transition(this, TransitionType.ICCardReaderDisabled);
- }
- else
- {
- DebugLog($"SqNo not matched, Sent: {sqNo}, Received: {ackEvent.EventArgs.Ack.MessageSeqNumber}");
- Main.CardReaderDisabled = true;
- ackEvent.Handled = true;
- transition = new Transition(this, TransitionType.ICCardReaderDisabled);
- }
- }
- }
- protected override void Timeout(ref Transition transition)
- {
- transition = new Transition(this, TransitionType.Timeout);
- }
- protected override int TimeoutInterval =>
- TimeoutValues.GetValueInMilliSec(TimeoutValues.FuelingPoint.CarPlateMode_DisableICCardReader, 10);
- }
- }
|