예제 #1
0
 /// <summary>
 /// Очищает буфер от ложных данных 
 /// </summary>
 public static void ClearPortBuffer(ModulNevod modulNevod)
 {
     if (comPort == null) return;
     if (!comPort.IsOpen) return;
     if (comPort.BytesToRead > 0)
     {
         byte[] buffer = new byte[254];
         comPort.Read(buffer, 0, buffer.Length);
         Loger.SendMsg((int)MessagerId.Log, (int)MessagerId.TcpServer,
                 "Очистка буфера...");
         // Увеличиваем счетчик ложных пакетов модуля
         modulNevod.WrongPackets++;
         // Увеличиваем счетчик ложных пакетов всех модулей
         WrongPackets++;
     }
     else
     {
         // Увеличиваем счетчик потерянных пкетов модуля
         modulNevod.LastPackets++;
         // Увеличиваем счетчик потерянных пкетов всех модулей
         LastPackets++;
     }
 }
예제 #2
0
        /// <summary>
        /// Обновить значения переменных модуля
        /// </summary>
        /// <param name="modul">Ссылка на модуль</param>
        /// <returns>Сообщает удалось ли обновить данные</returns>
        public static bool RefreshData(ModulNevod modul)
        {
            string result = modul.AllVariablesRefresh();
            if (result == null)
            {
                return true;
            }
            else
            {
                Loger.SendMsg((int)MessagerId.Log, (int)MessagerId.DataServer,
                    result);
                // Заканчиваем работу, если была подана команда
                // о завершении работы DataServer.
                if (!Running) return false;

                // Пытаемся получить данные во второй раз
                Loger.SendMsg((int)MessagerId.Log, (int)MessagerId.DataServer,
                    "КП-" + Convert.ToString(modul.dgKpNum) + " повторный запрос...");
                result = modul.AllVariablesRefresh();

                // Если данные пришли отпраить их "подписчикам"
                if (result == null)
                {
                    return true;
                }
                else
                {
                    Loger.SendMsg((int)MessagerId.Log, (int)MessagerId.DataServer,
                        result);
                }
            }

            return false;
        }
예제 #3
0
        /// <summary>
        /// Обновляет значения переменных в таблице  
        /// </summary>
        /// <param name="modul"></param>
        void RefreshTable(ModulNevod modul)
        {
            // (начало) Дискретные входы
            // 1
            if (modul.DgIn1) dIn1.BackColor = Color.White;
            else dIn1.BackColor = Color.Black;
            // 2
            if (modul.DgIn2) dIn2.BackColor = Color.White;
            else dIn2.BackColor = Color.Black;
            // 3
            if (modul.DgIn3) dIn3.BackColor = Color.White;
            else dIn3.BackColor = Color.Black;
            // 4
            if (modul.DgIn4) dIn4.BackColor = Color.White;
            else dIn4.BackColor = Color.Black;
            // 5
            if (modul.DgIn5) dIn5.BackColor = Color.White;
            else dIn5.BackColor = Color.Black;
            // 6
            if (modul.DgIn6) dIn6.BackColor = Color.White;
            else dIn6.BackColor = Color.Black;
            // 7
            if (modul.DgIn7) dIn7.BackColor = Color.White;
            else dIn7.BackColor = Color.Black;
            // 8
            if (modul.DgIn8) dIn8.BackColor = Color.White;
            else dIn8.BackColor = Color.Black;
            // (конец) Дискретные входы

            // (начало) Дискретный выход
            // 1
            if (modul.DgOut1) dOut1.BackColor = Color.White;
            else dOut1.BackColor = Color.Black;
            // 2
            if (modul.DgOut2) dOut2.BackColor = Color.White;
            else dOut2.BackColor = Color.Black;
            // 3
            if (modul.DgOut3) dOut3.BackColor = Color.White;
            else dOut3.BackColor = Color.Black;
            // 4
            if (modul.DgOut4) dOut4.BackColor = Color.White;
            else dOut4.BackColor = Color.Black;
            // 5
            if (modul.DgOut5) dOut5.BackColor = Color.White;
            else dOut5.BackColor = Color.Black;
            // 6
            if (modul.DgOut6) dOut6.BackColor = Color.White;
            else dOut6.BackColor = Color.Black;
            // 7
            if (modul.DgOut7) dOut7.BackColor = Color.White;
            else dOut7.BackColor = Color.Black;
            // 8
            if (modul.DgOut8) dOut8.BackColor = Color.White;
            else dOut8.BackColor = Color.Black;
            // (конец) Дискретный выход

            // (начало) Аналоговый вход
            // 1
            aIn1.Text = ConvertValue(modul.AnIn1);
            // 2
            aIn2.Text = ConvertValue(modul.AnIn2);
            // 3
            aIn3.Text = ConvertValue(modul.AnIn3);
            // 4
            aIn4.Text = ConvertValue(modul.AnIn4);
            // 5
            aIn5.Text = ConvertValue(modul.Temperature);
            // (конец) Аналоговый вход
        }