Exemplo n.º 1
0
        public override void StartModelling(int variantCount, int runCount)
        {
            #region Задание начальных значений модельных переменных и объектов
            #endregion

            #region Cброс сборщиков статистики

            #endregion

            //Печать заголовка строки состояния модели
            TraceModelHeader();

            #region Планирование начальных событий

            var  ev1 = new K1();                                // создание объекта события
            Pass Z1  = new Pass();
            Z1.NZ  = 1;
            ev1.ZP = Z1;                                  // передача библиотекаря в событие
            PlanEvent(ev1, 0.0);                          // планирование события 3
            Tracer.PlanEventTrace(ev1);

            Random rnd = new Random();
            var    ev2 = new K2();                              // создание объекта события
            Bus    Z2  = new Bus();
            Z2.NB  = 1;
            KPA    = 0;
            Z2.KPA = KPA;
            ev2.ZB = Z2;                                  // передача библиотекаря в событие
            double dt2 = T + GenBusAppear.GenerateValue();
            PlanEvent(ev2, dt2);                          // планирование события 3
            Tracer.PlanEventTrace(ev2);

            #endregion
        }
Exemplo n.º 2
0
        public override void StartModelling(int variantCount, int runCount)
        {
            #region Задание начальных значений модельных переменных и объектов
            #endregion

            #region Cброс сборщиков статистики

            #endregion

            //Печать заголовка строки состояния модели
            TraceModelHeader();

            #region Планирование начальных событий
            var ev1 = new K1();
            Bid Z1  = new Bid();
            Z1.NZ  = 1;
            Z1.MEM = GenVol.GenerateValue();
            Z1.KPT = GenKK.GenerateValue();
            ev1.ZP = Z1;

            PlanEvent(ev1, 0.0);
            Tracer.PlanEventTrace(ev1);

            var ev2 = new K2();
            PlanEvent(ev2, DELKV);
            Tracer.PlanEventTrace(ev2);
            TraceModel();

            #endregion
        }
Exemplo n.º 3
0
 private void trackK2_MouseUp(object sender, MouseEventArgs e)
 {
     if (K2 != trackK2.Value)
     {
         K2 = trackK2.Value;
         string str = K2.ToString();
         textK2.Text = str;
         koshiClient.uartWrite("#b" + str + "$");
     }
 }
Exemplo n.º 4
0
 private void trackK2_MouseUp(object sender, MouseEventArgs e)
 {
     if (K2 != trackK2.Value)
     {
         K2 = trackK2.Value;
         string str = K2.ToString();
         textK2.Text = str;
         gpduinoClient.send("#b" + str + "$");
     }
 }
        private AddPropertyForm MapPropertyToform(K2.PSUK.ServiceObjectSchema.SchemaObject.SchemaProperty property)
        {
            AddPropertyForm frmAddProperty = new AddPropertyForm();

            frmAddProperty.txtDescription.Text = property.Description;
            frmAddProperty.txtDisplayName.Text = property.DisplayName;
            frmAddProperty.txtProeprtyName.Text = property.Name;
            string x = property.K2Type.ToString();
            frmAddProperty.cmbSmOType.SelectedItem = x;
            frmAddProperty.cmbNativeType.Text = property.TrueType;

            return frmAddProperty;
        }
Exemplo n.º 6
0
            // алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                Model.Tracer.EventTrace(this);
                if (Model.QPP.Count != 0)
                {
                    // Выбор первой заявки
                    QRec QPPRec = Model.QPP[0];
                    Model.QPP.RemoveAt(0);
                    // Выделение кванта
                    Model.Tracer.AnyTrace(QPPRec.Z.KPT);
                    QPPRec.Z.KPT--;
                    Model.Tracer.AnyTrace(QPPRec.Z.KPT);
                    if (QPPRec.Z.KPT == 0)
                    {
                        // Увеличение объема свободной ОП
                        Model.FREEMEM += QPPRec.Z.MEM;

                        if (Model.VQ.Count != 0)
                        {
                            if (Model.FREEMEM >= Model.VQ[0].Z.MEM)
                            {
                                // Перенос заявки из VQ в QPP
                                Model.QPP.Add(Model.VQ[0]);
                                Model.VQ.RemoveAt(0);

                                // Уменьшение свободной ОП
                                Model.FREEMEM -= Model.QPP[Model.QPP.Count - 1].Z.MEM;
                            }
                        }
                    }
                    else
                    {
                        Model.QPP.Add(QPPRec);
                    }
                }

                // Планируем событие К2
                var ev2 = new K2();

                Model.PlanEvent(ev2, Model.DELKV);
                Model.Tracer.PlanEventTrace(ev2);
                Model.Tracer.AnyTrace("");
                Model.TraceModel();
                Model.Tracer.AnyTrace("");
            }
Exemplo n.º 7
0
            // алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                Random rnd = new Random();

                Model.KPA = rnd.Next(Model.ml, Model.mp);
                Model.KA += 1;
                Model.Tracer.EventTrace(this, "NB = " + ZB.NB + " KPA = " + Model.KPA);
                Model.SA = 1;
                int KolPassOut = rnd.Next(Model.VL, Model.VP);

                //           if (KolPassOut > ZB.KPA)
                //KolPassOut = ZB.KPA;

                Model.KOP = KolPassOut;
                // /* Model.KOP = */Model.KPA -= KolPassOut;

                // ВЫСАДКА ПАССАЖИРОВ
                double dt3 = 0;

                for (int i = 0; i <= KolPassOut; i++)
                {
                    dt3 += Model.GenPassOut.GenerateValue();
                }

                var ev3 = new K3();                                 // создание объекта события

                Model.PlanEvent(ev3, dt3);                          // планирование события 3
                Model.Tracer.PlanEventTrace(ev3);

                var ev2 = new K2();                                                 // создание объекта события
                Bus Z   = new Bus();

                Z.NB   = this.ZB.NB + 1;
                Z.KPA  = Model.KPA;
                ev2.ZB = Z;
                double dt2 = Model.T + Model.GenBusAppear.GenerateValue();

                Model.PlanEvent(ev2, dt2);                          // планирование события 3
                Model.Tracer.PlanEventTrace(ev2);
                Model.Tracer.AnyTrace("");
                Model.TraceModel();
                Model.Tracer.AnyTrace("");
            }
Exemplo n.º 8
0
        private (BitString k1, BitString k2) ComputeSubKey(BitString key)
        {
            //6.1 SUBKEY GENERATION

            //Prerequisites:
            //    block cipher CIPH with block size b;
            //    key K.

            //Output:
            //subkeys K1, K2.

            //Suggested Notation:
            //    SUBK(K).

            //Steps:
            //    1.Let L = CIPHK(0^b).
            var param = new ModeBlockCipherParameters(
                BlockCipherDirections.Encrypt, key, new BitString(Engine.BlockSizeBits)
                );
            var L = AlgoMode.ProcessPayload(param).Result;

            BitString K1, K2;

            //    2.If MSB1(L) = 0, then K1 = L << 1;
            K1 = L.LSBShift();
            //Else K1 = (L << 1) XOR Rb; see Sec. 5.3 for the definition of Rb.
            if (L.GetMostSignificantBits(1).Bits[0])
            {
                K1 = K1.XOR(RbConstant);
            }

            //    3.If MSB1(K1) = 0, then K2 = K1 << 1;
            K2 = K1.LSBShift();
            //    Else K2 = (K1 << 1) XOR Rb.
            if (K1.GetMostSignificantBits(1).Bits[0])
            {
                K2 = K2.XOR(RbConstant);
            }

            //    4.Return K1, K2.
            return(K1, K2);
        }
Exemplo n.º 9
0
        private void SerialComGyro_callback(char[] rxBuff)
        {
            string data = new string(rxBuff);

            if (data.Length < 1)
            {
                return;
            }

            switch (data[0])
            {
            // ログデータ
            case 'd':
                try
                {
                    int   t, y;
                    float theta, omega, x, v;
                    float y1, y2, y3, y4;
                    t = Convert.ToInt32(data.Substring(1, 4), 16);

                    theta = (float)Convert.ToInt16(data.Substring(5, 4), 16) / 100.0F;
                    omega = (float)Convert.ToInt16(data.Substring(9, 4), 16) / 100.0F;
                    x     = (float)Convert.ToInt16(data.Substring(13, 4), 16) / 100.0F;
                    v     = (float)Convert.ToInt16(data.Substring(17, 4), 16) / 100.0F;
                    y     = Convert.ToInt16(data.Substring(21, 4), 16);

                    y1 = K1 * theta;
                    y2 = K2 * omega;
                    y3 = K3 * x / 100;
                    y4 = K4 * v / 100;

                    this.BeginInvoke((Action)(() => {
                        textTheta.Text = theta.ToString("F1");
                        textOmega.Text = omega.ToString("F1");
                        textX.Text = x.ToString("F1");
                        textV.Text = v.ToString("F1");

                        textK1Theta.Text = y1.ToString("F1");
                        textK2Omega.Text = y2.ToString("F1");
                        textK3X.Text = y3.ToString("F1");
                        textK4V.Text = y4.ToString("F1");

                        textY.Text = y.ToString();

                        if (t < time)
                        {
                            chart1.Series[0].Points.Clear();
                            chart1.Series[1].Points.Clear();
                            chart2.Series[0].Points.Clear();
                            chart2.Series[1].Points.Clear();
                            chart3.Series[0].Points.Clear();
                            chart3.Series[1].Points.Clear();
                            chart3.Series[2].Points.Clear();
                            chart3.Series[3].Points.Clear();
                            chart3.Series[4].Points.Clear();
                        }
                        time = t;

                        if (time < 30000)
                        {
                            chart1.ChartAreas[0].AxisX.Minimum = 0;
                            chart1.ChartAreas[0].AxisX.Maximum = 30000;
                            chart2.ChartAreas[0].AxisX.Minimum = 0;
                            chart2.ChartAreas[0].AxisX.Maximum = 30000;
                            chart3.ChartAreas[0].AxisX.Minimum = 0;
                            chart3.ChartAreas[0].AxisX.Maximum = 30000;
                        }
                        else
                        {
                            chart1.ChartAreas[0].AxisX.Minimum = time - 30000;
                            chart1.ChartAreas[0].AxisX.Maximum = time;
                            chart2.ChartAreas[0].AxisX.Minimum = time - 30000;
                            chart2.ChartAreas[0].AxisX.Maximum = time;
                            chart3.ChartAreas[0].AxisX.Minimum = time - 30000;
                            chart3.ChartAreas[0].AxisX.Maximum = time;
                        }

                        double max;
                        max = Math.Abs(theta);
                        if (max > MAX_THETA)
                        {
                            chart1.ChartAreas[0].AxisY.Maximum = MAX_THETA * 2;
                            chart1.ChartAreas[0].AxisY.Minimum = -MAX_THETA * 2;
                            chart1.ChartAreas[0].AxisY.Interval = MAX_THETA;
                            time1 = time;
                        }
                        if (time > time1 + 30000)
                        {
                            chart1.ChartAreas[0].AxisY.Maximum = MAX_THETA;
                            chart1.ChartAreas[0].AxisY.Minimum = -MAX_THETA;
                            chart1.ChartAreas[0].AxisY.Interval = MAX_THETA / 2;
                        }

                        max = Math.Abs(omega);
                        if (max > MAX_OMEGA)
                        {
                            chart1.ChartAreas[0].AxisY2.Maximum = MAX_OMEGA * 2;
                            chart1.ChartAreas[0].AxisY2.Minimum = -MAX_OMEGA * 2;
                            chart1.ChartAreas[0].AxisY2.Interval = MAX_OMEGA;
                            time2 = time;
                        }
                        if (time > time2 + 30000)
                        {
                            chart1.ChartAreas[0].AxisY2.Maximum = MAX_OMEGA;
                            chart1.ChartAreas[0].AxisY2.Minimum = -MAX_OMEGA;
                            chart1.ChartAreas[0].AxisY2.Interval = MAX_OMEGA / 2;
                        }

                        max = Math.Abs(x);
                        if (max > MAX_X)
                        {
                            chart2.ChartAreas[0].AxisY.Maximum = MAX_X * 2;
                            chart2.ChartAreas[0].AxisY.Minimum = -MAX_X * 2;
                            chart2.ChartAreas[0].AxisY.Interval = MAX_X;
                            time3 = time;
                        }
                        if (time > time3 + 30000)
                        {
                            chart2.ChartAreas[0].AxisY.Maximum = MAX_X;
                            chart2.ChartAreas[0].AxisY.Minimum = -MAX_X;
                            chart2.ChartAreas[0].AxisY.Interval = MAX_X / 2;
                        }

                        max = Math.Abs(v);
                        if (max > MAX_V)
                        {
                            chart2.ChartAreas[0].AxisY2.Maximum = MAX_V * 2;
                            chart2.ChartAreas[0].AxisY2.Minimum = -MAX_V * 2;
                            chart2.ChartAreas[0].AxisY2.Interval = MAX_V;
                            time4 = time;
                        }
                        if (time > time4 + 30000)
                        {
                            chart2.ChartAreas[0].AxisY2.Maximum = MAX_V;
                            chart2.ChartAreas[0].AxisY2.Minimum = -MAX_V;
                            chart2.ChartAreas[0].AxisY2.Interval = MAX_V / 2;
                        }

                        chart1.Series[0].Points.AddXY(t, theta);
                        chart1.Series[1].Points.AddXY(t, omega);
                        chart2.Series[0].Points.AddXY(t, x);
                        chart2.Series[1].Points.AddXY(t, v);
                        chart3.Series[0].Points.AddXY(t, y1);
                        chart3.Series[1].Points.AddXY(t, y2);
                        chart3.Series[2].Points.AddXY(t, y3);
                        chart3.Series[3].Points.AddXY(t, y4);
                        chart3.Series[4].Points.AddXY(t, y);
                    }));


                    logCsv.write(
                        t.ToString() + "," +
                        theta.ToString("F2") + "," +
                        omega.ToString("F2") + "," +
                        x.ToString("F2") + "," +
                        v.ToString("F2") + "," +
                        y.ToString()
                        );
                }
                catch
                {
                }

                break;

            // 設定値読み出し応答
            case 'l':
                try
                {
                    K1  = Convert.ToInt32(data.Substring(1, 4), 16);
                    K2  = Convert.ToInt32(data.Substring(5, 4), 16);
                    K3  = Convert.ToInt32(data.Substring(9, 4), 16);
                    K4  = Convert.ToInt32(data.Substring(13, 4), 16);
                    Th0 = Convert.ToInt32(data.Substring(17, 4), 16);
                    int on = Convert.ToInt32(data.Substring(21, 2), 16);

                    this.BeginInvoke((Action)(() => {
                        try
                        {
                            trackK1.Value = K1;
                            textK1.Text = K1.ToString();
                            trackK2.Value = K2;
                            textK2.Text = K2.ToString();
                            trackK3.Value = K3;
                            textK3.Text = K3.ToString();
                            trackK4.Value = K4;
                            textK4.Text = K4.ToString();
                            trackTheta0.Value = Th0;
                            textTheta0.Text = ((float)Th0 / 10.0).ToString("F1");
                            if (on == 0x00)
                            {
                                buttonCtrl.Text = "制御ON";
                            }
                            else
                            {
                                buttonCtrl.Text = "制御OFF";
                            }
                        }
                        catch
                        {
                            MessageBox.Show("異常なパラメータがありました");
                        }
                    }));
                }
                catch
                {
                    MessageBox.Show("設定値の読み出しに失敗しました");
                }
                break;
            }
        }
Exemplo n.º 10
0
        public Form1()
        {
            InitializeComponent();

            rxState = STATE_READY;
            rxPtr   = 0;
            rxBuff  = new char[5000];

            koshiClient = new KoshiClient();
            koshiClientUI.setKoshiClient(koshiClient);
            koshiClient.onConnect      += onConnect;
            koshiClient.onDisconnect   += onDisconnect;
            koshiClient.onUpdateUartRx += onUpdateUartRx;

            K1              = trackK1.Value;
            textK1.Text     = K1.ToString();
            K2              = trackK2.Value;
            textK2.Text     = K2.ToString();
            K3              = trackK3.Value;
            textK3.Text     = K3.ToString();
            K4              = trackK4.Value;
            textK4.Text     = K4.ToString();
            Th0             = trackTheta0.Value;
            textTheta0.Text = ((float)Th0 / 10.0).ToString("F1");

            chart1.ChartAreas[0].Position.X               = 0;
            chart1.ChartAreas[0].Position.Y               = 0;
            chart1.ChartAreas[0].Position.Width           = 85;
            chart1.ChartAreas[0].Position.Height          = 100;
            chart1.ChartAreas[0].InnerPlotPosition.X      = 10;
            chart1.ChartAreas[0].InnerPlotPosition.Y      = 5;
            chart1.ChartAreas[0].InnerPlotPosition.Width  = 80;
            chart1.ChartAreas[0].InnerPlotPosition.Height = 80;
            chart1.Legends[0].Position.X      = 85;
            chart1.Legends[0].Position.Y      = 3;
            chart1.Legends[0].Position.Width  = 15;
            chart1.Legends[0].Position.Height = 50;

            chart2.ChartAreas[0].Position.X               = 0;
            chart2.ChartAreas[0].Position.Y               = 0;
            chart2.ChartAreas[0].Position.Width           = 85;
            chart2.ChartAreas[0].Position.Height          = 100;
            chart2.ChartAreas[0].InnerPlotPosition.X      = 10;
            chart2.ChartAreas[0].InnerPlotPosition.Y      = 5;
            chart2.ChartAreas[0].InnerPlotPosition.Width  = 80;
            chart2.ChartAreas[0].InnerPlotPosition.Height = 80;
            chart2.Legends[0].Position.X      = 85;
            chart2.Legends[0].Position.Y      = 3;
            chart2.Legends[0].Position.Width  = 15;
            chart2.Legends[0].Position.Height = 50;

            chart3.ChartAreas[0].Position.X               = 0;
            chart3.ChartAreas[0].Position.Y               = 0;
            chart3.ChartAreas[0].Position.Width           = 85;
            chart3.ChartAreas[0].Position.Height          = 100;
            chart3.ChartAreas[0].InnerPlotPosition.X      = 10;
            chart3.ChartAreas[0].InnerPlotPosition.Y      = 5;
            chart3.ChartAreas[0].InnerPlotPosition.Width  = 80;
            chart3.ChartAreas[0].InnerPlotPosition.Height = 80;
            chart3.Legends[0].Position.X      = 80;
            chart3.Legends[0].Position.Y      = 3;
            chart3.Legends[0].Position.Width  = 20;
            chart3.Legends[0].Position.Height = 50;

            chart1.Series.Clear();
            chart1.Series.Add("θ");
            chart1.Series.Add("ω");
            chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart1.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart1.Series[0].YAxisType = AxisType.Primary;
            chart1.Series[1].YAxisType = AxisType.Secondary;

            chart2.Series.Clear();
            chart2.Series.Add("x");
            chart2.Series.Add("v");
            chart2.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart2.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart2.Series[0].YAxisType = AxisType.Primary;
            chart2.Series[1].YAxisType = AxisType.Secondary;

            chart3.Series.Clear();
            chart3.Series.Add("K1・θ");
            chart3.Series.Add("K2・ω");
            chart3.Series.Add("K3・x");
            chart3.Series.Add("K4・v");
            chart3.Series.Add("y");
            chart3.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart3.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart3.Series[2].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart3.Series[3].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            chart3.Series[4].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;

            chart1.ChartAreas[0].AxisY.Maximum            = MAX_THETA;
            chart1.ChartAreas[0].AxisY.Minimum            = -MAX_THETA;
            chart1.ChartAreas[0].AxisY.Interval           = MAX_THETA / 2;
            chart1.ChartAreas[0].AxisY.LabelStyle.Format  = "F2";
            chart1.ChartAreas[0].AxisY2.Maximum           = MAX_OMEGA;
            chart1.ChartAreas[0].AxisY2.Minimum           = -MAX_OMEGA;
            chart1.ChartAreas[0].AxisY2.Interval          = MAX_OMEGA / 2;
            chart1.ChartAreas[0].AxisY2.LabelStyle.Format = "F1";
            chart2.ChartAreas[0].AxisY.Maximum            = MAX_X;
            chart2.ChartAreas[0].AxisY.Minimum            = -MAX_X;
            chart2.ChartAreas[0].AxisY.Interval           = MAX_X / 2;
            chart2.ChartAreas[0].AxisY.LabelStyle.Format  = "F1";
            chart2.ChartAreas[0].AxisY2.Maximum           = MAX_V;
            chart2.ChartAreas[0].AxisY2.Minimum           = -MAX_V;
            chart2.ChartAreas[0].AxisY2.Interval          = MAX_V / 2;
            chart2.ChartAreas[0].AxisY2.LabelStyle.Format = "F1";
            chart3.ChartAreas[0].AxisY.Maximum            = 128;
            chart3.ChartAreas[0].AxisY.Minimum            = -128;
            chart3.ChartAreas[0].AxisY.Interval           = 32;

            logCsv = new LogCsv();
            logCsv.setHeader("t,theta,omega,x,v,y1,y2,y3,y4,y");

            sw    = System.Diagnostics.Stopwatch.StartNew();
            time  = 0;
            time1 = time2 = time3 = time4 = 0;
        }
Exemplo n.º 11
0
 static public void Insert(K2 newRecord)
 {
     db.K2.Add(newRecord);
     db.SaveChanges();
 }
Exemplo n.º 12
0
    // Use this for initialization
    void Start()
    {
        PlayerIcon.GetComponent <SpriteRenderer>().enabled = true;
        A1.GetComponent <SpriteRenderer>().enabled         = false;
        A2.GetComponent <SpriteRenderer>().enabled         = false;
        A3.GetComponent <SpriteRenderer>().enabled         = false;
        A4.GetComponent <SpriteRenderer>().enabled         = false;
        A5.GetComponent <SpriteRenderer>().enabled         = false;
        A6.GetComponent <SpriteRenderer>().enabled         = false;
        A7.GetComponent <SpriteRenderer>().enabled         = false;
        A8.GetComponent <SpriteRenderer>().enabled         = false;
        A9.GetComponent <SpriteRenderer>().enabled         = false;
        A10.GetComponent <SpriteRenderer>().enabled        = false;
        A11.GetComponent <SpriteRenderer>().enabled        = false;
        B1.GetComponent <SpriteRenderer>().enabled         = false;
        B2.GetComponent <SpriteRenderer>().enabled         = false;
        B3.GetComponent <SpriteRenderer>().enabled         = false;
        B4.GetComponent <SpriteRenderer>().enabled         = false;
        B5.GetComponent <SpriteRenderer>().enabled         = false;
        B6.GetComponent <SpriteRenderer>().enabled         = false;
        B7.GetComponent <SpriteRenderer>().enabled         = false;
        B8.GetComponent <SpriteRenderer>().enabled         = false;
        B9.GetComponent <SpriteRenderer>().enabled         = false;
        B10.GetComponent <SpriteRenderer>().enabled        = false;
        B11.GetComponent <SpriteRenderer>().enabled        = false;
        C1.GetComponent <SpriteRenderer>().enabled         = false;
        C2.GetComponent <SpriteRenderer>().enabled         = false;
        C3.GetComponent <SpriteRenderer>().enabled         = false;
        C4.GetComponent <SpriteRenderer>().enabled         = false;
        C5.GetComponent <SpriteRenderer>().enabled         = false;
        C6.GetComponent <SpriteRenderer>().enabled         = false;
        C7.GetComponent <SpriteRenderer>().enabled         = false;
        C8.GetComponent <SpriteRenderer>().enabled         = false;
        C9.GetComponent <SpriteRenderer>().enabled         = false;
        C10.GetComponent <SpriteRenderer>().enabled        = false;
        C11.GetComponent <SpriteRenderer>().enabled        = false;
        D1.GetComponent <SpriteRenderer>().enabled         = false;
        D2.GetComponent <SpriteRenderer>().enabled         = false;
        D3.GetComponent <SpriteRenderer>().enabled         = false;
        D4.GetComponent <SpriteRenderer>().enabled         = false;
        D5.GetComponent <SpriteRenderer>().enabled         = false;
        D6.GetComponent <SpriteRenderer>().enabled         = false;
        D7.GetComponent <SpriteRenderer>().enabled         = false;
        D8.GetComponent <SpriteRenderer>().enabled         = false;
        D9.GetComponent <SpriteRenderer>().enabled         = false;
        D10.GetComponent <SpriteRenderer>().enabled        = false;
        D11.GetComponent <SpriteRenderer>().enabled        = false;
        E1.GetComponent <SpriteRenderer>().enabled         = false;
        E2.GetComponent <SpriteRenderer>().enabled         = false;
        E3.GetComponent <SpriteRenderer>().enabled         = false;
        E4.GetComponent <SpriteRenderer>().enabled         = false;
        E5.GetComponent <SpriteRenderer>().enabled         = false;
        E6.GetComponent <SpriteRenderer>().enabled         = false;
        E7.GetComponent <SpriteRenderer>().enabled         = false;
        E8.GetComponent <SpriteRenderer>().enabled         = false;
        E9.GetComponent <SpriteRenderer>().enabled         = false;
        E10.GetComponent <SpriteRenderer>().enabled        = false;
        E11.GetComponent <SpriteRenderer>().enabled        = false;
        F1.GetComponent <SpriteRenderer>().enabled         = false;
        F2.GetComponent <SpriteRenderer>().enabled         = false;
        F3.GetComponent <SpriteRenderer>().enabled         = false;
        F4.GetComponent <SpriteRenderer>().enabled         = false;
        F5.GetComponent <SpriteRenderer>().enabled         = false;
        F6.GetComponent <SpriteRenderer>().enabled         = false;
        F7.GetComponent <SpriteRenderer>().enabled         = false;
        F8.GetComponent <SpriteRenderer>().enabled         = false;
        F9.GetComponent <SpriteRenderer>().enabled         = false;
        F10.GetComponent <SpriteRenderer>().enabled        = false;
        F11.GetComponent <SpriteRenderer>().enabled        = false;
        G1.GetComponent <SpriteRenderer>().enabled         = false;
        G2.GetComponent <SpriteRenderer>().enabled         = false;
        G3.GetComponent <SpriteRenderer>().enabled         = false;
        G4.GetComponent <SpriteRenderer>().enabled         = false;
        G5.GetComponent <SpriteRenderer>().enabled         = false;
        G6.GetComponent <SpriteRenderer>().enabled         = false;
        G7.GetComponent <SpriteRenderer>().enabled         = false;
        G8.GetComponent <SpriteRenderer>().enabled         = false;
        G9.GetComponent <SpriteRenderer>().enabled         = false;
        G10.GetComponent <SpriteRenderer>().enabled        = false;
        G11.GetComponent <SpriteRenderer>().enabled        = false;
        H1.GetComponent <SpriteRenderer>().enabled         = false;
        H2.GetComponent <SpriteRenderer>().enabled         = false;
        H3.GetComponent <SpriteRenderer>().enabled         = false;
        H4.GetComponent <SpriteRenderer>().enabled         = false;
        H5.GetComponent <SpriteRenderer>().enabled         = false;
        H6.GetComponent <SpriteRenderer>().enabled         = false;
        H7.GetComponent <SpriteRenderer>().enabled         = false;
        H8.GetComponent <SpriteRenderer>().enabled         = false;
        H9.GetComponent <SpriteRenderer>().enabled         = false;
        H10.GetComponent <SpriteRenderer>().enabled        = false;
        H11.GetComponent <SpriteRenderer>().enabled        = false;
        I1.GetComponent <SpriteRenderer>().enabled         = false;
        I2.GetComponent <SpriteRenderer>().enabled         = false;
        I3.GetComponent <SpriteRenderer>().enabled         = false;
        I4.GetComponent <SpriteRenderer>().enabled         = false;
        I5.GetComponent <SpriteRenderer>().enabled         = false;
        I6.GetComponent <SpriteRenderer>().enabled         = false;
        I7.GetComponent <SpriteRenderer>().enabled         = false;
        I8.GetComponent <SpriteRenderer>().enabled         = false;
        I9.GetComponent <SpriteRenderer>().enabled         = false;
        I10.GetComponent <SpriteRenderer>().enabled        = false;
        I11.GetComponent <SpriteRenderer>().enabled        = false;
        J1.GetComponent <SpriteRenderer>().enabled         = false;
        J2.GetComponent <SpriteRenderer>().enabled         = false;
        J3.GetComponent <SpriteRenderer>().enabled         = false;
        J4.GetComponent <SpriteRenderer>().enabled         = false;
        J5.GetComponent <SpriteRenderer>().enabled         = false;
        J6.GetComponent <SpriteRenderer>().enabled         = false;
        J7.GetComponent <SpriteRenderer>().enabled         = false;
        J8.GetComponent <SpriteRenderer>().enabled         = false;
        J9.GetComponent <SpriteRenderer>().enabled         = false;
        J10.GetComponent <SpriteRenderer>().enabled        = false;
        J11.GetComponent <SpriteRenderer>().enabled        = false;
        K1.GetComponent <SpriteRenderer>().enabled         = false;
        K2.GetComponent <SpriteRenderer>().enabled         = false;
        K3.GetComponent <SpriteRenderer>().enabled         = false;
        K4.GetComponent <SpriteRenderer>().enabled         = false;
        K5.GetComponent <SpriteRenderer>().enabled         = false;
        K6.GetComponent <SpriteRenderer>().enabled         = false;
        K7.GetComponent <SpriteRenderer>().enabled         = false;
        K8.GetComponent <SpriteRenderer>().enabled         = false;
        K9.GetComponent <SpriteRenderer>().enabled         = false;
        K10.GetComponent <SpriteRenderer>().enabled        = false;
        K11.GetComponent <SpriteRenderer>().enabled        = false;
        float ratio = Screen.width / Screen.height;

        if (ratio < 2)
        {
            int screenx = 543;
            int screeny = 653;
        }
        else
        {
            int screenx = 743;
            int screeny = 853;
        }
    }
Exemplo n.º 13
0
        static public string K2(int idCompanyMiddleman)
        {
            int idContractType = 0, idCompanyContractType = 0;
            List <Franchise> franchise = new List <Franchise>();
            List <InsuranceZoneOfRegistration> insuranceZoneOfReg = new List <InsuranceZoneOfRegistration>();
            List <bool>             isLegal            = new List <bool>();
            List <CarInsuranceType> insuranceTypeOfCar = new List <CarInsuranceType>();

            try
            {
                idContractType        = ContractTypeDataManipulation.GetId("ГО");
                idCompanyContractType = CompanyContractTypeDataManipulation.GetId(idCompanyMiddleman, idContractType);
                franchise             = FranchiseDataManipulation.GetFranchises(ContractFranchiseDataManipulation.GetFranchiseIds(idCompanyContractType));
                insuranceZoneOfReg    = InsuranceZoneOfRegistrationDataManipulation.GetMulti();
                isLegal = new List <bool> {
                    true, false
                };
                insuranceTypeOfCar = CarInsuranceTypeDataManipulation.GetMulti();
            }
            catch
            {
                responseToClient.responseType = ResponseType.Bad;
                responseToClient.responseText = "Виникла помилка при генерації умов.";
                return(js.Serialize(responseToClient));
            }

            foreach (var izor in insuranceZoneOfReg)
            {
                foreach (var il in isLegal)
                {
                    foreach (var itoc in insuranceTypeOfCar)
                    {
                        foreach (var f in franchise)
                        {
                            var idContractFranchise = ContractFranchiseDataManipulation.GetId(idCompanyContractType, f.Id);

                            if (K2DataManipulation.IsConditionExist(izor.Id, il, itoc.Id, idContractFranchise, idCompanyContractType, idCompanyMiddleman))
                            {
                                var newRowK2 = new K2()
                                {
                                    IdInsuranceZoneOfReg = izor.Id,
                                    IsLegalEntity        = il,
                                    IdCarInsuranceType   = itoc.Id,
                                    IdContractFranchise  = idContractFranchise,
                                    Value = 0,
                                    IdCompanyMiddleman = idCompanyMiddleman,
                                };

                                try
                                {
                                    K2DataManipulation.Insert(newRowK2);
                                }
                                catch
                                {
                                    responseToClient.responseType = ResponseType.Bad;
                                    responseToClient.responseText = $"Виникла помилка при генерації запису для умов: \"{izor.Name}\"; \"{il}\"; \"{itoc.Type}\"; \"{f.Sum}\".";
                                    return(js.Serialize(responseToClient));
                                }
                            }
                        }
                    }
                }
            }

            responseToClient.responseType = ResponseType.Good;
            responseToClient.responseText = "Генерація даних пройшла успішно.";
            return(js.Serialize(responseToClient));
        }
Exemplo n.º 14
0
        private void CreateMyListView(string data)
        {
            switch (opt)
            {
            case 1:
            {
                dataSeries1 = data.Split(' ', ',');
                ListViewItem item1 = new ListViewItem(K1.ToString(), 0);
                dataSeries1[1] = dataSeries1[1].Remove(17);
                long tempT1 = long.Parse(dataSeries1[1]) + 116444736000000000;
                dataSeries1[1] = tempT1.ToString();
                DateTime dt = DateTime.FromFileTime(long.Parse(dataSeries1[1]));
                dataSeries1[1] = dt.ToString("yyyy-MM-dd HH:mm:ss.ffff");
                dataSeries1[2] = dataSeries1[2].Remove(17);
                long tempT2 = long.Parse(dataSeries1[2]) + 116444736000000000;
                dataSeries1[2] = tempT2.ToString();
                dt             = DateTime.FromFileTime(long.Parse(dataSeries1[2]));
                dataSeries1[2] = dt.ToString("yyyy-MM-dd HH:mm:ss.ffff");
                if (dataSeries1[5] == "2")
                {
                    dataSeries1[5] = "2.5G POS";
                }
                for (int i = 0; i < dataSeries1.Length; i++)
                {
                    item1.SubItems.Add(dataSeries1[i]);
                }
                checkBoxComboBox2.Items.Add(dataSeries1[0]);
                toolStripComboBox2.Items.Add(dataSeries1[0]);
                listView1.Items.Insert(0, item1);
                ImageList imageListLarge = new ImageList();
                ImageList imageListSmall = new ImageList();
                listView1.LargeImageList = imageListLarge;
                listView1.SmallImageList = imageListSmall;
                K1 = K1 + 1;
                break;
            }

            case 2:
            {
                dataSeries1 = data.Split(' ', ',');
                ListViewItem item1 = new ListViewItem(K2.ToString(), 0);
                for (int i = 0; i < dataSeries1.Length; i++)
                {
                    item1.SubItems.Add(dataSeries1[i]);
                }
                checkBoxComboBox1.Items.Add(dataSeries1[0]);
                toolStripComboBox1.Items.Add(dataSeries1[0]);
                listView2.Items.Insert(0, item1);
                ImageList imageListLarge = new ImageList();
                ImageList imageListSmall = new ImageList();
                listView2.LargeImageList = imageListLarge;
                listView2.SmallImageList = imageListSmall;
                K2 = K2 + 1;
                break;
            }

            case 3:
            {
                dataSeries1 = data.Split(' ', ',');
                ListViewItem item1 = new ListViewItem(K3.ToString(), 0);
                for (int i = 0; i < dataSeries1.Length; i++)
                {
                    item1.SubItems.Add(dataSeries1[i]);
                }
                listView3.Items.Insert(0, item1);
                ImageList imageListLarge = new ImageList();
                ImageList imageListSmall = new ImageList();
                listView3.LargeImageList = imageListLarge;
                listView3.SmallImageList = imageListSmall;
                K3 = K3 + 1;
                break;
            }

            case 4:
            {
                listView1.Visible = false;
                listView2.Visible = false;
                listView3.Visible = false;
                listView4.Visible = true;
                dataSeries1       = data.Split(' ', ',');
                ListViewItem item1 = new ListViewItem(dataSeries1[0], 0);
                for (int i = 1; i < dataSeries1.Length; i++)
                {
                    item1.SubItems.Add(dataSeries1[i]);
                }
                listView4.Items.Insert(0, item1);
                ImageList imageListLarge = new ImageList();
                ImageList imageListSmall = new ImageList();
                listView4.LargeImageList = imageListLarge;
                listView4.SmallImageList = imageListSmall;
                break;
            }

            case 5:
            {
                listView1.Visible = false;
                listView2.Visible = false;
                listView3.Visible = false;
                listView4.Visible = false;
                listView5.Visible = true;
                dataSeries1       = data.Split(' ', ',');
                ListViewItem item1 = new ListViewItem(dataSeries1[0], 0);
                for (int i = 1; i < dataSeries1.Length; i++)
                {
                    item1.SubItems.Add(dataSeries1[i]);
                }
                listView5.Items.Insert(0, item1);
                ImageList imageListLarge = new ImageList();
                ImageList imageListSmall = new ImageList();
                listView5.LargeImageList = imageListLarge;
                listView5.SmallImageList = imageListSmall;

                //richtextBox1.AppendText(data);
                break;
            }
            }
        }
Exemplo n.º 15
0
        public static string GenerateInput2(int numberOfData)
        {
            int i, p;

            System.Text.StringBuilder data;
            string K1, K2, K3, K4, K5,
                   K6, K7, K8, K9, K10,
                   K11, K12, K13, K14, K15,
                   K16, K17, K18, K19, K20,
                   K21, K22, K23, K24, K25,
                   K26, K27, K28, K29, K30,
                   K31, K32, K33, K34, K35,
                   K36, K37, K38, K39, K40, K41;
            string answer = "No";

            System.Random rand = new System.Random();

            /*
             * Weights/NeuralNetwork/Excel
             */
            double[] w1 = new double[]
            {
                1.0, 1.0, 1.0, 1.0, 1.0,
                1.0, 1.0, 1.0, 1.0, 0.0,
                1.0, 0.0, 1.0, 0.0, 0.0,
                1.0, 1.0, 1.0, 1.0, 1.0,
                1.0, 1.0, 1.0, 1.0, 1.0,
                0.0, 1.0, 0.1, 1.0, 0.0,
                1.0, 0.0, 1.0, 1.0, 1.0,
                1.0, 1.0, 1.0, 1.0, 1.0,
            };
            double[] w2 = new double[40];

            string path = @"E:\General\Programming\C_Sharp\WPF\FirePredictionSystem\FirePredictionSystem\bin\Debug\Data\new_table_of_fires_2.xlsx";

            if (System.IO.File.Exists(path))
            {
                using (ExcelAPIClass exApi = new ExcelAPIClass(
                           path, "Лист1", "B3", "I100"))
                {
                    exApi.ShowCategoriesWithAttributes();
                    int[][] x = exApi.GetUsefullAttributesValues();

                    int[]      target     = exApi.GetTarget();
                    Perceptron perceptron = new Perceptron(x, w1, target);
                    perceptron.Learn();
                    w2 = perceptron.Weights;
                }
            }
            else
            {
                for (int wi = 0; wi < w2.Length; wi++)
                {
                    w2[wi] = 0.0;
                }
            }

            data = new System.Text.StringBuilder(
                "K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 " +
                "K12 K13 K14 K15 K16 K17 K18 K19 " +
                "K20 K21 K22 K23 K24 K25 K26 K27 " +
                "K28 K29 K30 K31 K32 K33 K34 K35 " +
                "K36 K37 K38 K39 K40 K41 Answer" +
                "\r\n");

            for (i = 0; i < numberOfData; i++)
            {
                answer = "No";
                //горючий потолок
                K1 = rand.Next(0, 1000) > 900 ? "Присутствует" : "Отсутствует";
                //горючий пол
                K2 = rand.Next(0, 1000) > 900 ? "Присутствует" : "Отсутствует";
                //горючая стена
                K3 = rand.Next(0, 1000) > 900 ? "Присутствует" : "Отсутствует";

                #region Печь
                p  = rand.Next(1, 1000);
                K4 = (p <= 700) ? "90"  :
                     (p > 700 && p <= 750) ? "110" :
                     (p > 750 && p <= 950) ? "120" : "140";
                p  = rand.Next(1, 1000);
                K5 = (p <= 666) ? "<=5"  :
                     (p > 666 && p <= 950) ? "5<x<=15" : ">15";
                K6 = rand.Next(0, 1000) < 950 ? "Присутствует" :
                     "Отсутствует";
                p  = rand.Next(1, 1000);
                K7 = (p <= 500) ? "<500" :
                     (p > 500 && p <= 550) ? ">=500" :
                     (p > 550 && p <= 600) ? ">=конька_кровли_или_парапета" :
                     (p > 600 && p <= 650) ? "<=конька_кровли_или_парапета" :
                     (p > 650 && p <= 850) ?
                     ">=линии_проведенной_от_конька_вниз_под_углом_10":
                     "<=линии_проведенной_от_конька_вниз_под_углом_10";
                K8 = rand.Next(0, 10) > 5 ?
                     "Над_плоской_кровлей" :
                     "Над_коньком_кровли_или_парапетом";
                p  = rand.Next(1, 1000);
                K9 = p < 333 ? "<1.5" :
                     (p > 333 && p < 666) ? "1.5<=x<=3" : ">3";

                p   = rand.Next(1, 1000);
                K10 = p <= 250 ? "Из_трех_рядов_кирпичей" :
                      (p > 250 && p <= 500) ? "Из_двух_рядов_кирпичей" :
                      (p < 500 && p <= 750) ?
                      "Металлическая_с_теплоизолированным_перекрытием" :
                      "Металлическая_с_нетеплоизолированным_перекрытием";
                K11 = rand.Next(0, 10) > 5 ? "Защищен" : "Не_защищен";
                K12 = rand.Next(0, 10) > 5 ?
                      "С_периодической_топкой" :
                      "Длительного_горения";
                p   = rand.Next(1, 1000);
                K13 = (p <= 100) ? "250"  :
                      (p > 100 && p <= 200) ? "350"  :
                      (p > 200 && p <= 300) ? "375"  :
                      (p > 300 && p <= 400) ? "525"  :
                      (p > 400 && p <= 500) ? "700"  :
                      (p > 500 && p <= 600) ? "800"  :
                      (p > 600 && p <= 700) ? "1000" :
                      (p > 700 && p <= 800) ? "1050" :
                      (p > 800 && p <= 900) ? "1200" : "1500";
                #endregion

                #region Дымовая_труба
                p   = rand.Next(1, 1000);
                K14 = p <= 333 ? "140x140" :
                      (p > 333 && p <= 666) ?
                      "140x200" : "140x270";
                p   = rand.Next(1, 1000);
                K15 = p <= 250 ? "<3.5" :
                      (p > 250 && p <= 500) ? "3.5<=x<=5.2" :
                      (p < 500 && p <= 750) ? "5.2<=x<=7" : ">7";
                p   = rand.Next(1, 1000);
                K16 = p <= 250 ? "Глиняный_кирпич" :
                      (p > 250 && p <= 500) ? "Жаростойкий_бетон" :
                      (p < 500 && p <= 750) ?
                      "Хризотилоцементные_трубы" :
                      "Нержавеющая_сталь_заводской_готовности";
                p   = rand.Next(1, 1000);
                K17 = p <= 333 ? "60<=x<=120" :
                      (p > 333 && p <= 666) ?
                      ">=120" : "<60";
                K18 = rand.Next(1, 1000) < 300 ? "300" : "400";
                p   = rand.Next(1, 1000);
                K19 = p <= 333 ? "Кирпич" :
                      (p > 333 && p <= 666) ?
                      "Бетон" : "Керамика";
                K20 = rand.Next(1, 1000) <= 500 ? "Присутствует" : "Отсутствует";
                p   = rand.Next(1, 1000);
                K21 = p <= 333 ? "<130" :
                      (p > 333 && p <= 666) ?
                      "130<=x<=250" : ">=250";
                #endregion

                #region Защита_горючих_поверхностей
                p   = rand.Next(1, 1000);
                K22 = p <= 333 ? "Металлический_лист_размером_700х500_мм" :
                      (p > 333 && p <= 666) ?
                      "Листовая_сталь"
                        : "Штукатурка_толщиной_25_мм";
                p   = rand.Next(1, 1000);
                K23 = p <= 333 ? "Металлический_лист_размером_700х500_мм" :
                      (p > 333 && p <= 666) ?
                      "Штукатурка_толщиной_25_мм"
                        : "Листовая_сталь";
                p   = rand.Next(1, 1000);
                K24 = p <= 333 ? "По_асбестовому_картону_толщиной_8_мм" :
                      (p > 333 && p <= 666) ?
                      "По_асбестовому_картону_толщиной_10_мм" :
                      "По_металлической_сетке";
                p   = rand.Next(1, 1000);
                K25 = p <= 333 ? "Длинная_сторона_вдоль_печи" :
                      (p > 333 && p <= 666) ?
                      "От_пола_до_уровня_на_250мм_выше_верха_топочной_дверки"
                      : "В_пределах_горизонтальной_проекции_печи";
                #endregion

                #region Воздуховоды
                p   = rand.Next(1, 1000);
                K26 = p < 999 ? ">=3" : "<3";
                p   = rand.Next(1, 1000);
                K27 = (p <= 250) ? "B1" :
                      (p > 250 && p <= 500) ? "B2" :
                      (p > 500 && p <= 750) ? "B3" : "B4";
                p   = rand.Next(1, 1000);
                K28 = (p <= 400) ? "B1" :
                      (p > 400 && p <= 450) ? "B2" :
                      (p > 450 && p <= 500) ? "B3" :
                      (p > 500 && p <= 600) ? "B4" :
                      (p > 600 && p <= 650) ? "Отсутствует" : "Присутствует";
                p   = rand.Next(1, 1000);
                K29 = p < 800 ? "Присутствует" : "Отсутствует";
                p   = rand.Next(1, 1000);
                K30 = p < 800 ? "Присутствует" : "Отсутствует";
                p   = rand.Next(1, 1000);
                K31 = p < 800 ? "Присутствует" : "Отсутствует";
                p   = rand.Next(1, 1000);
                K32 = p < 800 ? "Присутствует" : "Отсутствует";
                p   = rand.Next(1, 1000);
                #endregion

                #region Электрика
                K33 = p < 800 ? "Алюминий" : "Медь";
                p   = rand.Next(1, 1000);
                if (K33.Equals("Алюминий"))
                {
                    K34 = (p <= 166) ? "<4" :
                          (p > 166 && p <= 332) ? "6" :
                          (p > 332 && p <= 498) ? "10" :
                          (p > 498 && p <= 664) ? "16-25" :
                          (p > 664 && p <= 830) ? "35-50" : "70";
                }
                else
                {
                    K34 = (p <= 166) ? "<2.5" :
                          (p > 166 && p <= 332) ? "-" :
                          (p > 332 && p <= 498) ? "4" :
                          (p > 498 && p <= 664) ? "6-10" :
                          (p > 664 && p <= 830) ? "16" : "25-35";
                }
                p = rand.Next(1, 1000);
                if (K34.Equals("<4"))
                {
                    K35 = (p <= 900) ? "Не_нормируется" :
                          (p > 910 && p <= 920) ? "2.5" :
                          (p > 920 && p <= 930) ? "2.8" :
                          (p > 930 && p <= 940) ? "3.2" :
                          (p > 940 && p <= 950) ? "3.5" : "4";
                }
                else if (K34.Equals("6"))
                {
                    K35 = (p <= 50) ? "Не_нормируется" :
                          (p > 50 && p <= 900) ? "2.5" :
                          (p > 900 && p <= 920) ? "2.8" :
                          (p > 920 && p <= 940) ? "3.2" :
                          (p > 940 && p <= 980) ? "3.5" : "4";
                }
                else if (K34.Equals("10"))
                {
                    K35 = (p <= 50) ? "Не_нормируется" :
                          (p > 50 && p <= 60) ? "2.5" :
                          (p > 60 && p <= 900) ? "2.8" :
                          (p > 900 && p <= 920) ? "3.2" :
                          (p > 920 && p <= 940) ? "3.5" : "4";
                }
                else if (K34.Equals("16-25"))
                {
                    K35 = (p <= 50) ? "Не_нормируется" :
                          (p > 50 && p <= 60) ? "2.5" :
                          (p > 60 && p <= 70) ? "2.8" :
                          (p > 70 && p <= 900) ? "3.2" :
                          (p > 900 && p <= 950) ? "3.5" : "4";
                }
                else if (K34.Equals("35-50"))
                {
                    K35 = (p <= 10) ? "Не_нормируется" :
                          (p > 10 && p <= 20) ? "2.5" :
                          (p > 30 && p <= 40) ? "2.8" :
                          (p > 40 && p <= 50) ? "3.2" :
                          (p > 50 && p <= 950) ? "3.5" : "4";
                }
                else // K34.Equals("70")
                {
                    K35 = (p <= 50) ? "Не_нормируется" :
                          (p > 60 && p <= 70) ? "2.5" :
                          (p > 70 && p <= 80) ? "2.8" :
                          (p > 80 && p <= 90) ? "3.2" :
                          (p > 90 && p <= 100) ? "3.5" : "4";
                }
                p   = rand.Next(1, 1000);
                K36 = p > 500 ? "<50мм" : ">50мм";
                p   = rand.Next(1, 1000);
                K37 = (p <= 333) ? "Изоляция_провода" :
                      (p > 333 && p <= 666) ?
                      "Прибор_нагревательный_отопительный" :
                      "Водонагревательный_прибор";
                p = rand.Next(1, 1000);
                if (K37.Equals("Изоляция_провода"))
                {
                    K38 = (p <= 900) ? "65" :
                          (p > 900 && p <= 950) ? "85" : "90";
                }
                else if (K37.Equals("Прибор_нагревательный_отопительный"))
                {
                    K38 = (p <= 50) ? "65" :
                          (p > 50 && p <= 950) ? "85" : "90";
                }
                else
                {
                    K38 = (p <= 50) ? "65" :
                          (p > 50 && p <= 100) ? "85" : "90";
                }
                p   = rand.Next(1, 1000);
                K39 = (p <= 111) ? "IP20" :
                      (p > 111 && p <= 222) ? "IP23" :
                      (p > 222 && p <= 333) ? "IP51" :
                      (p > 333 && p <= 444) ? "IP53" :
                      (p > 444 && p <= 555) ? "IP54" :
                      (p > 555 && p <= 666) ? "2.0" :
                      (p > 666 && p <= 777) ? "5.0" :
                      (p > 777 && p <= 888) ? "5.3" : "5.4";
                p   = rand.Next(1, 1000);
                K40 = (p <= 333) ? "ЛЛ" :
                      (p > 333 && p <= 666) ? "ЛН" : "ГЛВД";
                p   = rand.Next(1, 1000);
                K41 = (p <= 142) ? "Нормальные" :
                      (p > 142 && p <= 284) ? "Влажные" :
                      (p > 284 && p <= 426) ? "Сырые" :
                      (p > 426 && p <= 568) ? "Особо_сырые" :
                      (p > 568 && p <= 710) ? "Химически_активные" :
                      (p > 710 && p <= 852) ? "Пыльные" : "Жаркие";
                #endregion

                #region K1 - done Потолок из горючих материалов
                //k10 связан с K1
                //K12 - тип печи
                //K13 - расстояние_между_верхом_перекрытия_печи_и_потолком
                if (K1.Equals("Присутствует"))
                {
                    double res = w2[0] + w2[9] + w2[10] + w2[11] + w2[12];
                    if (!K11.Equals("Защищен"))
                    {
                        if (K10.Equals("Из_трех_рядов_кирпичей"))
                        {
                            if (K12.Equals("С_периодической_топкой"))
                            {
                                if (!K13.Equals("250"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                            else if (K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("700"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                        else if (K10.Equals("Из_двух_рядов_кирпичей"))
                        {
                            if (K12.Equals("С_периодической_топкой"))
                            {
                                if (!K13.Equals("375"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                            else if (K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("1050"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                        else if (K10.Equals("Металлическая_с_теплоизолированным_перекрытием"))
                        {
                            if (K12.Equals("С_периодической_топкой")
                                ||
                                K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("800"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (K10.Equals("Из_трех_рядов_кирпичей"))
                        {
                            if (K12.Equals("С_периодической_топкой"))
                            {
                                if (!K13.Equals("350"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                            else if (K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("1000"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                        else if (K10.Equals("Из_двух_рядов_кирпичей"))
                        {
                            if (K12.Equals("С_периодической_топкой"))
                            {
                                if (!K13.Equals("525"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                            else if (K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("1500"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                        else if (K10.Equals("Металлическая_с_нетеплоизолированным_перекрытием"))
                        {
                            if (K12.Equals("С_периодической_топкой")
                                ||
                                K12.Equals("Длительного_горения"))
                            {
                                if (!K13.Equals("1200"))
                                {
                                    answer = (res > 1.0) ? "Yes" : answer;
                                }
                            }
                        }
                    }
                }
                #endregion

                #region K2 - done Пол из горючих материалов
                if (K2.Equals("Присутствует"))
                {
                    double res = w2[1] + w2[21] + w2[23] + w2[24];
                    if (K22.Equals("Металлический_лист_размером_700х500_мм"))
                    {
                        if (K24.Equals("По_асбестовому_картону_толщиной_8_мм"))
                        {
                            if (!K25.Equals("Длинная_сторона_вдоль_печи"))
                            {
                                answer = (res > 1.0) ? "Yes" : answer;
                            }
                        }
                        else
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K22.Equals("Листовая_сталь"))
                    {
                        if (K24.Equals("По_асбестовому_картону_толщиной_10_мм"))
                        {
                            if (!K25.Equals("В_пределах_горизонтальной_проекции_печи"))
                            {
                                answer = (res > 1.0) ? "Yes" : answer;
                            }
                        }
                        else
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                #endregion

                #region K3 - done Стена из горючих материалов
                if (K3.Equals("Присутствует"))
                {
                    double res = w2[2] + w2[22] + w2[23] + w2[24];
                    if (K23.Equals("Металлический_лист_размером_700х500_мм"))
                    {
                        if (K24.Equals("По_асбестовому_картону_толщиной_8_мм"))
                        {
                            if (!K25.Equals("От_пола_до_уровня_на_250мм_выше_верха_топочной_дверки"))
                            {
                                answer = (res > 1.0) ? "Yes" : answer;
                            }
                        }
                        else
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K23.Equals("Штукатурка_толщиной_25_мм"))
                    {
                        if (K24.Equals("По_металлической_сетке"))
                        {
                            if (!K25.Equals("От_пола_до_уровня_на_250мм_выше_верха_топочной_дверки"))
                            {
                                answer = (res > 1.0) ? "Yes" : answer;
                            }
                        }
                        else
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                #endregion

                #region K4 - done Температура печи
                if (K4.Equals("110") ||
                    K4.Equals("120"))
                {
                    double res = w2[3] + w2[4] + w2[5];
                    if (K5.Equals(">15"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K4.Equals("140"))
                {
                    double res = w2[3] + w2[4] + w2[5];
                    if (!K6.Equals("Присутствует"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K7 - done Высота дымовых труб
                if (K7.Equals("<500"))
                {
                    double res = w2[6] + w2[7] + w2[8];
                    if (K8.Equals("Над_плоской_кровлей"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                    else if (K8.Equals("Над_коньком_кровли_или_парапетом"))
                    {
                        if (!K9.Equals("<1.5"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                else if (K7.Equals("<=конька_кровли_или_парапета"))
                {
                    double res = w2[6] + w2[8];
                    if (!K9.Equals("1.5<=x<=3"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }

                else if (K7.Equals("<=линии_проведенной_от_конька_вниз_под_углом_10"))
                {
                    double res = w2[6] + w2[8];
                    if (!K9.Equals(">3"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K15 Тепловая мощность
                if (K15.Equals("<3.5"))
                {
                    double res = w2[13] + w2[14];
                    if (!K14.Equals("140x140"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K15.Equals("5.2<=x<=7"))
                {
                    double res = w2[13] + w2[14];
                    if (!K14.Equals("140x200"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K15.Equals(">7"))
                {
                    double res = w2[13] + w2[14];
                    if (!K14.Equals("140x270"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K16 Материал дымовых труб
                if (K16.Equals("Глиняный_кирпич"))
                {
                    double res = w2[15] + w2[16];
                    if (!K17.Equals(">=120"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K16.Equals("Жаростойкий_бетон"))
                {
                    double res = w2[15] + w2[16];
                    if (!K17.Equals("60<=x<=120"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K16.Equals("Хризотилоцементные_трубы"))
                {
                    double res = w2[15] + w2[17];
                    if (!K18.Equals("300"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K16.Equals("Нержавеющая_сталь_заводской_готовности"))
                {
                    double res = w2[15] + w2[17];
                    if (!K18.Equals("400"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K19 Вид материала дымовой трубы
                if (K19.Equals("Кирпич")
                    ||
                    K19.Equals("Бетон"))
                {
                    double res = w2[18] + w2[20];
                    if (!K21.Equals("130<=x<=250")
                        ||
                        !K21.Equals(">=250"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K19.Equals("Керамика"))
                {
                    if (K20.Equals("Присутствует"))
                    {
                        if (!K21.Equals("130<=x<=250")
                            ||
                            !K21.Equals(">=250"))
                        {
                            double res = w2[18] + w2[19] + w2[20];
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K20.Equals("Отсутствует"))
                    {
                        if (!K21.Equals(">=250"))
                        {
                            double res = w2[19] + w2[20];
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                #endregion

                #region K26 Воздуховоды
                if (K26.Equals("<3"))
                {
                    if (!K29.Equals("Присутствует") &&
                        !K30.Equals("Присутствует") &&
                        !K31.Equals("Присутствует") &&
                        !K32.Equals("Присутствует"))
                    {
                        double res = w2[25] + w2[28] + w2[29] + w2[30] + w2[31];
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }

                if (K27.Equals("B1"))
                {
                    if (!K28.Equals("B1") &&
                        !K28.Equals("Присутствует"))
                    {
                        double res = w2[26] + w2[27];
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K27.Equals("B2"))
                {
                    if (!K28.Equals("B1") &&
                        !K28.Equals("B2") &&
                        !K28.Equals("Присутствует"))
                    {
                        double res = w2[26] + w2[27];
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K27.Equals("B3"))
                {
                    if (!K28.Equals("B1") &&
                        !K28.Equals("B2") &&
                        !K28.Equals("B3") &&
                        !K28.Equals("Присутствует"))
                    {
                        double res = w2[26] + w2[27];
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K27.Equals("B4"))
                {
                    if (!K28.Equals("B1") &&
                        !K28.Equals("B2") &&
                        !K28.Equals("B3") &&
                        !K28.Equals("B4") &&
                        !K28.Equals("Присутствует"))
                    {
                        double res = w2[26] + w2[27];
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K33 Материал проводки
                if (K33.Equals("Алюминий"))
                {
                    double res = w2[32] + w2[33] + w2[34];
                    if (K34.Equals("6"))
                    {
                        if (!K35.Equals("2.5"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("10"))
                    {
                        if (!K35.Equals("2.8"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("16-25"))
                    {
                        if (!K35.Equals("3.2"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("35-50"))
                    {
                        if (!K35.Equals("3.5"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("70"))
                    {
                        if (!K35.Equals("4.0"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                else //Медь
                {
                    double res = w2[32] + w2[33] + w2[34];
                    if (K34.Equals("6"))
                    {
                        if (!K35.Equals("-"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("4"))
                    {
                        if (!K35.Equals("2.8"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("6-10"))
                    {
                        if (!K35.Equals("3.2"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("16"))
                    {
                        if (!K35.Equals("3.5"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K34.Equals("25-35"))
                    {
                        if (!K35.Equals("4.0"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                #endregion

                #region 37 Наружная поверхность
                if (K37.Equals("Изоляция_провода"))
                {
                    double res = w2[36] + w2[37];
                    if (!K38.Equals("65"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K37.Equals("Прибор_нагревательный_отопительный"))
                {
                    double res = w2[36] + w2[37];
                    if (!K38.Equals("85"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                else if (K37.Equals("Водонагревательный_прибор"))
                {
                    double res = w2[36] + w2[37];
                    if (!K38.Equals("90"))
                    {
                        answer = (res > 1.0) ? "Yes" : answer;
                    }
                }
                #endregion

                #region K40 Степень защиты светильников
                if (K40.Equals("ЛЛ"))
                {
                    double res = w2[38] + w2[39] + w2[39];
                    if (K39.Equals("IP20"))
                    {
                        if (K41.Equals("Сырые"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                        else if (K41.Equals("Особо_сырые"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K39.Equals("IP23"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K39.Equals("IP54"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                        else if (K41.Equals("Влажные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K39.Equals("5.4"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                        else if (K41.Equals("Влажные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                else if (K40.Equals("ЛН") || K40.Equals("ГЛВД"))
                {
                    double res = w2[38] + w2[39] + w2[39];
                    if (K39.Equals("IP23"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K39.Equals("IP53"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                        else if (K41.Equals("Влажные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                    else if (K39.Equals("5.0") ||
                             K39.Equals("5.3") ||
                             K39.Equals("5.4"))
                    {
                        if (K41.Equals("Нормальные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                        else if (K41.Equals("Влажные"))
                        {
                            answer = (res > 1.0) ? "Yes" : answer;
                        }
                    }
                }
                #endregion

                #region data_Append
                data.Append(K1 + " "); data.Append(K2 + " ");
                data.Append(K3 + " "); data.Append(K4 + " ");
                data.Append(K5 + " "); data.Append(K6 + " ");
                data.Append(K7 + " "); data.Append(K8 + " ");
                data.Append(K9 + " "); data.Append(K10 + " ");
                data.Append(K11 + " "); data.Append(K12 + " ");
                data.Append(K13 + " "); data.Append(K14 + " ");
                data.Append(K15 + " "); data.Append(K16 + " ");
                data.Append(K17 + " "); data.Append(K18 + " ");
                data.Append(K19 + " "); data.Append(K20 + " ");
                data.Append(K21 + " "); data.Append(K22 + " ");
                data.Append(K23 + " "); data.Append(K24 + " ");
                data.Append(K25 + " "); data.Append(K26 + " ");
                data.Append(K27 + " "); data.Append(K28 + " ");
                data.Append(K29 + " "); data.Append(K30 + " ");
                data.Append(K31 + " "); data.Append(K32 + " ");
                data.Append(K33 + " "); data.Append(K34 + " ");
                data.Append(K35 + " "); data.Append(K36 + " ");
                data.Append(K37 + " "); data.Append(K38 + " ");
                data.Append(K39 + " "); data.Append(K40 + " ");
                data.Append(K41 + " "); data.Append(answer);

                if (i != (numberOfData - 1))
                {
                    data.Append("\r\n");
                }
                #endregion
            }

            return(data.ToString());
        }
Exemplo n.º 16
0
 public Key(K1 k1, K2 k2)
 {
     Key1 = k1;
     Key2 = k2;
 }
Exemplo n.º 17
0
 public Triple(K1 key1, K2 key2, T value)
 {
     this.Key1  = key1;
     this.Key2  = key2;
     this.Value = value;
 }
Exemplo n.º 18
0
            // алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                Model.Tracer.EventTrace(this, "VSP = " + Z.VSP);
                Model.T++;
                if (Z.VSP < Model.VT)
                {
                    Model.VT   -= Z.VSP;
                    Model.VPRT += Model.VT;
                }
                else
                {
                    Model.Q_LOST += Z.VSP - Model.VT;
                    Model.VT      = 0;
                }

                if (Model.VT < Model.ZTV)
                {
                    if (!Model.ZNP)
                    {
                        Model.ZNP    = true;
                        Model.Q_POP += 1;

                        Random rnd   = new Random();
                        double tempP = rnd.Next(0, 100) / 100.0;
                        double dt2   = 0;

                        if (tempP <= Model.P[0])
                        {
                            dt2 = Model.DAY[0];
                        }
                        else if (tempP > Model.P[0] && tempP <= Model.P[0] + Model.P[1])
                        {
                            dt2 = Model.DAY[1];
                        }
                        else if (tempP > Model.P[0] + Model.P[1] && tempP <= Model.P[0] + Model.P[1] + Model.P[2])
                        {
                            dt2 = Model.DAY[2];
                        }
                        else if (tempP > Model.P[0] + Model.P[1] + Model.P[2] && tempP <= Model.P[0] + Model.P[1] + Model.P[2] + Model.P[3])
                        {
                            dt2 = Model.DAY[3];
                        }
                        else
                        {
                            dt2 = Model.DAY[4];
                        }

                        Model.Tracer.AnyTrace("Пополнение через " + dt2 + " дней");

                        var ev2 = new K2();                                 // создание объекта события
                        Model.PlanEvent(ev2, dt2);                          // планирование события 3
                        Model.Tracer.PlanEventTrace(ev2);
                        Model.Tracer.AnyTrace("");
                        Model.TraceModel();
                        Model.Tracer.AnyTrace("");
                    }
                }

                var ev1 = new K1();                                 // создание объекта события

                Z.VSP = (int)Model.GenPurchase.GenerateValue();
                ev1.Z = Z;                                        // передача библиотекаря в событие
                double dt1 = 1.0;

                Model.PlanEvent(ev1, dt1);                          // планирование события 3
                Model.Tracer.PlanEventTrace(ev1);
                Model.Tracer.AnyTrace("");
                Model.TraceModel();
                Model.Tracer.AnyTrace("");
            }
Exemplo n.º 19
0
            // Алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                for (int i = 0; i < N; i++)
                {
                    if (i == 0)
                    {
                        Model.Shops[i].ProductDemandCurrent.Value = (int)Model.NormalGenerator_VDS1.GenerateValue();
                    }
                    if (i == 1)
                    {
                        Model.Shops[i].ProductDemandCurrent.Value = (int)Model.NormalGenerator_VDS2.GenerateValue();
                    }

                    // Если спрос превысил текущий объем товара в магазине
                    if (Model.Shops[i].ProductAmountCurrent.Value < Model.Shops[i].ProductDemandCurrent.Value)
                    {
                        // Неудовлетворенный спрос
                        Model.Shops[i].ProductUnmetDemandCurrent.Value = Math.Abs(Model.Shops[i].ProductDemandCurrent.Value - Model.Shops[i].ProductAmountCurrent.Value);
                    }
                    else
                    {
                        // Если спрос меньше текущего объема товара, то вычитаем из объема товара объем спроса
                        Model.Shops[i].ProductAmountCurrent.Value    -= Model.Shops[i].ProductDemandCurrent.Value;
                        Model.Shops[i].ProductUnrealizedCurrent.Value = Model.Shops[i].ProductAmountCurrent.Value;
                    }

                    if (Model.Shops[i].ProductAmountCurrent.Value < Model.TV && Model.Shops[i].HasSendRequest == 0)
                    {
                        double deltaTime = i == 0 ? Model.ZR_TV_ValueGenerator1.GenerateValue() : Model.ZR_TV_ValueGenerator2.GenerateValue();
                        var    k2Event   = new K2
                        {
                            ShopNumber  = i,
                            DayOfSupply = DayNumber
                        };
                        Model.Shops[i].HasSendRequest.Value = 1;
                        Model.Shops[i].RequestsTotalCountCurrent.Value++;
                        Model.Shops[i].RequestsTotalCountAll.Value++;
                        Model.PlanEvent(k2Event, DayNumber + deltaTime);

                        // Занесение в файл трассировки записи о запланированном событии
                        Model.Tracer.PlanEventTrace(k2Event,
                                                    DayNumber + deltaTime,
                                                    k2Event.ShopNumber);
                    }

                    Model.Shops[i].ProductDemandAll.Value      += Model.Shops[i].ProductDemandCurrent.Value;          // спроса на товар
                    Model.Shops[i].ProductUnmetDemandAll.Value += Model.Shops[i].ProductUnmetDemandCurrent.Value;     // неудовлетворенного спроса на товар
                    Model.Shops[i].ProductUnrealizedAll.Value  += Model.Shops[i].ProductUnrealizedCurrent.Value;      // пролежанного товара
                }

                //Планирование следующего события окончания рабочего дня; НО!!!!
                //если время кончилось, планируем событие 3
                Model.Day++;
                if (Model.Day <= M)
                {
                    var k1Event = new K1
                    {
                        DayNumber = Model.Day
                    };
                    Model.PlanEvent(k1Event,
                                    1);
                    Model.Tracer.PlanEventTrace(k1Event,
                                                k1Event.DayNumber,
                                                "VS[" + Model.Shops[0].ProductDemandCurrent.Value + "," + Model.Shops[1].ProductDemandCurrent.Value + "]");
                }
                if (Model.Day % 7 == 0) // == 1
                {
                    var k3Event = new K3 {
                        NumberOfWeek = Model.Day / 7
                    };
                    Model.PlanEvent(k3Event, 0);
                    // Занесение в файл трассировки записи о запланированном событии
                    Model.Tracer.PlanEventTrace(k3Event,
                                                Model.Day / 7,
                                                Model.SVSTP.Value,
                                                Model.SVST.Value);
                }
                Model.TraceModel(DayNumber);
            }
Exemplo n.º 20
0
 public BiKeyValue(K1 key1, K2 key2, T value)
 {
     this.Key1  = key1;
     this.Key2  = key2;
     this.Value = value;
 }