void ReadVariableValue()
        {
            AsixRestClient asixRestClient = new AsixRestClient();

            // Odczyt wartości zmiennej
            VariableState variableState = asixRestClient.ReadVariableState("A110");


            // Sprawdzenie czy nie wystąpił błąd odczytu
            if (!variableState.readSucceeded)
            {
                mReadError = variableState.readStatusString;
                return;
            }


            // Formatowanie wartości zmiennej
            if (variableState.IsQualityGood())
            {
                // Formatowanie wartości o jakości dobrej
                double value = (double)variableState.value;
                mValueFormatted = value.ToString("F0");
            }
            else if (variableState.IsQualityUncertain())
            {
                // Formatowanie wartości o jakości niepewnej
                double value = (double)variableState.value;
                mValueFormatted = value.ToString("F0") + "?";
            }
            else
            {
                // Dla wartości o jakości złej wyświetlimy pytajnik
                mValueFormatted = "?";
            }
        }
        void ReadVariableValue(VariableModel aVariableModel)
        {
            try
            {
                AsixRestClient asixRestClient = new AsixRestClient();
                VariableState  variableState  = asixRestClient.ReadVariableState(aVariableModel.mName);

                if (!variableState.readSucceeded)
                {
                    aVariableModel.mReadError = variableState.readStatusString;
                    return;
                }


                aVariableModel.mDateTime = variableState.timeStamp;

                switch (variableState.quality & 0xC0)
                {
                case 0xC0:
                {
                    double value = (double)variableState.value;
                    aVariableModel.mValueFormatted = value.ToString("F0");
                    break;
                }

                case 0x40:
                {
                    double value = (double)variableState.value;
                    aVariableModel.mValueFormatted = value.ToString("F0") + "?";
                    break;
                }

                default:
                {
                    aVariableModel.mValueFormatted = "?";
                    break;
                }
                }
            }
            catch (Exception e)
            {
                aVariableModel.mReadError = e.Message;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Odczyt wartości bieżącej i średniej jednej zmiennej
        /// </summary>
        /// <param name="aVariableModel">Model zmiennej. Jego pole mName zawiera nazwę zmiennej.</param>
        void ReadVariableValue(Demo3VariableModel aVariableModel)
        {
            try
            {
                AsixRestClient asixRestClient = new AsixRestClient();

                // Odczyt wartości zmiennej z serwera REST
                VariableState variableState = asixRestClient.ReadVariableState(aVariableModel.mName);
                if (!variableState.readSucceeded)
                {
                    aVariableModel.mReadError = variableState.readStatusString;
                    return;
                }


                // wypracowanie przez klasę modelu informacji o jakości zmiennej
                aVariableModel.SetValueQuality(variableState.quality);

                if (aVariableModel.mValueQuality == ValueQuality.Bad)
                {
                    return;
                }


                // wypracowanie przez klasę modelu informacji o wartości zmiennej i limitach
                aVariableModel.SetFormatedValueAndValueLimit(variableState.value);


                // Odczyt średniej wartości zmiennej z serwera REST
                VariableState variableAverage = asixRestClient.ReadVariableAggregate(aVariableModel.mName, "Average", "15m");
                if (!variableAverage.readSucceeded || variableAverage.IsQualityBad())
                {
                    return;
                }


                // wypracowanie przez klasę modelu informacji o trendzie zmian wartości zmiennej
                aVariableModel.SetValueTrend(variableState.value, variableAverage.value);
            }
            catch (Exception e)
            {
                aVariableModel.mReadError = e.Message;
            }
        }
        /// <summary>
        /// Odczyt wartości jednej zmiennej
        /// </summary>
        /// <param name="aVariableModel">Model zmiennej. Jego pole mName zawiera nazwe zmiennej.</param>
        void ReadVariableValue(Demo2VariableModel aVariableModel)
        {
            try
            {
                AsixRestClient asixRestClient = new AsixRestClient();

                // Odczyt wartości zmiennej z serwera REST
                VariableState variableState = asixRestClient.ReadVariableState(aVariableModel.mName);


                // Obsług błędu odczytu
                if (!variableState.readSucceeded)
                {
                    aVariableModel.mReadError = variableState.readStatusString;
                    return;
                }


                // Formatowanie wartości zmiennej
                if (variableState.IsQualityGood())
                {
                    // Formatowanie wartości o jakości dobrej
                    double value = (double)variableState.value;
                    aVariableModel.mValueFormatted = value.ToString("F0");
                }
                else if (variableState.IsQualityUncertain())
                {
                    // Formatowanie wartości o jakości niepewnej
                    double value = (double)variableState.value;
                    aVariableModel.mValueFormatted = value.ToString("F0") + "?";
                }
                else
                {
                    // Dla wartości o jakości złej wyświetlimy pytajnik
                    aVariableModel.mValueFormatted = "?";
                }
            }
            catch (Exception e)
            {
                aVariableModel.mReadError = e.Message;
            }
        }