/// <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++; } }
/// <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; }
/// <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); // (конец) Аналоговый вход }