V1.0.0.7 - 2025/12/22

* Database improved all
This commit is contained in:
2025-12-22 12:46:46 +09:00
parent 79fea6964b
commit 0af235eb3d
14 changed files with 642 additions and 364 deletions

View File

@@ -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);
}