コード例 #1
0
        /// <summary>
        /// Конвертация Lua-таблицы в массив свойств
        /// </summary>
        /// <param name="table">Lua таблица</param>
        /// <returns></returns>
        public static Editor.ObjectProperty[] ConvertLuaTableToCArray(
            LuaTable table)
        {
            var Keys   = new string[table.Values.Count];
            var Values = new string[table.Values.Count];
            var res    = new Editor.ObjectProperty[Keys.Length];

            table.Values.CopyTo(Values, 0);
            table.Keys.CopyTo(Keys, 0);

            for (int i = 0; i < Keys.Length; i++)
            {
                res[i] = new Editor.ObjectProperty(Keys[i], Values[i]);
            }

            return(res);
        }
コード例 #2
0
ファイル: Step.cs プロジェクト: radtek/EasyEPLANner
        /// <summary>
        /// Создание нового шага.
        /// </summary>
        /// <param name="name">Имя шага.</param>
        /// <param name="getN">Функция получения номера шага.</param>
        /// <param name="isMode">Признак того, является ли шаг шагом операции.
        /// </param>
        /// <param name="owner">Владелец шага (Состояние)</param>
        public Step(string name, GetN getN, State owner, bool isMode = false)
        {
            this.name           = name;
            this.getN           = getN;
            this.IsMode         = isMode;
            this.owner          = owner;
            this.baseStep       = new ActiveParameter("", "");
            this.baseStep.Owner = this;

            items = new List <Editor.ITreeViewItem>();

            actions = new List <Action>();
            actions.Add(new Action("Включать", this,
                                   "opened_devices",
                                   new Device.DeviceType[3] {
                Device.DeviceType.V,
                Device.DeviceType.DO,
                Device.DeviceType.M
            }));

            actions.Add(new Action("Включать реверс", this,
                                   "opened_reverse_devices",
                                   new Device.DeviceType[1] {
                Device.DeviceType.M
            }));

            actions.Add(new Action("Выключать", this,
                                   "closed_devices",
                                   new Device.DeviceType[3] {
                Device.DeviceType.V,
                Device.DeviceType.DO,
                Device.DeviceType.M
            }));

            actions[2].DrawStyle = Editor.DrawInfo.Style.RED_BOX;
            actions.Add(new Action_WashSeats("Верхние седла", this,
                                             "opened_upper_seat_v"));

            actions[3].DrawStyle = Editor.DrawInfo.Style.GREEN_UPPER_BOX;
            actions.Add(new Action_WashSeats("Нижние седла", this,
                                             "opened_lower_seat_v"));

            actions[4].DrawStyle = Editor.DrawInfo.Style.GREEN_LOWER_BOX;
            actions.Add(new Action("Сигналы для включения", this,
                                   "required_FB",
                                   new Device.DeviceType[2] {
                Device.DeviceType.DI,
                Device.DeviceType.GS
            }));

            actions.Add(new Action_Wash("Мойка( DI, DO, устройства)", this,
                                        "wash_data"));

            actions.Add(new Action_DI_DO("Группы DI -> DO DO ...", this,
                                         "DI_DO"));

            actions.Add(new Action_AI_AO("Группы AI -> AO AO ...", this,
                                         "AI_AO"));

            items.AddRange(actions.ToArray());

            if (!isMode)
            {
                timeParam = new Editor.ObjectProperty("Время (параметр)", -1);
                nextStepN = new Editor.ObjectProperty(
                    "Номер следующего шага", -1);

                items.Add(timeParam);
                items.Add(nextStepN);
            }
        }