6 files added
29 files modified
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <svg |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | width="27.331806mm" |
| | | height="36.046158mm" |
| | | viewBox="0 0 27.331806 36.046158" |
| | | version="1.1" |
| | | id="svg1894" |
| | | inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" |
| | | sodipodi:docname="Controller.svg" |
| | | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
| | | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
| | | xmlns="http://www.w3.org/2000/svg" |
| | | xmlns:svg="http://www.w3.org/2000/svg" |
| | | xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| | | xmlns:cc="http://creativecommons.org/ns#" |
| | | xmlns:dc="http://purl.org/dc/elements/1.1/"> |
| | | inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" |
| | | sodipodi:docname="Controller.svg"> |
| | | <defs |
| | | id="defs1888" /> |
| | | <sodipodi:namedview |
| | |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-47.855976" |
| | | inkscape:cy="66.29126" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | fit-margin-right="0" |
| | | fit-margin-bottom="0" |
| | | inkscape:window-width="1920" |
| | | inkscape:window-height="1017" |
| | | inkscape:window-height="1027" |
| | | inkscape:window-x="-8" |
| | | inkscape:window-y="-8" |
| | | inkscape:window-maximized="1" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() { try { statusSubcontroller(); } catch (Exception e) { } } public void statusSubcontroller() { art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controllerInformation.number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); if (art.client.models.Shared.configuration.general.darkMap == true) { setAttribute("Text number", "fill", "#FFFFFF"); setAttribute("Text information", "fill", "#FFFFFF"); setAttribute("Text offset", "fill", "#FFFFFF"); setAttribute("Text cycle", "fill", "#FFFFFF"); } else { setAttribute("Text number", "fill", "#000000"); setAttribute("Text information", "fill", "#000000"); setAttribute("Text offset", "fill", "#000000"); setAttribute("Text cycle", "fill", "#000000"); } setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(border, "stroke", "#800080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", "#FF80FF"); setAttribute(background, "fill", "#FF80FF"); switch (controllerStatus.status) { case art.library.model.devices.DeviceStatus.STATUS_ONLINE: break; case art.library.model.devices.DeviceStatus.STATUS_WARNING: break; case art.library.model.devices.DeviceStatus.STATUS_ALARM: break; case art.library.model.devices.DeviceStatus.STATUS_DISABLE: setAttribute(background, "fill", "#404040"); setAttribute(ribbon, "stroke", "#404040"); setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); setAttribute(emergency, "fill-opacity", "0.0", 999); setAttribute(lock, "fill-opacity", "0.0", 999); setAttribute(run, "fill-opacity", "0.0", 999); setAttribute(remote, "fill-opacity", "0.0", 999); return; case art.library.model.devices.DeviceStatus.STATUS_SIMULATION: setAttribute(background, "fill", "#0000FF"); setAttribute(ribbon, "stroke", "#0000FF"); setAttribute(border, "stroke", "#000080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); break; case art.library.model.devices.DeviceStatus.STATUS_INVALID: case art.library.model.devices.DeviceStatus.STATUS_OFFLINE: case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN: setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); return; } if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) { setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(lock, "fill", "#FF0000", 999); } else { setAttribute(lock, "fill-opacity", "0.15", 999); setAttribute(lock, "fill", "#000000", 999); } if (subcontrollerStatus.general.emergency == true) { setAttribute(emergency, "fill-opacity", "1.0", 999); } else if (subcontrollerStatus.general.emergency == false) { setAttribute(emergency, "fill-opacity", "0.15", 999); setAttribute(emergency, "fill", "#000000", 999); } switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: { break; } case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: { break; } } setAttribute("Text information", "display", "iniline", 999); setAttribute("Text offset", "display", "iniline", 999); setAttribute("Text cycle", "display", "iniline", 999); if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) { setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(remote, "fill", "#0000FF", 999); } else { setAttribute(remote, "fill-opacity", "0.15", 999); setAttribute(remote, "fill", "#000000", 999); } if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) { setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(run, "fill", "#0000FF", 999); } else { setAttribute(run, "fill-opacity", "0.15", 999); setAttribute(run, "fill", "#000000", 999); } double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } java.util.Calendar calendardate = java.util.Calendar.getInstance(); calendardate.set(java.util.Calendar.MILLISECOND, 0); long seconds = calendardate.getTimeInMillis() / 1000; boolean even = seconds % 2 == 0; switch (subcontrollerStatus.general.state) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080"); setAttribute(elapsed2, "fill", "#808080"); setText("Text information", "OFF"); return; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: setAttribute("Text information", "display","none",999); setAttribute("Text offset", "display","none",999); setAttribute("Text cycle", "display","none",999); if (even) { setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00"); setAttribute(elapsed2, "fill", "#FFFF00"); } else { setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000"); setAttribute(elapsed2, "fill", "#808000"); } setText("Text information", "Y^"); break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000"); setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000"); setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); } else { setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000"); setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); } break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: if (subcontrollerStatus.general.emergency == true) { setAttribute(background, "fill", "#FF8000"); setAttribute(ribbon, "stroke", "#FF8000"); setAttribute(elapsed2, "fill", "#FF8000"); } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) { setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000"); setAttribute(elapsed2, "fill", "#008000"); } else { setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00"); setAttribute(elapsed2, "fill", "#00FF00"); } break; } art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) { try { plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); } catch (Exception e) { } } if (plan != null) { String information = ""; if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) information = "C"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) information = "M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) information = "M-E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) information = "E"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) information = "E-M"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) information = "CTw"; else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) information = "NC"; else information = "?"; information = information + plan.number; switch (subcontrollerStatus.general.planMode) { case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: information = information + "d"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: information = information + "ds"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: information = information + "f"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: information = information + "o"; break; case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: information = information + "t"; break; } setText("Text information", information); if (plan.offset > 0) { setText("Text offset", "" + plan.offset); } else { setText("Text offset", ""); } setText("Text cycle", "" + plan.cycle); if (subcontrollerRealtime != null) { try { String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; setText("Text elapsed", text); setAttribute(elapsed1, "display", "inline"); setAttribute(elapsed2, "display", "inline"); int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; float ratio = 1; setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); update(elapsed2); } catch (Exception ex) { } } java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); java.awt.Color darkerColor = bckColor.darker(); String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); setAttribute("Text information", "fill", darkHex, 999); setAttribute("Text offset", "fill", darkHex, 999); setAttribute("Text cycle", "fill", darkHex, 999); setAttribute(emergency, "fill", darkHex, 999); setAttribute(lock, "fill", darkHex, 999); setAttribute(run, "fill", darkHex, 999); setAttribute(remote, "fill", darkHex, 999); } } public void paintNoStatusAvailable() { art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); SVGElement thunderbolt = getElement("Thunderbolt"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement calendar = getElement("Calendar"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement elapsed1 = getElement("Elapsed1"); SVGElement elapsed2 = getElement("Elapsed2"); setAttribute(thunderbolt, "fill-opacity", "1.0", 999); setAttribute(emergency, "fill-opacity", "1.0", 999); setAttribute(lock, "fill-opacity", "1.0", 999); setAttribute(calendar, "fill-opacity", "1.0", 999); setAttribute(run, "fill-opacity", "1.0", 999); setAttribute(remote, "fill-opacity", "1.0", 999); setAttribute(thunderbolt, "fill", "#804080", 999); setAttribute(emergency, "fill", "#804080", 999); setAttribute(lock, "fill", "#804080", 999); setAttribute(calendar, "fill", "#804080", 999); setAttribute(run, "fill", "#804080", 999); setAttribute(remote, "fill", "#804080", 999); setText("Text number", String.format("%05d", controller.getDeviceInformation().number)); setText("Text information", ""); setText("Text offset", ""); setText("Text cycle", ""); setText("Text elapsed", ""); setAttribute(elapsed1, "display", "none"); setAttribute(elapsed2, "display", "none"); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(background, "fill", "#FF00FF"); setAttribute(ribbon, "stroke", "#FF00FF"); setAttribute(border, "stroke", "#FF00FF"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); } public void commands() { final String colorNoCommandsBorder = "#00007C"; final String colorNoCommandsBackground = "#7C7CFA"; final String colorCommandsBorder = "#007C00"; final String colorCommandsBackground = "#7CFA7C"; art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); SVGElement background = getElement("Background"); SVGElement border = getElement("Border"); SVGElement ribbon = getElement("Ribbon"); SVGElement emergency = getElement("Emergency"); SVGElement lock = getElement("Lock"); SVGElement run = getElement("Run"); SVGElement remote = getElement("Remote"); setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 0.75); setAttribute(ribbon, "stroke-opacity", 0.50); setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); setText("Text number", String.format("%05d", controllerInformation.number)); setAttribute("Text information", "display", "none", 999); setAttribute("Text offset", "display", "none", 999); setAttribute("Text cycle", "display", "none", 999); setAttribute("Text elapsed", "display", "none", 999); } "> |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | | { |
| | | setAttribute("Text number", "fill", "#FFFFFF"); |
| | | setAttribute("Text information", "fill", "#FFFFFF"); |
| | | setAttribute("Text offset", "fill", "#FFFFFF"); |
| | | setAttribute("Text cycle", "fill", "#FFFFFF"); |
| | | } else |
| | | { |
| | | setAttribute("Text number", "fill", "#000000"); |
| | | setAttribute("Text information", "fill", "#000000"); |
| | | setAttribute("Text offset", "fill", "#000000"); |
| | | setAttribute("Text cycle", "fill", "#000000"); |
| | | } |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | | } else |
| | | { |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true) |
| | | { |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill", "#0000FF", 999); |
| | | } else |
| | | { |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | | art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null; |
| | | if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0) |
| | | { |
| | | try |
| | | { |
| | | plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number); |
| | | } catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | if (plan != null) |
| | | { |
| | | String information = ""; |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | } else |
| | | { |
| | | information = "?"; |
| | | } |
| | | information = information + plan.number; |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | | information = information + "d"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION: |
| | | information = information + "ds"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED: |
| | | information = information + "f"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS: |
| | | information = information + "o"; |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE: |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | | setText("Text offset", "" + plan.offset); |
| | | } else |
| | | { |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | | int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2; |
| | | float ratio = 1; |
| | | setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio))); |
| | | update(elapsed2); |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | } |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | | setAttribute(remote, "fill", darkHex, 999); |
| | | } |
| | | } |
| | | |
| | | public void paintNoStatusAvailable() |
| | | { |
| | | art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice(); |
| | | SVGElement thunderbolt = getElement("Thunderbolt"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement calendar = getElement("Calendar"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement elapsed1 = getElement("Elapsed1"); |
| | | SVGElement elapsed2 = getElement("Elapsed2"); |
| | | setAttribute(thunderbolt, "fill-opacity", "1.0", 999); |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(calendar, "fill-opacity", "1.0", 999); |
| | | setAttribute(run, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(thunderbolt, "fill", "#804080", 999); |
| | | setAttribute(emergency, "fill", "#804080", 999); |
| | | setAttribute(lock, "fill", "#804080", 999); |
| | | setAttribute(calendar, "fill", "#804080", 999); |
| | | setAttribute(run, "fill", "#804080", 999); |
| | | setAttribute(remote, "fill", "#804080", 999); |
| | | setText("Text number", String.format("%04d", controller.getDeviceInformation().number)); |
| | | setText("Text information", ""); |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(background, "fill", "#FF00FF"); |
| | | setAttribute(ribbon, "stroke", "#FF00FF"); |
| | | setAttribute(border, "stroke", "#FF00FF"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | } |
| | | |
| | | public void commands() |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | borderopacity="1.0" |
| | | inkscape:pageopacity="0.0" |
| | | inkscape:pageshadow="2" |
| | | inkscape:zoom="2.8" |
| | | inkscape:cx="-18.366845" |
| | | inkscape:cy="133.59352" |
| | | inkscape:zoom="3.959798" |
| | | inkscape:cx="-57.110407" |
| | | inkscape:cy="95.513044" |
| | | inkscape:document-units="mm" |
| | | inkscape:current-layer="g4133" |
| | | showgrid="false" |
| | |
| | | inkscape:deskcolor="#d1d1d1" /> |
| | | <metadata |
| | | id="Metadata" |
| | | art.script=" public void status() |
| | | art.script="public void status() |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | |
| | | |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ |
| | | setAttribute(border, "display", "inline"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF",999); |
| | | setAttribute(background, "fill", "#FFFFFF",999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF",999); |
| | | } |
| | | else |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | } |
| | | else |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated ; |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | |
| | | if(offline == true) |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (subcontrollerStatus.forcings != null |
| | | && (subcontrollerStatus.forcings.centralized != null |
| | | || subcontrollerStatus.forcings.colorsMode != null |
| | | || subcontrollerStatus.forcings.computerMode != null |
| | | || subcontrollerStatus.forcings.control != null |
| | | || subcontrollerStatus.forcings.plan != null)) |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | |
| | | |
| | | |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke", "#FF0000"); |
| | | setAttribute(border, "stroke-opacity", strokeopacity); |
| | | setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); |
| | | } else |
| | | { |
| | | setAttribute(border, "stroke", "#808080"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | }*/ |
| | | |
| | | |
| | | |
| | | switch (subcontrollerStatus.general.state) |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); |
| | | setAttribute(ribbon, "stroke", "#808080");*/ |
| | | setAttribute(elapsed2, "fill", "#808080"); |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display","none",999); |
| | | setAttribute("Text offset", "display","none",999); |
| | | setAttribute("Text cycle", "display","none",999); |
| | | |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); |
| | | setAttribute(ribbon, "stroke", "#FFFF00");*/ |
| | | setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); |
| | | setAttribute(ribbon, "stroke", "#808000");*/ |
| | | setAttribute(elapsed2, "fill", "#808000"); |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); |
| | | setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ |
| | | setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); |
| | | setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ |
| | | setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); |
| | | setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ |
| | | setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ |
| | | setAttribute(ribbon, "stroke", "#FF8000"); |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } |
| | | else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); |
| | | setAttribute(ribbon, "stroke", "#008000");*/ |
| | | setAttribute(elapsed2, "fill", "#008000"); |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); |
| | | setAttribute(ribbon, "stroke", "#00FF00");*/ |
| | | setAttribute(elapsed2, "fill", "#00FF00"); |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | |
| | | { |
| | | } |
| | | } |
| | | |
| | | if (plan != null) |
| | | { |
| | | |
| | | String information = ""; |
| | | |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | else |
| | | } else |
| | | { |
| | | information = "?"; |
| | | |
| | | } |
| | | information = information + plan.number; |
| | | |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | |
| | | { |
| | | } |
| | | } |
| | | |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | |
| | | } |
| | | "> |
| | | }"> |
| | | <rdf:RDF> |
| | | <cc:Work |
| | | rdf:about=""> |
| | |
| | | #Mon, 14 Oct 2024 14:28:16 +0200 |
| | | #Fri, 29 Nov 2024 11:24:46 +0100 |
| | | |
| | | |
| | | D\:\\LocalBackup\\svgDevicesTest= |
| | |
| | | public class SvgDeviceStatusTest |
| | | { |
| | | |
| | | private static final SvgMocker SELECTED_MOCKER = SvgMocker.ParkingUrbiotica; |
| | | private static final SvgMocker SELECTED_MOCKER = SvgMocker.RTZMapComplex; |
| | | |
| | | public static String mapPath; |
| | | |
| | |
| | | package AccessEnforcement.mockers; |
| | | |
| | | import AccessEnforcement.AccessEnforcementMap; |
| | | import Mocker.IDeviceMocker; |
| | | import SpeedEnforcement.SpeedEnforcementMap; |
| | | import art.library.interop.serialization.Serialization; |
| | | import art.library.interop.serialization.SerializationException; |
| | | import art.library.model.devices.Device; |
| | | import art.library.model.devices.gost.access.AccessEnforcement; |
| | | import devices.mockers.LocalFileDeviceMocker; |
| | | import java.io.File; |
| | | import java.util.logging.Level; |
| | | import java.util.logging.Logger; |
| | | import svgdevicestest.mock.*; |
| | | |
| | | public class AccessEnforcementMockerMap extends DeviceMocker implements IDeviceMocker |
| | |
| | | @Override |
| | | public void updateDevice(boolean active) |
| | | { |
| | | |
| | | try |
| | | { |
| | | device = (Device)Serialization.deserialize(AccessEnforcement.class, new File("C:\\Users\\Konstantin\\Desktop\\zpr14.txt")); |
| | | } catch (SerializationException ex) |
| | | { |
| | | Logger.getLogger(AccessEnforcementMockerMap.class.getName()).log(Level.SEVERE, null, ex); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public String getFilePath() |
| | | { |
| | | return "C:\\Users\\Konstantin\\Documents\\LocalBackup\\Obras\\Oviedo\\gost-access-server\\data\\art.servers.gost-access-server\\symbols\\18\\Access.svg"; |
| | | return "D:\\LocalBackup\\servers\\gost-access-server-git\\data\\art.servers.gost-access-server\\symbols\\20\\Access.svg"; |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public Class getScriptClass() |
| | | { |
| | | return SpeedEnforcementMap.class; |
| | | return AccessEnforcementMap.class; |
| | | } |
| | | } |
| | |
| | | super(device, commands, diagram); |
| | | } |
| | | |
| | | public void status() |
| | | public void status() |
| | | { |
| | | try |
| | | { |
| | | statusSubcontroller(); |
| | | } catch (Exception e) |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | } |
| | | } |
| | | |
| | | public void statusSubcontroller() |
| | | { |
| | | { |
| | | java.util.Calendar calendardate = java.util.Calendar.getInstance(); |
| | | calendardate.set(java.util.Calendar.MILLISECOND, 0); |
| | | long seconds = calendardate.getTimeInMillis() / 1000; |
| | | boolean even = seconds % 2 == 0; |
| | | |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32; |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration(); |
| | | |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | |
| | | setText("Text offset", ""); |
| | | setText("Text cycle", ""); |
| | | setText("Text elapsed", ""); |
| | | |
| | | try |
| | | { |
| | | if (art.client.models.Shared.configuration.general.darkMap == true) |
| | |
| | | } catch (Exception ex) |
| | | { |
| | | } |
| | | |
| | | |
| | | setAttribute(elapsed1, "display", "none"); |
| | | setAttribute(elapsed2, "display", "none"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ |
| | | setAttribute(border, "display", "inline"); |
| | | /* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 0.75); |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", "#FF80FF"); |
| | | setAttribute(background, "fill", "#FF80FF"); |
| | | |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | setAttribute(border, "stroke", "#FFFFFF",999); |
| | | setAttribute(background, "fill", "#FFFFFF",999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF",999); |
| | | } |
| | | else |
| | | setAttribute(border, "stroke", "#FFFFFF", 999); |
| | | setAttribute(background, "fill", "#FFFFFF", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFFFF", 999); |
| | | } else |
| | | { |
| | | setAttribute(border, "display", "none", 999); |
| | | |
| | | setAttribute(border, "display", "none", 999); |
| | | if (controllerStatus.rtz32.centralized.centralized == false) |
| | | { |
| | | setAttribute(border, "fill", "#808080", 999); |
| | | setAttribute(background, "fill", "#808080", 999); |
| | | setAttribute(ribbon, "stroke", "#808080", 999); |
| | | } |
| | | else |
| | | setAttribute(background, "display", "inline"); |
| | | } else |
| | | { |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated ; |
| | | boolean semiactuated = controllerStatus.rtz32.general.semiactuated; |
| | | boolean offline = false; |
| | | |
| | | if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0) |
| | | { |
| | | offline = true; |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | } |
| | | |
| | | if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER) |
| | | { |
| | | setAttribute(background, "fill", "#00FF00", 999); |
| | | setAttribute(ribbon, "stroke", "#00FF00", 999); |
| | | |
| | | if(offline == true) |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | } else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | setAttribute(background, "fill", "#FF0000", 999); |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | |
| | | setAttribute(ribbon, "stroke", "#FF0000", 999); |
| | | if (offline == true) |
| | | { |
| | | setAttribute(background, "display", even ? "none" : "inline", 999); |
| | | } |
| | | } |
| | | |
| | | if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0) |
| | | { |
| | | if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(background, "fill", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(ribbon, "stroke", "#FFFF00", 999); |
| | | setAttribute(background, "display", even ? "inline" : "none", 999); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (subcontrollerStatus.forcings != null |
| | | && (subcontrollerStatus.forcings.centralized != null |
| | | || subcontrollerStatus.forcings.colorsMode != null |
| | | || subcontrollerStatus.forcings.computerMode != null |
| | | || subcontrollerStatus.forcings.control != null |
| | | || subcontrollerStatus.forcings.plan != null)) |
| | | if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null)) |
| | | { |
| | | setAttribute(lock, "fill-opacity", "1.0", 999); |
| | | setAttribute(lock, "fill", "#FF0000", 999); |
| | |
| | | setAttribute(lock, "fill-opacity", "0.15", 999); |
| | | setAttribute(lock, "fill", "#000000", 999); |
| | | } |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | setAttribute(emergency, "fill-opacity", "1.0", 999); |
| | | } else if (subcontrollerStatus.general.emergency == false) |
| | |
| | | setAttribute(emergency, "fill-opacity", "0.15", 999); |
| | | setAttribute(emergency, "fill", "#000000", 999); |
| | | } |
| | | |
| | | |
| | | |
| | | setAttribute("Text information", "display", "iniline", 999); |
| | | setAttribute("Text offset", "display", "iniline", 999); |
| | | setAttribute("Text cycle", "display", "iniline", 999); |
| | | |
| | | if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)) |
| | | { |
| | | setAttribute(remote, "fill-opacity", "1.0", 999); |
| | | setAttribute(remote, "fill", "#0000FF", 999); |
| | | } else |
| | | } else |
| | | { |
| | | setAttribute(remote, "fill-opacity", "0.15", 999); |
| | | setAttribute(remote, "fill", "#000000", 999); |
| | |
| | | setAttribute(run, "fill-opacity", "0.15", 999); |
| | | setAttribute(run, "fill", "#000000", 999); |
| | | } |
| | | |
| | | double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32; |
| | | |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) |
| | | { |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke", "#FF0000"); |
| | | setAttribute(border, "stroke-opacity", strokeopacity); |
| | | setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); |
| | | } else |
| | | { |
| | | setAttribute(border, "stroke", "#808080"); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | | setAttribute(border, "stroke-opacity", 1.0); |
| | | }*/ |
| | | |
| | | |
| | | |
| | | switch (subcontrollerStatus.general.state) |
| | | /* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN: |
| | | /*setAttribute(background, "fill", "#808080"); |
| | | setAttribute(ribbon, "stroke", "#808080");*/ |
| | | setAttribute(elapsed2, "fill", "#808080"); |
| | | /*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080"); |
| | | setText("Text information", "OFF"); |
| | | return; |
| | | |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING: |
| | | setAttribute("Text information", "display","none",999); |
| | | setAttribute("Text offset", "display","none",999); |
| | | setAttribute("Text cycle", "display","none",999); |
| | | |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | if (even) |
| | | { |
| | | /* setAttribute(background, "fill", "#FFFF00"); |
| | | setAttribute(ribbon, "stroke", "#FFFF00");*/ |
| | | setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | /* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#808000"); |
| | | setAttribute(ribbon, "stroke", "#808000");*/ |
| | | setAttribute(elapsed2, "fill", "#808000"); |
| | | /* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000"); |
| | | } |
| | | setText("Text information", "Y^"); |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); |
| | | setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ |
| | | setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | /* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000"); |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); |
| | | setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ |
| | | setAttribute(elapsed2, "fill",even ? "#008000" : "#004000"); |
| | | /* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); |
| | | setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ |
| | | setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | /* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000"); |
| | | } |
| | | break; |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS: |
| | | if (subcontrollerStatus.general.emergency == true) |
| | | { |
| | | /* setAttribute(background, "fill", "#FF8000"); */ |
| | | setAttribute(ribbon, "stroke", "#FF8000"); |
| | | /* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000"); |
| | | setAttribute(elapsed2, "fill", "#FF8000"); |
| | | } |
| | | else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | } else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL) |
| | | { |
| | | /* setAttribute(background, "fill", "#008000"); |
| | | setAttribute(ribbon, "stroke", "#008000");*/ |
| | | setAttribute(elapsed2, "fill", "#008000"); |
| | | /* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000"); |
| | | } else |
| | | { |
| | | /* setAttribute(background, "fill", "#00FF00"); |
| | | setAttribute(ribbon, "stroke", "#00FF00");*/ |
| | | setAttribute(elapsed2, "fill", "#00FF00"); |
| | | /* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00"); |
| | | } |
| | | break; |
| | | } |
| | |
| | | { |
| | | } |
| | | } |
| | | |
| | | if (plan != null) |
| | | { |
| | | |
| | | String information = ""; |
| | | |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED) |
| | | { |
| | | information = "C"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER) |
| | | { |
| | | information = "M"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE) |
| | | { |
| | | information = "M-E"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE) |
| | | { |
| | | information = "E"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER) |
| | | { |
| | | information = "E-M"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY) |
| | | { |
| | | information = "CTw"; |
| | | else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | } else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED) |
| | | { |
| | | information = "NC"; |
| | | else |
| | | } else |
| | | { |
| | | information = "?"; |
| | | |
| | | } |
| | | information = information + plan.number; |
| | | |
| | | switch (subcontrollerStatus.general.planMode) |
| | | { |
| | | case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS: |
| | |
| | | information = information + "t"; |
| | | break; |
| | | } |
| | | |
| | | setText("Text information", information); |
| | | if (plan.offset > 0) |
| | | { |
| | |
| | | setText("Text offset", ""); |
| | | } |
| | | setText("Text cycle", "" + plan.cycle); |
| | | |
| | | if (subcontrollerRealtime != null) |
| | | { |
| | | try |
| | | { |
| | | String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle; |
| | | |
| | | setText("Text elapsed", text); |
| | | setAttribute(elapsed1, "display", "inline"); |
| | | setAttribute(elapsed2, "display", "inline"); |
| | |
| | | { |
| | | } |
| | | } |
| | | |
| | | java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue()); |
| | | java.awt.Color darkerColor = bckColor.darker(); |
| | | String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue()); |
| | | |
| | | setAttribute("Text information", "fill", darkHex, 999); |
| | | setAttribute("Text offset", "fill", darkHex, 999); |
| | | setAttribute("Text cycle", "fill", darkHex, 999); |
| | | |
| | | setAttribute(emergency, "fill", darkHex, 999); |
| | | setAttribute(lock, "fill", darkHex, 999); |
| | | setAttribute(run, "fill", darkHex, 999); |
| | |
| | | { |
| | | final String colorNoCommandsBorder = "#00007C"; |
| | | final String colorNoCommandsBackground = "#7C7CFA"; |
| | | |
| | | final String colorCommandsBorder = "#007C00"; |
| | | final String colorCommandsBackground = "#7CFA7C"; |
| | | |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice(); |
| | | art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation(); |
| | | |
| | | SVGElement background = getElement("Background"); |
| | | SVGElement border = getElement("Border"); |
| | | SVGElement ribbon = getElement("Ribbon"); |
| | | |
| | | SVGElement emergency = getElement("Emergency"); |
| | | SVGElement lock = getElement("Lock"); |
| | | SVGElement run = getElement("Run"); |
| | | SVGElement remote = getElement("Remote"); |
| | | |
| | | setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder); |
| | | setAttribute(border, "display", "inline"); |
| | | setAttribute(border, "stroke-width", 6.5); |
| | |
| | | setAttribute(ribbon, "stroke-opacity", 0.50); |
| | | setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground); |
| | | |
| | | setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999); |
| | | |
| | | setText("Text number", String.format("%04d", controllerInformation.number)); |
| | | setAttribute("Text information", "display", "none", 999); |
| | | setAttribute("Text offset", "display", "none", 999); |
| | | setAttribute("Text cycle", "display", "none", 999); |
| | | setAttribute("Text elapsed", "display", "none", 999); |
| | | |
| | | } |
| | | |
| | | |
| | | // java.io.StringWriter sw = new java.io.StringWriter(); |
| | | // art.library.gui.flat.FlatDialog.showDialog(null, "Error", e.getMessage() + "\n\n" + sw.toString(), true, art.library.gui.flat.FlatDialog.DIALOG_ERROR); |
| | | // |
| | | } |
| | | } |
| | |
| | | |
| | | import Mocker.IDeviceMocker; |
| | | import art.library.interop.serialization.Serialization; |
| | | import art.library.interop.serialization.SerializationException; |
| | | import art.library.model.devices.Device; |
| | | import art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller; |
| | | import art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation; |
| | | import art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General; |
| | | import devices.mockers.LocalFileDeviceMocker; |
| | | import java.io.File; |
| | | import java.util.Random; |
| | | import svgdevicestest.mock.*; |
| | |
| | | { |
| | | private final static Random rnd = new Random(); |
| | | |
| | | public RtzMockerMapComplex() |
| | | public RtzMockerMapComplex() throws SerializationException |
| | | { |
| | | super(new LocalFileDeviceMocker<RTZ32_Controller>(RTZ32_Controller.class).getDevice(), new LocalFileDeviceMocker<RTZ32_Controller>(RTZ32_Controller.class).getDevice().getDeviceCommandsEmpty()); |
| | | super((Device)Serialization.deserialize(RTZ32_Controller.class, new File("C:\\Users\\Konstantin\\Desktop\\rtz_svg.txt"))); |
| | | } |
| | | |
| | | public RtzMockerMapComplex getMocker() |
| | |
| | | // information.mode = RTZ32_ControllerInformation.MODE_NON_CENTRALIZED; |
| | | // } |
| | | |
| | | Device d = Serialization.deserialize(RTZ32_Controller.class, new File("C:\\Users\\Konstantin\\Desktop\\rtz.txt")); |
| | | |
| | | RTZ32_Controller controller = (RTZ32_Controller) d; |
| | | |
| | | d.setAlarm("alarm_offline", false); |
| | | |
| | | controller.getDeviceAlarms().rtz32.flashing.alarm_flashing_bus_I2C = 1000; |
| | | |
| | | controller.getDeviceInformation().mode = RTZ32_ControllerInformation.MODE_CENTRALIZED; |
| | | |
| | | // controller.getDeviceStatus().rtz32.centralized = new RTZ32_Status_Centralized(); |
| | | // { |
| | | // controller.getDeviceStatus().rtz32.centralized.centralized = false; |
| | | // } |
| | | |
| | | controller.getDeviceStatus().rtz32.general.control = RTZ32_Status_General.CONTROL_LOCAL; |
| | | |
| | | device.status = controller.status; |
| | | device.information = controller.information; |
| | | device.configuration = controller.configuration; |
| | | device.alarms = controller.alarms; |
| | | Device d = Serialization.deserialize(RTZ32_Controller.class, new File("C:\\Users\\Konstantin\\Desktop\\rtz_svg.txt")); |
| | | device = d; |
| | | // RTZ32_Controller controller = (RTZ32_Controller) d; |
| | | // |
| | | // d.setAlarm("alarm_offline", false); |
| | | // |
| | | // controller.getDeviceAlarms().rtz32.flashing.alarm_flashing_bus_I2C = 1000; |
| | | // |
| | | // controller.getDeviceInformation().mode = RTZ32_ControllerInformation.MODE_CENTRALIZED; |
| | | // |
| | | //// controller.getDeviceStatus().rtz32.centralized = new RTZ32_Status_Centralized(); |
| | | //// { |
| | | //// controller.getDeviceStatus().rtz32.centralized.centralized = false; |
| | | //// } |
| | | // |
| | | // controller.getDeviceStatus().rtz32.general.control = RTZ32_Status_General.CONTROL_LOCAL; |
| | | // |
| | | // device.status = controller.status; |
| | | // device.information = controller.information; |
| | | // device.configuration = controller.configuration; |
| | | // device.alarms = controller.alarms; |
| | | |
| | | |
| | | // |
| | |
| | | |
| | | public abstract class DeviceMocker <T extends Device, Y extends DeviceCommands> { |
| | | |
| | | public final T device; |
| | | public T device; |
| | | public final Y commands; |
| | | |
| | | public DeviceMocker(T device) { |
| | |
| | | } |
| | | |
| | | public DeviceMocker(T device, Y commands) { |
| | | this.device = device; |
| | | this.device = device; |
| | | this.commands = commands; |
| | | } |
| | | |