コード例 #1
0
        public override FilteredAnleitungsschritt filter(Anleitungsschritt anleitungsschritt, Assistenzinformationen mitarbeiterinformationen)
        {
            // Just copy and pass on without filtering anything
            var filteredSchritt = new FilteredAnleitungsschritt(anleitungsschritt.Copy());

            return(filteredSchritt);
        }
コード例 #2
0
        public override FilteredAnleitungsschritt filter(Anleitungsschritt anleitungsschritt, Assistenzinformationen mitarbeiterinfos)
        {
            // Filter out any Media that aren't Text2D objects:
            var filteredSchritt = new FilteredAnleitungsschritt(anleitungsschritt.Copy());

            filteredSchritt.AnleitungsmediaWithInfos.RemoveAll(medium => !(medium.Anleitungsmedium is Text2D));
            return(filteredSchritt);
        }
コード例 #3
0
        Anleitung generateTestAnleitung()
        {
            var Schritt1 = new Anleitungsschritt(
                "Schritt1",
                new List <MediumWithInfos>
            {
                new MediumWithInfos(
                    new Text2D(new Point2D(0.5f, 0.9f), "Legen Sie einen Kupplungskorb auf den Tisch."),
                    new Assistenzinformationen(0)
                    ),
                new MediumWithInfos(
                    new Bild2D(new Point2D(0.5f, 0.5f), "imagename.jpg"),
                    new Assistenzinformationen(1)
                    )
            }
                );
            var Schritt2 = new Anleitungsschritt(
                "Schritt2",
                new List <MediumWithInfos>
            {
                new MediumWithInfos(
                    new Text2D(new Point2D(0.5f, 0.5f), "Nehmen Sie ein Kupplungsrad aus dem Schrank und fuegen sie das Kupplungsrad in den Kupplungskorb ein. Die Korkseite des Rades soll nach oben zeigen."),
                    new Assistenzinformationen(0)
                    ),
                new MediumWithInfos(
                    new Bild2D(new Point2D(0.5f, 0.5f), "imagename.jpg"),
                    new Assistenzinformationen(1)
                    )
            }
                );
            var Schritt3 = new Anleitungsschritt(
                "Schritt3",
                new List <MediumWithInfos>
            {
                new MediumWithInfos(
                    new Text2D(new Point2D(0.5f, 0.5f), "Ende der Anleitung."),
                    new Assistenzinformationen(0)
                    )
            }
                );

            return(new Anleitung("Kupplung", new List <Anleitungsschritt> {
                Schritt1, Schritt2, Schritt3
            }));
        }
コード例 #4
0
        public override FilteredAnleitungsschritt filter(Anleitungsschritt anleitungsschritt, Assistenzinformationen mitarbeiterInfos)
        {
            // Keep track of how many times an assembly worker has worked on the same step in a row:
            if (mostRecentAnleitungsschritt == null)
            {
                mostRecentAnleitungsschritt = anleitungsschritt;
                SameSchrittAttempts         = 0;
            }
            else
            {
                if (mostRecentAnleitungsschritt.Equals(anleitungsschritt))
                {
                    SameSchrittAttempts++;
                }
                else
                {
                    mostRecentAnleitungsschritt = anleitungsschritt;
                    // If new step was triggered without repeated attempts, assembly worker must be getting better:
                    if (SameSchrittAttempts == 0)
                    {
                        Console.WriteLine("Mitarbeiter-Assistenzlevel dropping to " + mitarbeiterInfos.Assistenzlevel);
                        mitarbeiterInfos.Assistenzlevel--;
                    }
                    else
                    {
                        SameSchrittAttempts = 0;
                    }
                }
            }

            // If mitarbeiter worked on the same step three times, they need more assistance
            if (SameSchrittAttempts > 0 && SameSchrittAttempts % 3 == 0)
            {
                Console.WriteLine("Mitarbeiter-Assistenzlevel rising to " + mitarbeiterInfos.Assistenzlevel);
                mitarbeiterInfos.Assistenzlevel++;
            }

            // Finally, filter step based on Erfahrungsgrad:
            var filteredSchritt = new FilteredAnleitungsschritt(anleitungsschritt.Copy());

            filteredSchritt.AnleitungsmediaWithInfos.RemoveAll(stepversion => (stepversion.Assistenzinformationen.Assistenzlevel) > mitarbeiterInfos.Assistenzlevel);
            return(filteredSchritt);
        }
コード例 #5
0
 public AnleitungsschrittArgs(Anleitungsschritt anleitungsschritt)
 {
     Anleitungsschritt = anleitungsschritt;
 }
コード例 #6
0
 public abstract FilteredAnleitungsschritt filter(Anleitungsschritt anleitungsschritt, Assistenzinformationen mitarbeiterinfos);
コード例 #7
0
 public FilteredAnleitungsschritt(Anleitungsschritt anleitungsschritt) : base(anleitungsschritt.Name, anleitungsschritt.AnleitungsmediaWithInfos)
 {
 }