Beispiel #1
0
        /// <summary>
        /// Вычисляет текущее значение параметра Объем бурового раствора в емкостях (суммарный)
        /// </summary>
        /// <param name="vX">Объем бурового раствора в емкости Х</param>
        public void Calculate(P0009 v1, P09_1 v2, P09_2 v3, P09_3 v4, P09_4 v5, P09_5 v6, P09_6 v7,
                              P09_7 v8, P09_8 v9, P09_9 v10, P9_10 v11, P9_11 v12, P9_12 v13, P9_13 v14)
        {
            if (slim.TryEnterWriteLock(300))
            {
                try
                {
                    Boolean[] tanks = Tanks;
                    if (tanks != null)
                    {
                        float v = 0;

                        float[] vals = { v1.Value, v2.Value, v3.Value,  v4.Value,  v5.Value,  v6.Value,  v7.Value,
                                         v8.Value, v9.Value, v10.Value, v11.Value, v12.Value, v13.Value, v14.Value };
                        if (vals != null)
                        {
                            if (vals.Length == tanks.Length)
                            {
                                for (int index = 0; index < tanks.Length; index++)
                                {
                                    if (tanks[index])
                                    {
                                        if (!float.IsNaN(vals[index]))
                                        {
                                            v += vals[index];
                                        }
                                        else
                                        {
                                            //v = vals[index];
                                            //return;
                                        }
                                    }
                                }
                            }

                            _value = v;
                        }
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Вычисляет текущее значение параметра Объем бурового раствора в емкостях (суммарный)
        /// </summary>
        /// <param name="vX">Объем бурового раствора в емкости Х</param>
        public void Calculate(P0009 v1, P09_1 v2, P09_2 v3, P09_3 v4, P09_4 v5, P09_5 v6, P09_6 v7,
                                      P09_7 v8, P09_8 v9, P09_9 v10, P9_10 v11, P9_11 v12, P9_12 v13, P9_13 v14)
        {
            if (slim.TryEnterWriteLock(300))
            {
                try
                {
                    Boolean[] tanks = Tanks;
                    if (tanks != null)
                    {
                        float v = 0;

                        float[] vals = { v1.Value, v2.Value, v3.Value, v4.Value, v5.Value, v6.Value, v7.Value,
                                           v8.Value, v9.Value, v10.Value, v11.Value, v12.Value, v13.Value, v14.Value };
                        if (vals != null)
                        {
                            if (vals.Length == tanks.Length)
                            {
                                for (int index = 0; index < tanks.Length; index++)
                                {
                                    if (tanks[index])
                                    {
                                        if (!float.IsNaN(vals[index]))
                                        {
                                            v += vals[index];
                                        }
                                        else
                                        {
                                            //v = vals[index];
                                            //return;
                                        }
                                    }
                                }
                            }

                            _value = v;
                        }
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }