public override void ProcessRunningDirectiveResult(DirectiveData data, CommunicationEventArgs comEventArgs) { var ret = data as RockerDirectiveData; if (CurrentStatus == DeviceStatusEnum.Startting) { //从tryStart变为running(真的开始) if (ret?.Speed > 0) { CurrentStatus = DeviceStatusEnum.Running; comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartEvent.TrySetResult(new DeviceIOResult(true)); OnCommunicationChange(comEventArgs); StartRunningLoop(); } else { comEventArgs.DeviceStatus = CurrentStatus; StartRunningLoop(); } } else if (CurrentStatus == DeviceStatusEnum.Running) { comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartRunningLoop(); } else { comEventArgs.DeviceStatus = DeviceStatusEnum.Error; } }
//传感器只收发普通轮询指令 public override void ProcessRunningDirectiveResult(DirectiveData data, CommunicationEventArgs comEventArgs) { if (CurrentStatus == DeviceStatusEnum.Startting) { SetStatus(DeviceStatusEnum.Running); comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartEvent.TrySetResult(new DeviceIOResult(true)); OnCommunicationChange(comEventArgs); StartRunningLoop(); } else if (CurrentStatus == DeviceStatusEnum.Running) { comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartRunningLoop(); } }
public override void ProcessRunningDirectiveResult(DirectiveData data, CommunicationEventArgs comEventArgs) { var ret = data as PumpDirectiveData; if (CurrentStatus == DeviceStatusEnum.Startting) { //从tryStart变为running(真的开始) if (ret?.FlowRate > 0) { this.SetStatus(DeviceStatusEnum.Running); comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartEvent.TrySetResult(new DeviceIOResult(true)); OnCommunicationChange(comEventArgs); } else//泵收到开始命令 但还未运行 { comEventArgs.DeviceStatus = CurrentStatus; } StartRunningLoop(); } else if (CurrentStatus == DeviceStatusEnum.Running) { //泵输入/输出指定流量后停止 if (ret != null && ret.FlowRate <= 0) { this.SetStatus(DeviceStatusEnum.Idle); comEventArgs.DeviceStatus = DeviceStatusEnum.Idle; comEventArgs.Description = IdleDesc.Completed.ToString(); OnCommunicationChange(comEventArgs); } else//泵正在运行 { comEventArgs.DeviceStatus = DeviceStatusEnum.Running; StartRunningLoop(); } } }