Please enable JavaScript.
Coggle requires JavaScript to display documents.
ValcomUnits(), Уставки обновляются в таблице несколькими запросами:
…
ValcomUnits()
CreateReceiveSocket()
Запускает StopWatch
Начинает асинхронное чтение UDP пакетов с PortUpdateBD в качестве колбэка выступает метод Read_CallBackBD, записывает в Buff2
-
LoadNsi
загружает NSI, если не получается загрузить данные из SQLite с помощью метода LoadBD прекращает дальнейшее выполнение конструктора
TimerProc(object state)
Метод callbacka таймера timerProc(200мс), может вызываться при получении сообщения(метод WndProc)
SetValues()
Перемещение всех значений(тип ValUnit) из очереди ToProcUnits в очередь tmp
Для каждого значения un в tmp: если сигнал с именем из ValUnit найден, то вызов ProcessValue(un,un.CurValue)
Отправка обработанных данных через Pipe
ProcessValue(ValUnit un, float val)Получение ValUnit ua по имени un.Name
(un - измененные юниты из ToProcUnits,
ua - юниты из AllUnits)Если источник сигнала "sync" проверка соответствия аварии (активна, подтверждено, заблокировано),
обновление значения, передача состояния аварии в список _alert.AlarmsЕсли текущее значение или временное значение у ua не равно val
(Какие-то фокусы с Alarmами, смотри код)
обновление значения
- Если источник "tu" и это уставка(содержит постфикс "_sLL","_sL","_sH","_sHH","_kRO","_sOf") добавление в очередь ToBDUnits
Дальнейшая обработка в зависимости от источника
timerCom(500ms).Elapsed
OnTimerCommon
После завершения асинхронного вызова LoadBdA, будет вызван метод FinishInit
-
-
LoadBdA.BeginInvoke
Асинхронная загрузка значений архивной БД с помощью метода SetArchValues
Вызов SetValues
SetArchValues
Добавляет в очередь ToProcUnits значения из Postgres таблицы SigCurrentValues
Добавляет в BlockUnits значения из BlockedAlarms
-
Уставки обновляются в таблице несколькими запросами:
-EditThres обновляет LoLo, Lo, Hi, HiHi, kRo, Offset
На этапе проектирования для уставок kRo и Offset автоматически создаются сигналы корректировки с постфиксами _sOf и _kRo, для остальных уставок по желанию проектировщика.
Для сигналов корректировки источником значения является значение соответствующего порога
При установке порогов автоматически создаются аварийные сигналы выхода за допустимые пороги c постфиксами _L, _H, _F
-EditMinMax обновляет MinValue, MaxValue, MeasureUnits
-EditLimitValues обновляет Description, Log, LogInterval, DelayOn, DelayOff.
-
-
Program.Main
Инициализация статических переменных SlaveOnly, MasterOnly, PanelNoConnectSec, TSBufSize
ValcomUnitForm
Чтение параметров из Program Defaults
TryLoadTLdll() - загрузка библиотеки TL.dll необходимо для работы с драйвером для старых панелей
Read_CallbackBD
Распаковывает датаграмму и информацию из нее, если обновление BD, то распаковка с помощью SignalUpdate.FromBin(buf) и добавление в очередь ToUpdateUnits
Дополнительные действия в зависимости от типа сообщения
Новый запуск асинхронного чтения
Уведомление MbDriver и VLogical через Pipe
ValUnit:
- strVal - источник.TODO: СДЕЛАТЬ ПЕРЕЧИСЛЕНИЕМ!!!!!!! Значения:
"tu" - команды
"sync"-синхронизация с другим сервером
"me" - мой сервер?
"drv"-драйвер
"tl"-ТЛ
"common" -???
- bDrvInited - ???
- PrevValue - предыдущее значение
- CurValue - текущее значение
- PrevTime - время предпоследнего обновления
- LastTime - время последнего обновления
- PrevAlarmValue - значение предыдущей аварии
- AlarmValue - значение текущей аварии
- bNeedGridUpdate - ???
-bDrvInited - ???
Жизненный цикл данных по изменению уставокЕсть два способа поменять уставки:
- при помощи окна информация о сигналах
- при помощи команд (в теории)
-
-
-
-
-