feat: Implement vision menu, processed data panel, and UI improvements

- Add VisionMenu component with Camera (QRCode) and Barcode (Keyence) submenus
- Remove old CameraPanel component and replace with dropdown menu structure
- Add ProcessedDataPanel to display processed data in bottom dock (5 rows visible)
- Create SystemStatusPanel component with horizontal button layout (START/STOP/RESET)
- Create EventLogPanel component for better code organization
- Add device initialization feature with 7-axis progress tracking
- Add GetProcessedData and GetInitializeStatus backend methods
- Update Header menu layout to vertical (icon on top, text below) for more space
- Update HomePage layout with bottom-docked ProcessedDataPanel
- Refactor HomePage to use new modular components

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-25 22:18:55 +09:00
parent e46886cabc
commit 6219c4c60e
14 changed files with 1273 additions and 555 deletions

View File

@@ -212,6 +212,27 @@ namespace Project.WebUI
var response = new { type = "RECIPE_SAVED", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
}
else if (type == "INITIALIZE_DEVICE")
{
var bridge = new MachineBridge(_mainForm);
string resultJson = bridge.InitializeDevice();
var response = new { type = "DEVICE_INITIALIZED", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
}
else if (type == "GET_INITIALIZE_STATUS")
{
var bridge = new MachineBridge(_mainForm);
string statusJson = bridge.GetInitializeStatus();
var response = new { type = "INITIALIZE_STATUS_DATA", data = Newtonsoft.Json.JsonConvert.DeserializeObject(statusJson) };
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
}
else if (type == "GET_PROCESSED_DATA")
{
var bridge = new MachineBridge(_mainForm);
string dataJson = bridge.GetProcessedData();
var response = new { type = "PROCESSED_DATA", data = Newtonsoft.Json.JsonConvert.DeserializeObject(dataJson) };
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
}
}
catch (Exception ex)
{