feat: Add vision controls, function menu, and custom alert dialogs
- Add Vision menu with Camera (QRCode) and Barcode (Keyence) controls - Add Function menu with Manage, Log Viewer, and folder navigation - Add quick action buttons (Manual, Light, Print, Cancel) to header - Replace browser alert() with custom AlertDialog component - Add MachineBridge methods for vision, lighting, folders, and manual operations - Add WebSocketServer handlers for all new commands - Add communication layer methods for frontend-backend integration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -233,6 +233,139 @@ namespace Project.WebUI
|
||||
var response = new { type = "PROCESSED_DATA", data = Newtonsoft.Json.JsonConvert.DeserializeObject(dataJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CAMERA_CONNECT")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CameraConnect();
|
||||
var response = new { type = "CAMERA_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CAMERA_DISCONNECT")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CameraDisconnect();
|
||||
var response = new { type = "CAMERA_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CAMERA_GET_IMAGE")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CameraGetImage();
|
||||
var response = new { type = "CAMERA_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CAMERA_LIVE_VIEW")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CameraLiveView();
|
||||
var response = new { type = "CAMERA_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CAMERA_READ_TEST")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CameraReadTest();
|
||||
var response = new { type = "CAMERA_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "KEYENCE_TRIGGER_ON")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.KeyenceTriggerOn();
|
||||
var response = new { type = "KEYENCE_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "KEYENCE_TRIGGER_OFF")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.KeyenceTriggerOff();
|
||||
var response = new { type = "KEYENCE_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "KEYENCE_GET_IMAGE")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.KeyenceGetImage();
|
||||
var response = new { type = "KEYENCE_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "KEYENCE_SAVE_IMAGE")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.KeyenceSaveImage();
|
||||
var response = new { type = "KEYENCE_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "TOGGLE_LIGHT")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.ToggleLight();
|
||||
var response = new { type = "LIGHT_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_MANUAL_PRINT")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenManualPrint();
|
||||
var response = new { type = "MANUAL_PRINT_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "CANCEL_JOB")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.CancelJob();
|
||||
var response = new { type = "CANCEL_JOB_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_MANAGE")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenManage();
|
||||
var response = new { type = "MANAGE_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_MANUAL")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenManual();
|
||||
var response = new { type = "MANUAL_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_LOG_VIEWER")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenLogViewer();
|
||||
var response = new { type = "LOG_VIEWER_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_PROGRAM_FOLDER")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenProgramFolder();
|
||||
var response = new { type = "FOLDER_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_LOG_FOLDER")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenLogFolder();
|
||||
var response = new { type = "FOLDER_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_SCREENSHOT_FOLDER")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenScreenshotFolder();
|
||||
var response = new { type = "FOLDER_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
else if (type == "OPEN_SAVED_DATA_FOLDER")
|
||||
{
|
||||
var bridge = new MachineBridge(_mainForm);
|
||||
string resultJson = bridge.OpenSavedDataFolder();
|
||||
var response = new { type = "FOLDER_RESULT", data = Newtonsoft.Json.JsonConvert.DeserializeObject(resultJson) };
|
||||
await Send(socket, Newtonsoft.Json.JsonConvert.SerializeObject(response));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user