private DirectiveResult ParsePausingResultData(byte[] bytes)
        {
            var ret = new DirectiveResult();

            if (!DirectiveHelper.IsValidationResult(bytes, ((DirectiveTypeEnum)bytes[1]).GetFeedbackLength()))
            {
                ret.Status = false;
                return(ret);
            }

            ret.Status = true;
            var data = new PumpDirectiveData();

            data.DeviceId      = bytes[0];
            data.DirectiveType = (DirectiveTypeEnum)bytes[1];
            data.TimeInterval  = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(2).Take(2).ToArray());
            data.FlowRate      = DirectiveHelper.Parse2BytesToNumber(bytes.Skip(4).Take(2).ToArray());
            data.DeviceStatus  = bytes.Skip(6).Take(1).FirstOrDefault();
            data.DirectiveId   = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(7).Take(2).ToArray());
            data.DeviceType    = TargetDeviceTypeEnum.Pump;

            ret.SourceDirectiveType = DirectiveTypeEnum.Pausing;
            ret.Data = data;

            return(ret);
        }
        private DirectiveResult ParseTryStartResultData(byte[] bytes)
        {
            var ret = new DirectiveResult();

            if (!DirectiveHelper.IsValidationResult(bytes, ((DirectiveTypeEnum)bytes[1]).GetFeedbackLength()))
            {
                ret.Status = false;
                return(ret);
            }

            ret.Status = true;
            var data = new PumpDirectiveData();

            data.DeviceId      = bytes[0];
            data.DirectiveType = (DirectiveTypeEnum)bytes[1];
            data.DirectiveId   = (int)DirectiveHelper.Parse2BytesToNumber(bytes.Skip(2).Take(2).ToArray());
            data.DeviceType    = TargetDeviceTypeEnum.Pump;

            ret.SourceDirectiveType = DirectiveTypeEnum.TryStart;
            ret.Data = data;

            return(ret);
        }