SAT9/.resources/3c78ab939d40b94a06dbbbde600018a7d9c850998ea62dd867f6ecbe3ba78299
2025-05-01 00:04:09 -07:00

1142 lines
50 KiB
Plaintext

{
"custom": {
"key": {
"alt_pageid": "library",
"pageid": "library",
"start_time": {
"$": [
"ts",
192,
1702653666845
],
"$ts": 1702653102761
}
}
},
"events": {
"system": {
"onStartup": {
"config": {
"script": "\t#############################################################################################\n\t# Purpose:\tThis script searches the current views in the parent project. Script compares \t#\n\t#\t\t\tthe information from S3 to make sure the correct paths and information is\t\t#\n\t#\t\t\tdisplayed to the child objects. Where the path is the key for the JSON\t\t\t#\n\t# Login: \t\t\tDate:\t\t\t\t#Comment:\t\t\t\t\t\t\t\tVersion:\t# \n\t# dmamani\t\t\t1/4/23\t\t\t\tRelease to Production\t\t\t\t\tV1\t\t\t#\n\t# \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#\n\t#############################################################################################\n\t\t\n\t# - Params to Force Filters to show all symbols on the custom properties\n\tself.session.custom.alarm_filter.show_running \u003d True\n\tself.session.custom.alarm_filter.show_safety \u003d True\n\tself.session.custom.alarm_filter.show_diagnostic \u003d True\n\tself.session.custom.alarm_filter.show_gateways \u003d True\n\tself.session.custom.alarm_filter.show_low_alarm \u003d True\n\tfrom SymbolLibrary import list_categories, fetch_library, update_symbol_library\n\t# - Default Symbol JSON structure definitions\n\tdefault_symbol_info \u003d {\"description\": \"\",\t\"name\": \"\",\t\"category\": \"\",\"info\": \"\"} \n\t# - Get all Symbol Views and write them to tags\n\tproject_info \u003d system.perspective.getProjectInfo()\n\tviews \u003d project_info.get(\u0027views\u0027,[])\n\t# - Define criterias\n\tfilter_criterion \u003d \"Symbol-Views\"\n\tfilter_criterion2 \u003d \"Symbol-Library-Views\"\n\tfilter_criterion3 \u003d \"Controller-Views\"\n\tfilter_criterion4 \u003d \"Symbol-Views/Equipment-Views/Test\"\n\t# - Filter views that are not necessary for the symbol library and ensure the correct path\n\tfiltered_views \u003d [\n\t\tview for view in views \n\t\tif filter_criterion in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion2 in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion3 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\tand not filter_criterion4 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\t]\n\t# - Create JSON from the list \n\tjson_structure \u003d []\n\tsymbol_view_list \u003d []\n\tfor view in filtered_views:\n\t\tinstance \u003d {\n\t\t\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t},\n\t\t\t\"instancePosition\": {},\n\t\t\t\"Path\": view.get(\u0027path\u0027,\u0027\u0027),\n\t\t\t\"forceRunning\": 3,\n\t\t\t\"forceFault\": None\n\t\t}\n\t\tjson_structure.append(instance)\n\t\tsymbol_view_list.append(view.get(\u0027path\u0027,\u0027\u0027))\n\tjson_structure.sort(key \u003d lambda x:x[\u0027Path\u0027].split(\"/\")[len(x[\u0027Path\u0027].split(\"/\"))-1])\n\t# - Encode JSON for igniton variables to populate correctly\n\tjson_result \u003d system.util.jsonEncode(json_structure)\n\tself.params.Dataset \u003d filtered_views\n\tself.params.FilteredViews \u003d json_structure\n\tsystem.perspective.print(filtered_views)\n\t\n\t# - Get all Symbol Categories from JSON Dictionary\t\n\tremote_json \u003d fetch_library(username\u003dself.session.props.auth.user.userName)\n\tfor path in json_structure:\n\t\tif path[\"Path\"] not in remote_json:\n\t\t\tupdate_symbol_library(path[\"Path\"], username\u003dself.session.props.auth.user.userName, **default_symbol_info)\n\t\t\tremote_json[path[\"Path\"]] \u003d default_symbol_info\n\t# - Remove by key in case symbol does not exist in Folder Structure\n\tself.params.SymbolLibrary \u003d {k: v for k, v in remote_json.items() if k in symbol_view_list}\n\tcategory_data \u003d [{\"Category\": category} for category in list_categories(self.params.SymbolLibrary)]\n\tself.params.CategoryList \u003d category_data\n"
},
"scope": "G",
"type": "script"
}
}
},
"params": {
"CategoryList": [
{
"Category": "ALL"
},
{
"Category": "Control"
},
{
"Category": "Device Status"
},
{
"Category": "Equipment Status"
},
{
"Category": "Field Device"
},
{
"Category": "Machine"
},
{
"Category": "Network"
},
{
"Category": "Not in use"
},
{
"Category": "Safety"
}
],
"SelectedCategory": "",
"SelectedDescription": "",
"SelectedInfo": "",
"SelectedPath": "",
"SelectedRow": "ALL",
"SymbolDetails": {
"ARSAW": {
"category": "",
"description": "",
"info": "Test",
"path": "Symbol-Views/Equipment-Views/ARSAW"
},
"AUS": {
"category": "A",
"description": "AUS DESCRIPTION AUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTION",
"info": "AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO ",
"path": "Symbol-Views/Equipment-Views/AUS"
},
"Camera": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Camera"
},
"ControlCabinet": {
"category": "",
"description": "",
"info": "### Symbol Information\nDate Created: 12/20/21\n\nCreated By: amazonuser\n\nSize: 10X10",
"path": "Symbol-Views/Equipment-Views/ControlCabinet"
},
"DeviceStatus": {
"category": "B",
"description": "",
"info": "",
"path": "Symbol-Views/Device-Views/DeviceStatus"
},
"DeviceStatus_old": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Device-Views/DeviceStatus_old"
},
"Estop": {
"category": "C",
"description": "E-stop description, E-stop description, E-stop description, E-stop description, E-stop description",
"info": "E-stop info, E-stop info, E-stop info, E-stop info, E-stop info, E-stop info, E-stop info",
"path": "Symbol-Views/Equipment-Views/Estop"
},
"GoodsLift": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/GoodsLift"
},
"JAM": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/JAM"
},
"Light_Curtain": {
"category": "B",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Light_Curtain"
},
"Main_Panel": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Main_Panel"
},
"Network": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Network"
},
"Pointer": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Pointer"
},
"PressureSwitch": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PressureSwitch"
},
"PullChord": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord"
},
"PullChord_End": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_End"
},
"PullChord_Line": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_Line"
},
"PullChord_Line_Vertical": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical"
},
"RFID": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/RFID"
},
"Robot": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Robot"
},
"SLAMs": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/SLAMs"
},
"SafetyGate": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/SafetyGate"
},
"Stacker_Destacker": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Stacker_Destacker"
},
"Status": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Status"
},
"StatusNonPowered": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/StatusNonPowered"
},
"StatusNonPowered_NS": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS"
},
"Status_NS": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Status_NS"
},
"THEA": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/THEA"
}
},
"SymbolLibrary": {
"Symbol-Views/Device-Views/DeviceStatus": {
"category": "Device Status",
"description": "The Area status symbol, displaying different colors for running state\n\n",
"info": "### Device Status\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nDevice Status ",
"name": "DeviceStatus"
},
"Symbol-Views/Device-Views/DeviceStatus_old": {
"category": "Not in use",
"description": "Deprecated",
"info": "### Symbol Information \n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nNot In use",
"name": "DeviceStatus_old"
},
"Symbol-Views/Device-Views/Estop": {
"category": "Safety",
"description": "Standard symbol for an e-stop device in the field or on the control cabinet Initiated by a human action and is intended to shut down equipment in the case of an emergency. The emergency stop device is a manual control device. It is the method of initiating the emergency stop function.",
"info": "### Symbol Information \n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.0104, Height: 0.0185\n\n### Symbol Category\nSafety",
"name": "Estop"
},
"Symbol-Views/Equipment-Views/ARSAW": {
"category": "Machine",
"description": "Amazon Robotics Semi Automated Workstation or ARSAW is a machine used in Amazon Robotics (AR) sortable buildings for the primary purpose of picking inventory items from the AR fields. An associate would pick items assigned to them on a VDU screen which would be scanned and transferred to pre-scanned totes stacked in a row along a flow rack. There are 5 totes per flow rack, once each tote is filled, it can be pushed through to the take away conveyor to be lifted by a four position carriage system. The tote would be then transferred across to a trunk conveyor for subsequent order consolidation.",
"info": "### ARSAW\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "ARSAW"
},
"Symbol-Views/Equipment-Views/AUS": {
"category": "Machine",
"description": "Amazon Universal Sorter (AUS); a modular high-density matrix sorter which includes integrated container management. The AUS is wholly owned by Amazon and developed using commodity components which are already being maintained by RME",
"info": "### AUS\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "AUS"
},
"Symbol-Views/Equipment-Views/Camera": {
"category": "Field Device",
"description": "Generic Camera Symbol for any Cameras used in the process flow of product",
"info": "### Camera\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nField Device",
"name": "Camera"
},
"Symbol-Views/Equipment-Views/CognexCamera": {
"category": "Device Status",
"description": "OR ELSE",
"info": "DELETE THIS ",
"name": ""
},
"Symbol-Views/Equipment-Views/ControlCabinet": {
"category": "Control",
"description": "Generic Control Cabinet for any panel used in the design ",
"info": "### Control Cabinet\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Remote control cabinets must use the following dimensions for smaller gateways width: 0.0104, height: 0.0185.\n- For larger remote panels width:0.013, height: 0.0185.\n\n### Symbol Category\nControl",
"name": "ControlCabinet"
},
"Symbol-Views/Equipment-Views/Estop": {
"category": "Safety",
"description": "Standard symbol for an e-stop device in the field or on the control cabinet Initiated by a human action and is intended to shut down equipment in the case of an emergency. The emergency stop device is a manual control device. It is the method of initiating the emergency stop function..",
"info": "### E-STOP\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.0104, Height: 0.0185\n\n### Symbol Category\nSafety",
"name": "Estop"
},
"Symbol-Views/Equipment-Views/GoodsLift": {
"category": "Machine",
"description": "Goods lifts or \"vertical reciprocating conveyors\" (VRCs) are systems which functionality is to move inventory or non-inventory between floor levels. In TNS buildings, they are a key player in the building throughput, as they are intended and used to move inventory to fill or empty the TNS pick tower. \n\nIn ARS buildings, they are used to move non-inventory (spares), non-conveyable items or even inventory as a contingency to conveyor capacity in the event of equipment failure. ",
"info": "### Goodslift\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "GoodsLift"
},
"Symbol-Views/Equipment-Views/JAM": {
"category": "Device Status",
"description": "Jam indicator that initiate downtime events. ",
"info": "### Jam\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nDevice Status",
"name": "JAM"
},
"Symbol-Views/Equipment-Views/Light_Curtain": {
"category": "Safety",
"description": "A safety device used when light beams are obstructed and the outputs turn off, which signals a stop to the associated hazardous movement(s).",
"info": "### Light Curtain\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.0104, Height: 0.0185\n\n### Symbol Category\nSafety",
"name": "Light_Curtain"
},
"Symbol-Views/Equipment-Views/Main_Panel": {
"category": "Control",
"description": "Generic Control Cabinet for any panel used in the design ",
"info": "### Panel\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width:0.013, height: 0.0185.\n\n### Symbol Category\nControl",
"name": "Main_Panel"
},
"Symbol-Views/Equipment-Views/Network": {
"category": "Network",
"description": "Symbol used to display a Network Panel used in industrial control environments or as a remote network panel for other devices that need to be in the same network. ",
"info": "### Camera\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nField Device",
"name": "Network"
},
"Symbol-Views/Equipment-Views/Pointer": {
"category": "Device Status",
"description": "The Pointer status symbol, displaying different colors for running state.\n\n",
"info": "### Pointer\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nDevice Status ",
"name": "Pointer"
},
"Symbol-Views/Equipment-Views/PressureSwitch": {
"category": "Field Device",
"description": "Symbol for Pressure switches in the field, controlling the activation and deactivation of pumps in fluid systems when pressure thresholds are reached. They are also used in process control systems for maintaining steady pneumatic or mechanical pressure.",
"info": "### Pressure Switch\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width:0.013, height: 0.0185.\n\n### Symbol Category\nField Device",
"name": "PressureSwitch"
},
"Symbol-Views/Equipment-Views/PullChord": {
"category": "Safety",
"description": "Cable-pull safety rope switches allow operators to initiate an E-stop from any point along the installed cable length, providing protection for exposed conveyors or machines, or wherever equipment cannot be protected by guards.",
"info": "### Pullchord\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nSafety",
"name": "PullChord"
},
"Symbol-Views/Equipment-Views/PullChord_End": {
"category": "Safety",
"description": "Cable-pull safety rope switches allow operators to initiate an E-stop from any point along the installed cable length, providing protection for exposed conveyors or machines, or wherever equipment cannot be protected by guards.",
"info": "### Pull Chord - END\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "PullChord_End"
},
"Symbol-Views/Equipment-Views/PullChord_Line": {
"category": "Safety",
"description": "Cable-pull safety rope switches allow operators to initiate an E-stop from any point along the installed cable length, providing protection for exposed conveyors or machines, or wherever equipment cannot be protected by guards.",
"info": "### Pullchord Line\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nSafety",
"name": "PullChord_Line"
},
"Symbol-Views/Equipment-Views/PullChord_Line_Vertical": {
"category": "Safety",
"description": "Cable-pull safety rope switches allow operators to initiate an E-stop from any point along the installed cable length, providing protection for exposed conveyors or machines, or wherever equipment cannot be protected by guards.",
"info": "\n### Pullchord\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nSafety",
"name": "PullChord_Line_Vertical"
},
"Symbol-Views/Equipment-Views/RFID": {
"category": "Field Device",
"description": "Symbols for RFID devices. There is a device that reads information contained in a wireless device or “tag” from a distance without making any physical contact or requiring a line of sight.",
"info": "###RFID \n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nField Device",
"name": "RFID"
},
"Symbol-Views/Equipment-Views/Robot": {
"category": "Machine",
"description": "Symbol for Robots used in FC\u0027s. One example would be the RWC4. Robotic Work Cell 4 (RWC4) is the Robotic Tote Palletizer seen in IXDs and FCs which is a robotic arm that eliminates the manual tote stacking process at the end of Transship lanes by physically and virtually palletizing totes by destination. In addition to the process efficiency gains, a RWC4 improves Amazonian safety by minimizing the bending/twisting motion associated with manual palletizing. ",
"info": "###Robot\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "Robot"
},
"Symbol-Views/Equipment-Views/SLAMs": {
"category": "Machine",
"description": "Symbol used for SLAMs in FC\u0027s. SLAM (Scan/Label/Apply/Manifest) line is to collect package data including weight, dimensions, and barcode data, transmit this data to the Warehouse Management System (WMS) which performs various pre-ship validations to ensure the package has the correct items, labeling, and packaging. If all validations pass, a shipping label is printed and applied to the package via a Label Print and Apply unit (LPA), also called the printer assembly. Finally, the SPOO and shipping labels are scanned to confirm that the correct shipping label has been applied to the package. If the package fails any portion of the verification process it will be rejected at the kick-out line. ",
"info": "### SLAM \n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "SLAMs"
},
"Symbol-Views/Equipment-Views/SafetyGate": {
"category": "Safety",
"description": "Access gate symbol that provides protection from falling regardless of the position of the doors.",
"info": "### Safety Gate\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nSafety",
"name": "SafetyGate"
},
"Symbol-Views/Equipment-Views/Stacker_Destacker": {
"category": "",
"description": "",
"info": "### Tote Stacker \u0026 Destacker\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "Stacker_Destacker"
},
"Symbol-Views/Equipment-Views/Status": {
"category": "Equipment Status",
"description": "",
"info": "### Status\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nEquipment Status ",
"name": "Status"
},
"Symbol-Views/Equipment-Views/StatusNonPowered": {
"category": "Equipment Status",
"description": "Test ",
"info": "### Status Non Powered\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nEquipment Status ",
"name": "StatusNonPowered"
},
"Symbol-Views/Equipment-Views/StatusNonPowered_NS": {
"category": "Equipment Status",
"description": "",
"info": "### Status Non Powered North and South\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nEquipment Status ",
"name": "StatusNonPowered_NS"
},
"Symbol-Views/Equipment-Views/Status_NS": {
"category": "Equipment Status",
"description": "",
"info": "### Status North and South \n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- width: 0.0146, height: 0.0565\n\n### Symbol Category\nEquipment Status ",
"name": "Status_NS"
},
"Symbol-Views/Equipment-Views/THEA": {
"category": "Machine",
"description": "THEA ",
"info": "### THEA\n\nDate Created: \n- 12/20/21\n\nCreated By: \n- MAP Team\n\nDimensions: \n- Width: 0.026, height :0.0463\n\n### Symbol Category\nMachine ",
"name": "THEA"
}
}
},
"propConfig": {
"custom.key": {
"persistent": true
},
"params.CategoryList": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[0].viewParams.Categories"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.Dataset": {
"binding": {
"config": {
"path": "/root/Dashboard.props.widgets[3].viewParams.Dataset"
},
"type": "property"
}
},
"params.FilteredViews": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[3].viewParams.FilteredViews"
},
"type": "property"
}
},
"params.SelectedCategory": {
"paramDirection": "input",
"persistent": true
},
"params.SelectedDescription": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[1].viewParams.Description"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SelectedInfo": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[2].viewParams.Information"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SelectedPath": {
"paramDirection": "input",
"persistent": true
},
"params.SelectedRow": {
"onChange": {
"enabled": null,
"script": "\tfrom SymbolLibrary import search_items\n\tsystem.perspective.print(currentValue.value)\n\titems \u003d [{\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t\t\t},\n\t\t\t\t\t\"instancePosition\": {},\n\t\t\t\t\t\"forceRunning\": 3,\n\t\t\t\t\t\"forceFault\": None,\n\t\t\t\t\"Path\": item} for item in search_items(self.params.SymbolLibrary,currentValue.value)]\n\tsystem.perspective.print(items)\n\tself.params.FilteredViews \u003d items\n\t\n\t"
},
"paramDirection": "inout",
"persistent": true
},
"params.SymbolDetails": {
"binding": {
"config": {
"path": ""
},
"enabled": false,
"transforms": [
{
"code": "\tfrom SymbolLibrary import library_items\n\treturn library_items",
"type": "script"
}
],
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SymbolLibrary": {
"binding": {
"config": {
"path": "/root/Dashboard.props.widgets[3].viewParams.SymbolLibrary"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 786,
"width": 1196
}
},
"root": {
"children": [
{
"events": {
"dom": {
"onDoubleClick": {
"config": {
"draggable": true,
"id": "editItem",
"modal": false,
"overlayDismiss": false,
"resizable": true,
"showCloseIcon": true,
"type": "open",
"viewParams": {
"btnTextPrimary": "Submit Changes",
"btnTextSecondary": "",
"editField1": "{view.params.SelectedCategory}",
"editField2": "{view.params.SelectedInfo}",
"editField3": "{view.params.SelectedDescription}",
"field1Description": "Category",
"field2Description": "Information",
"field3Description": "Description",
"message": " ",
"path": "{view.params.SelectedPath}",
"showCloseBtn": "False",
"title": "Update Symbol Details"
},
"viewPath": "PopUp-Views/EditItem",
"viewportBound": false
},
"scope": "C",
"type": "popup"
}
}
},
"meta": {
"name": "Dashboard"
},
"position": {
"basis": "400px",
"grow": 1
},
"propConfig": {
"props.widgets[0].viewParams.Dataset": {
"binding": {
"config": {
"path": "view.params.Dataset"
},
"type": "property"
}
}
},
"props": {
"editingToggle": false,
"stretch": {
"rowCount": 5
},
"widgets": [
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Category"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Category",
"position": {
"columnEnd": 3,
"columnStart": 1,
"rowEnd": 3,
"rowStart": 1
},
"style": {
"classes": ""
},
"viewParams": {
"Categories": [
{
"Category": "ALL"
},
{
"Category": "Control"
},
{
"Category": "Device Status"
},
{
"Category": "Equipment Status"
},
{
"Category": "Field Device"
},
{
"Category": "Machine"
},
{
"Category": "Network"
},
{
"Category": "Not in use"
},
{
"Category": "Safety"
}
],
"SelectedRow": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Filter-View"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Description"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Description",
"position": {
"columnEnd": 9,
"columnStart": 3,
"rowEnd": 6,
"rowStart": 4
},
"style": {
"classes": ""
},
"viewParams": {
"Description": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Selected-Symbol-Description"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Information"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Information",
"position": {
"columnEnd": 3,
"columnStart": 1,
"rowEnd": 6,
"rowStart": 3
},
"style": {
"classes": ""
},
"viewParams": {
"Information": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Information-View"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Library - All Available Symbols"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Description",
"position": {
"columnEnd": 9,
"columnStart": 3,
"rowEnd": 4,
"rowStart": 1
},
"style": {
"classes": ""
},
"viewParams": {
"Dataset": [
{
"path": "Symbol-Views/Device-Views/DeviceStatus"
},
{
"path": "Symbol-Views/Device-Views/DeviceStatus_old"
},
{
"path": "Symbol-Views/Device-Views/Estop"
},
{
"path": "Symbol-Views/Equipment-Views/ARSAW"
},
{
"path": "Symbol-Views/Equipment-Views/AUS"
},
{
"path": "Symbol-Views/Equipment-Views/Camera"
},
{
"path": "Symbol-Views/Equipment-Views/ControlCabinet"
},
{
"path": "Symbol-Views/Equipment-Views/Estop"
},
{
"path": "Symbol-Views/Equipment-Views/GoodsLift"
},
{
"path": "Symbol-Views/Equipment-Views/JAM"
},
{
"path": "Symbol-Views/Equipment-Views/Light_Curtain"
},
{
"path": "Symbol-Views/Equipment-Views/Main_Panel"
},
{
"path": "Symbol-Views/Equipment-Views/Network"
},
{
"path": "Symbol-Views/Equipment-Views/Pointer"
},
{
"path": "Symbol-Views/Equipment-Views/PressureSwitch"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_End"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_Line"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical"
},
{
"path": "Symbol-Views/Equipment-Views/RFID"
},
{
"path": "Symbol-Views/Equipment-Views/Robot"
},
{
"path": "Symbol-Views/Equipment-Views/SLAMs"
},
{
"path": "Symbol-Views/Equipment-Views/SafetyGate"
},
{
"path": "Symbol-Views/Equipment-Views/Stacker_Destacker"
},
{
"path": "Symbol-Views/Equipment-Views/Status"
},
{
"path": "Symbol-Views/Equipment-Views/StatusNonPowered"
},
{
"path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS"
},
{
"path": "Symbol-Views/Equipment-Views/Status_NS"
},
{
"path": "Symbol-Views/Equipment-Views/THEA"
},
{
"path": "Symbol-Views/Equipment-Views/Test"
}
],
"FilteredViews": [
{
"Path": "Symbol-Views/Equipment-Views/ARSAW",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/AUS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Camera",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/CognexCamera",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/ControlCabinet",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/DeviceStatus",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/DeviceStatus_old",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/Estop",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Estop",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/GoodsLift",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/JAM",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Light_Curtain",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Main_Panel",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Network",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Pointer",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PressureSwitch",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_End",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_Line",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/RFID",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Robot",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/SLAMs",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/SafetyGate",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Stacker_Destacker",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Status",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/StatusNonPowered",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Status_NS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/THEA",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
}
],
"SelectedValue": "",
"SymbolLibrary": "",
"key": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Icons-View"
}
]
},
"type": "ia.display.dashboard"
}
],
"meta": {
"name": "root"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "UserClickInfo",
"pageScope": true,
"script": "\tfrom pprint import pformat\n\tSymbolPath \u003d payload[\"UserClickPath\"]\n\tsystem.perspective.print(pformat(self.view.params.SymbolLibrary[SymbolPath]))\n\tself.view.params.SelectedInfo \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027info\u0027]\n\tself.view.params.SelectedDescription \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027description\u0027]\n\tself.view.params.SelectedPath \u003d SymbolPath \n\tself.view.params.SelectedCategory \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027category\u0027]\n\tsystem.perspective.print(SymbolPath)\n",
"sessionScope": false,
"viewScope": false
},
{
"messageType": "UserClickCategory",
"pageScope": true,
"script": "\n\tSelectedRow \u003d payload[\"UserClickData\"]\n\tself.view.params.SelectedRow \u003d SelectedRow",
"sessionScope": false,
"viewScope": false
},
{
"messageType": "UserClickRefresh",
"pageScope": true,
"script": "\tfrom SymbolLibrary import list_categories, fetch_library\n\t\n\t#Get all Symbol Views and write them to tags\n\tproject_info \u003d system.perspective.getProjectInfo()\n\tviews \u003d project_info.get(\u0027views\u0027,[])\n\t# - Define criterias\n\tfilter_criterion \u003d \"Symbol-Views\"\n\tfilter_criterion2 \u003d \"Symbol-Library-Views\"\n\tfilter_criterion3 \u003d \"Controller-Views\"\n\tfilter_criterion4 \u003d \"Symbol-Views/Equipment-Views/Test\"\n\t# - Filter views that are not necessary for the symbol library and ensure the correct path\n\tfiltered_views \u003d [\n\t\tview for view in views \n\t\tif filter_criterion in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion2 in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion3 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\tand not filter_criterion4 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\t]\n\t# - Create JSON from the list \n\tjson_structure \u003d []\n\tsymbol_view_list \u003d []\n\tfor view in filtered_views:\n\t\tinstance \u003d {\n\t\t\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t},\n\t\t\t\"instancePosition\": {},\n\t\t\t\"Path\": view.get(\u0027path\u0027,\u0027\u0027),\n\t\t\t\"forceRunning\": 3,\n\t\t\t\"forceFault\": None\n\t\t}\n\t\tjson_structure.append(instance)\n\t\tsymbol_view_list.append(view.get(\u0027path\u0027,\u0027\u0027))\n\tjson_structure.sort(key \u003d lambda x:x[\u0027Path\u0027].split(\"/\")[len(x[\u0027Path\u0027].split(\"/\"))-1])\t\n\t# - Encode JSON for igniton variables to populate correctly\n\tjson_result \u003d system.util.jsonEncode(json_structure)\n\tself.view.params.Dataset \u003d filtered_views\n\tself.view.params.FilteredViews \u003d json_structure\n\tsystem.perspective.print(filtered_views)\n\t\n\t# - Get all Symbol Categories from JSON Dictionary\t\n\tremote_json \u003d fetch_library(username\u003dself.session.props.auth.user.userName)\n\tself.view.params.SymbolLibrary \u003d {k: v for k, v in remote_json.items() if k in symbol_view_list}\n\tcategory_data \u003d [{\"Category\": category} for category in list_categories(self.view.params.SymbolLibrary)]\n\tself.view.params.CategoryList \u003d category_data\n\tself.view.params.SelectedRow \u003d \u0027ALL\u0027\n\tself.view.params.SelectedDescription \u003d \"\"\n\tself.view.params.SelectedInfo \u003d \"\"",
"sessionScope": false,
"viewScope": false
}
]
},
"type": "ia.container.flex"
}
}