961 lines
36 KiB
Plaintext
961 lines
36 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": ""
|
|
},
|
|
"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"
|
|
}
|
|
} |