示例#1
0
        public virtual async Task <DeviceIOResult> StopAsync()
        {
            Debug.WriteLine($"Stop {DeviceType} {DeviceId} when  CurrentStatus {CurrentStatus}");
            if (CurrentStatus == DeviceStatusEnum.Idle || CurrentStatus == DeviceStatusEnum.Pausing)
            {
                return(new DeviceIOResult(true));
            }

            var directive = new TryPauseDirective(DeviceId, DeviceType);

            OnPreCommunicationEvent(directive);

            CurrentStatus = DeviceStatusEnum.PrePause;
            SendDirective(directive);

            var p = await stopEvent.WaitAsync();

            stopEvent.Reset();

            return(p);
        }
示例#2
0
 private byte[] GenerateDirectiveBuffer(TryPauseDirective directive)
 {
     return(GetCommonBufferData(directive));
 }
示例#3
0
        public virtual void Stop()
        {
            var directive = new TryPauseDirective(DeviceId, DeviceType);

            DirectiveWorker.Instance.PrepareDirective(directive);
        }