feat: Add VisionData panel, HW error display, and reel handler 3D model

- Add hardware error banner with priority system (motion > i/o > emergency)
- Add DIO status to HW status display with backend integration
- Remove status text from HW status, keep only LED indicators
- Add VisionDataPanel showing real-time recognized data for L/C/R ports
- Add GetVisionData API in MachineBridge with batch field support
- Add BroadcastVisionData function (250ms interval)
- Replace 3D model with detailed reel handler equipment
- Use OrthographicCamera with front view for distortion-free display
- Fix ProcessedDataPanel layout to avoid right sidebar overlap
- Show log viewer filename in error message when file not found

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 23:22:56 +09:00
parent 3bd35ad852
commit 86fe466b55
7 changed files with 843 additions and 569 deletions

View File

@@ -277,6 +277,7 @@ namespace Project.Dialog
{
_hwUpdateCounter = 0;
BroadcastHWStatus();
BroadcastVisionData();
}
}
@@ -311,6 +312,37 @@ namespace Project.Dialog
}
}
// Vision Data 브로드캐스트 (listView21과 동일한 데이터)
private void BroadcastVisionData()
{
try
{
var bridge = new WebUI.MachineBridge(this);
string visionDataJson = bridge.GetVisionData();
var payload = new
{
type = "VISION_DATA_UPDATE",
data = JsonConvert.DeserializeObject(visionDataJson)
};
string json = JsonConvert.SerializeObject(payload);
// WebView2로 전송
if (webView != null && webView.CoreWebView2 != null)
{
webView.CoreWebView2.PostWebMessageAsJson(json);
}
// WebSocket으로 전송
_wsServer?.Broadcast(json);
}
catch (Exception ex)
{
Console.WriteLine($"[fWebView] Vision data broadcast error: {ex.Message}");
}
}
private List<object> GetChangedIOs()
{
var list = new List<object>();