BMS 를 RS232 클래스에서 폴링방식 전용 클래스로 변경

BMS 정보중 현재 사용 전류와 와트를 표시함
사용전류를 통해서 충전여부를 자동 판다시키고, 해당 값은 Manual Charge 플래그에 설정함.
This commit is contained in:
ChiKyun Kim
2025-12-18 14:44:00 +09:00
parent b62cd5f52e
commit d777adc219
11 changed files with 824 additions and 213 deletions

View File

@@ -48,7 +48,7 @@ namespace Project
lock (connectobj)
{
ConnectSerialPort(PUB.XBE, PUB.setting.Port_XBE, PUB.setting.Baud_XBE,
eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, eVarTime.LastRecv_XBE);
eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, null);
}
@@ -84,7 +84,6 @@ namespace Project
}
}
// ========== 2. XBee 상태 전송 ==========
if (PUB.XBE != null && PUB.XBE.IsOpen)
{
@@ -147,7 +146,7 @@ namespace Project
/// <summary>
/// 시리얼 포트 연결 (arDev.arRS232)
/// </summary>
bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime recvtime)
bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime? recvtime)
{
if (port.isEmpty()) return false;
@@ -159,13 +158,13 @@ namespace Project
VAR.TIME.Update(conntry);
try
{
VAR.TIME.Update(recvtime);
if (recvtime != null) VAR.TIME.Update(recvtime);
dev.PortName = port;
dev.BaudRate = baud;
PUB.log.Add($"Connect to {port}:{baud}");
if (dev.Open())
{
VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
if (recvtime != null) VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
PUB.log.Add(port, $"[{port}:{baud}] 연결 완료");
}
else
@@ -202,7 +201,7 @@ namespace Project
VAR.TIME.Update(conntry);
}
else if (dev.IsOpen)
else if (dev.IsOpen && recvtime != null)
{
//연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다
var tsRecv = VAR.TIME.RUN(recvtime);