V1.0.0.7 - 2025/12/22
* Database improved all
This commit is contained in:
@@ -76,9 +76,8 @@ namespace LFP_Manager.Threads
|
||||
// DB 경로 준비 (예외는 루프에서 잡히지만 시작 시도 전 준비)
|
||||
try
|
||||
{
|
||||
csDbUtils.DbCreateLOG(Config);
|
||||
string modelname = csConstData.UART_MODEL[Config.UartModelIndex];
|
||||
csDbUtils.LogDbCreate(modelname);
|
||||
DbCreate(modelname, DateTime.Now);
|
||||
|
||||
// 최초 활성 진입
|
||||
if (Active)
|
||||
@@ -155,12 +154,11 @@ namespace LFP_Manager.Threads
|
||||
int periodSec = Math.Max(1, Config.DbLogPeriod); // 0 방지
|
||||
string modelName = csConstData.UART_MODEL[Config.UartModelIndex];
|
||||
|
||||
// 마지막 기록 시각 (UTC 권장; 로컬도 무방하지만 일관성 위해 UTC 사용)
|
||||
DateTime lastLogUtc = DateTime.UtcNow;
|
||||
int lastLoggedSecond = -1; // ★ 마지막으로 저장한 "초"
|
||||
|
||||
try
|
||||
{
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(Config, DateTime.Now, "");
|
||||
RaiseOnUpdateAlarmHistory(CurrAlarmHistory); // UI 마샬링 버전
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -175,9 +173,11 @@ namespace LFP_Manager.Threads
|
||||
DateTime nowLocal = DateTime.Now;
|
||||
DateTime nowUtc = DateTime.UtcNow;
|
||||
|
||||
int sec = nowUtc.Second;
|
||||
|
||||
// “초 변경” + “주기 정합” 검사
|
||||
// ★ 경과 시간 기반 주기 체크 (초 단위 주기 모두 정확)
|
||||
if ((nowUtc - lastLogUtc).TotalSeconds >= periodSec)
|
||||
if ((sec % periodSec) == 0 && sec != lastLoggedSecond)
|
||||
{
|
||||
// Database Log Process
|
||||
try
|
||||
@@ -202,21 +202,20 @@ namespace LFP_Manager.Threads
|
||||
finally
|
||||
{
|
||||
// ★ 마지막 로그 시각 갱신 (드리프트 최소화를 원하면 lastLogUtc += TimeSpan.FromSeconds(periodSec))
|
||||
lastLogUtc = nowUtc;
|
||||
lastLoggedSecond = sec;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Alarm History Log
|
||||
modelName = csConstData.UART_MODEL[Config.UartModelIndex];
|
||||
csDbUtils.LogDbCreate(modelName);
|
||||
csDbUtils.DbCreateLOG(Config);
|
||||
|
||||
for (int i = 0; i < mQty; i++)
|
||||
{
|
||||
if (CheckStatusAndAlarm(i, modelName, Config, DeviceData.ModuleData[i], OldDevData.ModuleData[i]))
|
||||
{
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(Config, DateTime.Now, "");
|
||||
RaiseOnUpdateAlarmHistory(CurrAlarmHistory);
|
||||
}
|
||||
}
|
||||
@@ -618,7 +617,7 @@ namespace LFP_Manager.Threads
|
||||
|
||||
if (eventFlag)
|
||||
{
|
||||
csDbUtils.BmsLogDataInsert(modelName, ref nModule, now, 1);
|
||||
csDbUtils.BmsLogDataInsert(modelName, ref nModule, now, 1, 1);
|
||||
}
|
||||
return eventFlag;
|
||||
}
|
||||
@@ -995,7 +994,7 @@ namespace LFP_Manager.Threads
|
||||
|
||||
if (anyAlarm)
|
||||
{
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(modelName, DateTime.Now, "");
|
||||
CurrAlarmHistory = csDbUtils.GetBmsAlarmDataByDataTable(Config, DateTime.Now, "");
|
||||
RaiseOnUpdateAlarmHistory(CurrAlarmHistory);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user