コード例 #1
0
        /// <summary>
        /// Funkcja wywoływana przy generowaniu strony
        /// </summary>
        public void OnGet()
        {
            try
            {
                AsixRestClient asixRestClient = new AsixRestClient();

                // Odczyt z serwera REST nazw wszystkich atrybutów
                ServerAttributes serverAttributes = asixRestClient.ReadAttributeNames();
                if (!serverAttributes.readSucceeded)
                {
                    mReadError = serverAttributes.readStatusString;
                    return;
                }

                mAttributeNames = serverAttributes.mAttributeNameList;



                // Odczyt z serwera REST wartości atrybutów atrybutów zmiennej
                VariableAttributes variableAttributes = asixRestClient.ReadVariableAttributes(mVariableName, mAttributeNames);
                if (!variableAttributes.readSucceeded)
                {
                    mReadError = variableAttributes.readStatusString;
                    return;
                }

                mVariableAttributes = variableAttributes.mAttributeValueList;
            }
            catch (Exception e)
            {
                mReadError = e.Message;
            }
        }
コード例 #2
0
        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 = "?";
            }
        }
コード例 #3
0
        void ReadData()
        {
            AsixRestClient asixRestClient = new AsixRestClient();
            string         periodStartOpc = DateReadTime.ToString("o"); // format ISO, też obsługiwany przez REST server

            mVariableRawArchiveA000 = asixRestClient.ReadVariableRawArchive("A000", periodStartOpc, "1H");
        }
コード例 #4
0
        /// <summary>
        /// Funkcja realizująca odczyt stanu alarmów
        /// </summary>
        void ReadAlarmValue()
        {
            AsixRestClient asixRestClient = new AsixRestClient();

            foreach (var alarmModel in mAlarmModelList)
            {
                alarmModel.mAlarmState = asixRestClient.ReadAlarmState(alarmModel.mDomain, alarmModel.mName);
            }
        }
コード例 #5
0
        // Odczyt danych agregowanych
        void ReadData()
        {
            AsixRestClient asixRestClient = new AsixRestClient();

            string periodStartOpc = DateReadTime.Date.ToString("o");   // format ISO, też obsługiwany

            mVariableAggregateArchiveA000 = asixRestClient.ReadVariableAggregateArchive("A000", "Average", periodStartOpc, "1D", "1H");
            mVariableAggregateArchiveA004 = asixRestClient.ReadVariableAggregateArchive("A004", "Average", periodStartOpc, "1D", "1H");
        }
コード例 #6
0
        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;
            }
        }
コード例 #7
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;
            }
        }
コード例 #8
0
        /// <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;
            }
        }
コード例 #9
0
        /// <summary>
        /// Funkcja wywoływana przy generowaniu strony
        /// </summary>
        public void OnGet()
        {
            try
            {
                AsixRestClient     asixRestClient     = new AsixRestClient();
                VariableAttributes variableAttributes = asixRestClient.ReadVariableAttributes(mVariableName, mAttributeNameList);

                if (variableAttributes.readSucceeded)
                {
                    mVariableAttributes = variableAttributes.mAttributeValueList;
                }
                else
                {
                    mReadError = variableAttributes.readStatusString;
                }
            }
            catch (Exception e)
            {
                mReadError = e.Message;
            }
        }
コード例 #10
0
        // Odczyt z archiwum alarmów
        void ReadData()
        {
            AsixRestClient asixRestClient = new AsixRestClient();

            mHistAlarmArchive = asixRestClient.ReadHistAlarmArchive("Fabryka_EVO", DateReadTime, TimeSpan.Parse(PeriodLength));
        }