feat(AGVCanvas): blink error msg, debug info, setview

This commit is contained in:
backuppc
2026-02-04 15:23:45 +09:00
parent e35dee853f
commit b388b1917d
2 changed files with 114 additions and 5 deletions

View File

@@ -137,10 +137,42 @@ namespace AGVNavigationCore.Controls
string _alertmesage = "";
bool showalert = false;
// 깜박임 효과를 위한 타이머 및 상태
private Timer _alertBlinkTimer;
private bool _isAlertBlinkOn = true;
public void SetAlertMessage(string m)
{
_alertmesage = m;
showalert = !string.IsNullOrEmpty(m);
//if (showalert)
//{
// if (_alertBlinkTimer == null)
// {
// _alertBlinkTimer = new Timer();
// _alertBlinkTimer.Interval = 500; // 0.5초 간격
// _alertBlinkTimer.Tick += _alertBlinkTimer_Tick;
// }
// _alertBlinkTimer.Start();
// _isAlertBlinkOn = true;
//}
//else
//{
// if (_alertBlinkTimer != null)
// {
// _alertBlinkTimer.Stop();
// }
// _isAlertBlinkOn = false;
//}
//Invalidate(); // 즉시 갱신
}
private void _alertBlinkTimer_Tick(object sender, EventArgs e)
{
//_isAlertBlinkOn = !_isAlertBlinkOn;
//Invalidate();
}
@@ -292,6 +324,23 @@ namespace AGVNavigationCore.Controls
}
}
/// <summary>
/// 외부에서 Pan(X,Y) 및 Zoom 값을 설정합니다.
/// </summary>
/// <param name="panX">Pan X 좌표</param>
/// <param name="panY">Pan Y 좌표</param>
/// <param name="zoom">Zoom Level (0.1 ~ 5.0)</param>
public void SetView(float panX, float panY, float zoom)
{
// Zoom 값 범위 제한
float newZoom = Math.Max(0.1f, Math.Min(5.0f, zoom));
_panOffset = new PointF(panX, panY);
_zoomFactor = newZoom;
Invalidate();
}
/// <summary>
/// 그리드 표시 여부
/// </summary>
@@ -886,6 +935,14 @@ namespace AGVNavigationCore.Controls
// 이미지 정리
_companyLogo?.Dispose();
// 타이머 정리
if (_alertBlinkTimer != null)
{
_alertBlinkTimer.Stop();
_alertBlinkTimer.Dispose();
_alertBlinkTimer = null;
}
}
base.Dispose(disposing);