Exemple #1
0
        public bool StartProcedure(string procname)
        {
            bool result = false;

            if (procedures.Contains(procname) &&
                System.IO.File.Exists(CheckListFilename))
            {
                foreach (XElement procedure in XElement.Load(CheckListFilename).Elements("procedure"))
                {
                    if (procedure.Attribute("name").Value.ToLower() == procname)
                    {
                        ShowProcedure(procname);
                        activeProcedure.Clear();

                        if (checklistForm != null)
                        {
                            if (procedure.Attribute("say") != null)
                            {
                                checklistForm.Say(procedure.Attribute("say").Value);
                            }
                            else
                            {
                                checklistForm.Say(procname + " procedure");
                            }
                        }

                        foreach (XElement items in procedure.Elements("item"))
                        {
                            string name   = "";
                            int    time   = 1; // default to 1 second per item
                            string fsuipc = "";
                            string xplm   = "";
                            string say    = "";

                            if (items.Attribute("name") != null)
                            {
                                name = items.Attribute("name").Value;
                            }
                            if (items.Attribute("time") != null)
                            {
                                time = Convert.ToInt32(items.Attribute("time").Value);
                            }
                            if (items.Attribute("fsuipc") != null)
                            {
                                fsuipc = items.Attribute("fsuipc").Value;
                            }
                            if (items.Attribute("xplm") != null)
                            {
                                xplm = items.Attribute("xplm").Value;
                            }
                            if (items.Attribute("say") != null)
                            {
                                say = items.Attribute("say").Value;
                            }

                            ProcedureItem item = new ProcedureItem();
                            item.name   = name;
                            item.time   = time;
                            item.fsuipc = fsuipc;
                            item.xplm   = xplm;
                            item.say    = say;

                            activeProcedure.Add(item);
                        }

                        nextProcedureItem = activeProcedure.GetEnumerator();
                        if (nextProcedureItem.MoveNext())
                        {
                            if (!singleStepMode)
                            {
                                tmrNextItem.Interval = Math.Max(1, nextProcedureItem.Current.time) * 1000;
                                tmrNextItem.Start();
                            }
                            else
                            {
                                tmrNextItem.Stop();
                            }
                            result = true;
                        }
                        else
                        {
                            EndProcedure();
                        }

                        break;
                    }
                }
            }

            return(result);
        }