Beispiel #1
0
            // алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                Model.KPA -= Model.KOP;
                Model.Tracer.EventTrace(this, "KPA = " + Model.KPA);

                if (Model.VQ.Count != 0)
                {
                    Model.SA = 2;
                    Model.VQ.RemoveAt(0);
                    Model.iPassOut++;
                    Model.times[Model.iPassOut] = Time - Model.times[Model.iPassOut];

                    Model.KPA      += 1;
                    Model.LQ.Value -= 1;
                    double dt4 = Model.GenPassIn.GenerateValue();
                    var    ev4 = new K4();                              // создание объекта события
                    Model.PlanEvent(ev4, dt4);                          // планирование события 3
                    Model.Tracer.PlanEventTrace(ev4);
                }
                else
                {
                    Model.SA = 0;
                }

                Model.Tracer.AnyTrace("");
                Model.TraceModel();
                Model.Tracer.AnyTrace("");
            }
Beispiel #2
0
 private void trackK4_MouseUp(object sender, MouseEventArgs e)
 {
     if (K4 != trackK4.Value)
     {
         K4 = trackK4.Value;
         string str = K4.ToString();
         textK4.Text = str;
         koshiClient.uartWrite("#d" + str + "$");
     }
 }
Beispiel #3
0
 private void trackK4_MouseUp(object sender, MouseEventArgs e)
 {
     if (K4 != trackK4.Value)
     {
         K4 = trackK4.Value;
         string str = K4.ToString();
         textK4.Text = str;
         gpduinoClient.send("#d" + str + "$");
     }
 }
Beispiel #4
0
            // алгоритм обработки события
            protected override void HandleEvent(ModelEventArgs args)
            {
                Model.Tracer.EventTrace(this);

                if (Model.VQ.Count.Value != 0)
                {
                    if (Model.B - Model.KPA > 0)
                    {
                        Model.SA = 2;
                        Model.VQ.RemoveAt(0);
                        Model.iPassOut++;
                        Model.times[Model.iPassOut] = Time - Model.times[Model.iPassOut];
                        Model.LQ.Value -= 1;
                        Model.KPA      += 1;
                        double dt4 = Model.GenPassIn.GenerateValue();
                        var    ev4 = new K4();                                                      // создание объекта события
                        Model.PlanEvent(ev4, dt4);                                                  // планирование события 3
                        Model.Tracer.PlanEventTrace(ev4);
                    }
                    else
                    {
                        Model.SA = 0;
                        if (Model.NVAR == 2)
                        {
                            while (Model.times.Count != Model.iPassOut)
                            {
                                Model.iPassOut++;
                                Model.times[Model.iPassOut] = Time - Model.times[Model.iPassOut];
                            }
                            Model.KNP += Model.VQ.Count;
                            Model.VQ.Clear();
                        }
                    }
                }
                else
                {
                    Model.SA = 0;
                }

                Model.Tracer.AnyTrace("");
                Model.TraceModel();
                Model.Tracer.AnyTrace("");
            }
Beispiel #5
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;
            }
        }
Beispiel #6
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;
        }
Beispiel #7
0
        static public string K4(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>();

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

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

                        try
                        {
                            if (K4DataManipulation.IsConditionExist(izor.Id, il, idContractFranchise, idCompanyMiddleman))
                            {
                                var newRowK4 = new K4()
                                {
                                    IdInsuranceZoneOfReg = izor.Id,
                                    IsLegalEntity        = il,
                                    IdContractFranchise  = idContractFranchise,
                                    Value = 0,
                                    IdCompanyMiddleman = idCompanyMiddleman,
                                };

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

            responseToClient.responseType = ResponseType.Good;
            responseToClient.responseText = "Генерація даних пройшла успішно.";
            return(js.Serialize(responseToClient));
        }
Beispiel #8
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;
        }
    }
Beispiel #9
0
        private void CheckHealthB_Click(object sender, EventArgs e) // определения состояния здоровья
        {
            vozrast_temp     = Convert.ToInt32(textBox1.Text);      // переменная возраста
            heartbeat_temp   = Convert.ToDouble(textBox3.Text);     // переменная биения сердца в нормальном режиме
            heartbeat_f_temp = Convert.ToDouble(textBox4.Text);


            //подключение к бд
            ConnectionString = @"Data Source = C:\Users\HomePC\Documents\Visual Studio 2015\Projects\DilplomChildDB\DilplomChildDB\bin\Debug\child_db.db; Version = 3 ";
            using (SQLiteConnection con = new SQLiteConnection(ConnectionString))
            {
                SQLiteCommand command = new SQLiteCommand("SELECT Id, Vozrast, Nagruzka FROM Age where [Vozrast] = " + vozrast_temp, con);
                con.Open();

                //поиск возраста
                SQLiteDataReader reader = command.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        label16.Text = reader["Nagruzka"].ToString();
                        age_temp     = Convert.ToInt32(reader["Vozrast"]);
                    }
                }
                else
                {
                    label16.Text = "No rows found.";
                }


                ////////////// поиск переменной К1. Поиск идёт через сравнение возрастапеременной возраста
                if (age_temp >= 3 && age_temp <= 5)
                {
                    SQLiteCommand command_02 = new SQLiteCommand("SELECT Id, start, end, K_n_3_5 FROM Age_n_3_5 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                    command_02.Parameters.AddWithValue("@heartbeat", heartbeat_temp);

                    SQLiteDataReader reader_02 = command_02.ExecuteReader();
                    if (reader_02.HasRows)
                    {
                        while (reader_02.Read())
                        {
                            label17.Text = reader_02["K_n_3_5"].ToString();
                            K1           = Convert.ToDouble(label17.Text);
                        }
                    }
                    else
                    {
                        label17.Text = "No rows found.";
                    }
                }
                else
                {
                    if (age_temp >= 6 && age_temp <= 8)
                    {
                        SQLiteCommand command_03 = new SQLiteCommand("SELECT Id, start, end, K_n_6_8 FROM Age_n_6_8 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                        command_03.Parameters.AddWithValue("@heartbeat", heartbeat_temp);

                        SQLiteDataReader reader_03 = command_03.ExecuteReader();
                        if (reader_03.HasRows)
                        {
                            while (reader_03.Read())
                            {
                                label18.Text = reader_03["K_n_6_8"].ToString();
                                K1           = Convert.ToDouble(label18.Text);
                            }
                        }
                        else
                        {
                            label18.Text = "No rows found.";
                        }
                    }
                    else
                    {
                        if (age_temp >= 9 && age_temp <= 11)
                        {
                            SQLiteCommand command_04 = new SQLiteCommand("SELECT Id, start, end, K_n_9_11 FROM Age_n_9_11 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                            command_04.Parameters.AddWithValue("@heartbeat", heartbeat_temp);

                            SQLiteDataReader reader_04 = command_04.ExecuteReader();
                            if (reader_04.HasRows)
                            {
                                while (reader_04.Read())
                                {
                                    label19.Text = reader_04["K_n_9_11"].ToString();
                                    K1           = Convert.ToDouble(label19.Text);
                                }
                            }
                            else
                            {
                                label19.Text = "No rows found.";
                            }
                        }
                        else
                        {
                            if (age_temp >= 12)
                            {
                                SQLiteCommand command_05 = new SQLiteCommand("SELECT Id, start, end, K_n_12_18 FROM Age_n_12_18 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                                command_05.Parameters.AddWithValue("@heartbeat", heartbeat_temp);

                                SQLiteDataReader reader_05 = command_05.ExecuteReader();
                                if (reader_05.HasRows)
                                {
                                    while (reader_05.Read())
                                    {
                                        label20.Text = reader_05["K_n_12_18"].ToString();
                                        K1           = Convert.ToDouble(label20.Text);
                                    }
                                }
                                else
                                {
                                    label20.Text = "No rows found.";
                                }
                            }
                            else
                            {
                                if (age_temp < 3)
                                {
                                    MessageBox.Show("Возраст не должен быть меньше 3 лет!");
                                }
                                else
                                {
                                    return;
                                }
                            }
                        }
                    }
                }
                ///////////////////////////////////поиск переменной К2


                if (age_temp >= 3 && age_temp <= 5)
                {
                    SQLiteCommand command_06 = new SQLiteCommand("SELECT Id, start, end, K_t_3_5 FROM Age_t_3_5 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                    command_06.Parameters.AddWithValue("@heartbeat", heartbeat_f_temp);

                    SQLiteDataReader reader_06 = command_06.ExecuteReader();
                    if (reader_06.HasRows)
                    {
                        while (reader_06.Read())
                        {
                            label21.Text = reader_06["K_t_3_5"].ToString();
                            K2           = Convert.ToDouble(label21.Text);
                        }
                    }
                    else
                    {
                        label21.Text = "No rows found.";
                    }
                }
                else
                {
                    if (age_temp >= 6 && age_temp <= 8)
                    {
                        SQLiteCommand command_07 = new SQLiteCommand("SELECT Id, start, end, K_t_6_8 FROM Age_t_6_8 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                        command_07.Parameters.AddWithValue("@heartbeat", heartbeat_f_temp);

                        SQLiteDataReader reader_07 = command_07.ExecuteReader();
                        if (reader_07.HasRows)
                        {
                            while (reader_07.Read())
                            {
                                label22.Text = reader_07["K_t_6_8"].ToString();
                                K2           = Convert.ToDouble(label22.Text);
                            }
                        }
                        else
                        {
                            label22.Text = "No rows found.";
                        }
                    }
                    else
                    {
                        if (age_temp >= 9 && age_temp <= 11)
                        {
                            SQLiteCommand command_08 = new SQLiteCommand("SELECT Id, start, end, K_t_9_11 FROM Age_t_9_11 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                            command_08.Parameters.AddWithValue("@heartbeat", heartbeat_f_temp);

                            SQLiteDataReader reader_08 = command_08.ExecuteReader();
                            if (reader_08.HasRows)
                            {
                                while (reader_08.Read())
                                {
                                    label23.Text = reader_08["K_t_9_11"].ToString();
                                    K2           = Convert.ToDouble(label23.Text);
                                }
                            }
                            else
                            {
                                label23.Text = "No rows found.";
                            }
                        }
                        else
                        {
                            if (age_temp >= 12)
                            {
                                SQLiteCommand command_09 = new SQLiteCommand("SELECT Id, start, end, K_t_12_18 FROM Age_t_12_18 where (start <= @heartbeat) and (end >= @heartbeat)", con);
                                command_09.Parameters.AddWithValue("@heartbeat", heartbeat_f_temp);

                                SQLiteDataReader reader_09 = command_09.ExecuteReader();
                                if (reader_09.HasRows)
                                {
                                    while (reader_09.Read())
                                    {
                                        label24.Text = reader_09["K_t_12_18"].ToString();
                                        K2           = Convert.ToDouble(label24.Text);
                                    }
                                }
                                else
                                {
                                    label24.Text = "No rows found.";
                                }
                            }
                            else
                            {
                                if (age_temp < 3)
                                {
                                    MessageBox.Show("Возраст не должен быть меньше 3 лет!");
                                }
                                else
                                {
                                    return;
                                }
                            }
                        }
                    }
                }
                ///////////////////////////////////////////////////////


                ///////////////// выбор травмы
                k_travma_s = listBox1.SelectedItem.ToString();

                SQLiteCommand command_10 = new SQLiteCommand("SELECT Id, Travma, K_travma FROM Injury where Travma = @k_travma_s", con);
                command_10.Parameters.AddWithValue("@k_travma_s", k_travma_s);

                SQLiteDataReader reader_10 = command_10.ExecuteReader();
                if (reader_10.HasRows)
                {
                    while (reader_10.Read())
                    {
                        label25.Text = reader_10["K_travma"].ToString();
                        K3           = Convert.ToDouble(label25.Text);
                    }
                }
                else
                {
                    label25.Text = "No rows found.";
                }
                ///////////////////////

                K4           = ((K1 + K2 + K3) / 3); // переменная K4
                K4           = Math.Round(K4, 1);    // округление до одной переменной после запятой
                label26.Text = K4.ToString();
                ///////////////////////////


                SQLiteCommand command_11 = new SQLiteCommand("SELECT Id, K4_start, K4_end, UserText FROM Health where (K4_start <= @k4) and (K4_end >= @k4)", con);
                command_11.Parameters.AddWithValue("@k4", K4);

                SQLiteDataReader reader_11 = command_11.ExecuteReader();
                if (reader_11.HasRows)
                {
                    while (reader_11.Read())
                    {
                        label8.Text = reader_11["UserText"].ToString();
                    }
                }
                else
                {
                    label8.Text = "bug.";
                }
            }
        }
Beispiel #10
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());
        }
Beispiel #11
0
 public static void Insert(K4 newRecord)
 {
     db.K4.Add(newRecord);
     db.SaveChanges();
 }