From 2abb10e8bcd5851f90e500ed58a357dcf133880e Mon Sep 17 00:00:00 2001 From: "b.makharadze" Date: Fri, 23 May 2025 12:22:38 +0400 Subject: [PATCH 01/10] MTN6-19, MTN6-20 --- .../Windows/Tabs/Lane Status/resource.json | 17 +++++++++ .../Windows/Tabs/Lane Status/thumbnail.png | Bin 0 -> 38435 bytes .../views/Windows/Tabs/Lane Status/view.json | 36 +++++++++--------- .../Tabs/Scanner History/resource.json | 17 +++++++++ .../Tabs/Scanner History/thumbnail.png | Bin 0 -> 10669 bytes .../Windows/Tabs/Scanner History/view.json | 19 +++++++-- 6 files changed, 66 insertions(+), 23 deletions(-) create mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json create mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png create mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/resource.json create mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/thumbnail.png diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json new file mode 100644 index 0000000..871da9d --- /dev/null +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-05-23T07:48:39Z" + }, + "lastModificationSignature": "722a0671776b37179bc6b1010b5a76fd340cd24d82d02e60a9164102b9021d4f" + } +} \ No newline at end of file diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9db5dd9950ea588e4279de978edc5bcc563de6 GIT binary patch literal 38435 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 Date: Mon, 26 May 2025 12:26:07 +0400 Subject: [PATCH 02/10] Fixed problems with Scanner History and changed tab functionality --- .../views/Windows/Status/view.json | 3327 +++++++++++++++-- .../views/Windows/Tabs/Lane Status/view.json | 1792 --------- .../Windows/Tabs/Scanner History/view.json | 1045 ------ .../transaction-groups/Ethernet/data.bin | Bin 6258 -> 6264 bytes 4 files changed, 2955 insertions(+), 3209 deletions(-) delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/view.json delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/view.json diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json index 214b1ed..5a814d7 100644 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json @@ -40,288 +40,2996 @@ "props": { "defaultSize": { "height": 930, - "width": 1920 + "width": 1909 } }, "root": { "children": [ - { - "meta": { - "name": "Content" - }, - "position": { - "height": 0.9613, - "width": 1, - "y": 0.043 - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "expression": "!{session.custom.show_dpm_device_view}" - }, - "type": "expr" - } - }, - "props.path": { - "binding": { - "config": { - "expression": "if(\r\n {view.custom.currentTab} \u003d \"value\",\r\n \"Windows/Tabs/Enternet Windows/Enternet\",\r\n {view.custom.currentTab}\r\n)\r\n" - }, - "type": "expr" - } - } - }, - "type": "ia.display.view" - }, { "children": [ { "children": [ { + "custom": { + "mode": "1Past 30 Minvaluevalue" + }, "meta": { - "name": "Button" + "name": "Scanner History" }, "position": { - "basis": "80px", - "grow": 1 + "basis": "893.9px" }, - "props": { - "style": { - "backgroundColor": "#C4D0D5", - "borderStyle": "none" + "propConfig": { + "custom.mode": { + "binding": { + "config": { + "expression": "{..../Status_tab.props.currentTabIndex} + {..../Period_not_Global_0/Period.props.value} + {..../Period_not_Global_0/StartTime.custom.Selected} + {..../Period_not_Global_0/EndTime.custom.Selected}" + }, + "enabled": false, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\t\n\tself.refreshBinding(\"props.data\")" + } }, - "text": "Enternet", - "textStyle": { - "color": "#000000", - "fontSize": "1.5vmin", - "fontWeight": "lighter" + "props.data": { + "binding": { + "config": { + "parameters": { + "endtime": "{..../Period_not_Global_0.custom.EndDate}", + "starttime": "{..../Period_not_Global_0.custom.StartDate}" + }, + "polling": { + "enabled": true, + "rate": "60" + }, + "queryPath": "Status/Scanner History", + "returnFormat": "dataset" + }, + "type": "query" + } } }, - "type": "ia.input.button" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tif (self.parent.custom.currentTab !\u003d \"Windows/Tabs/Enternet Windows/Enternet\"):\n\t\t\tself.parent.custom.currentTab \u003d \"Windows/Tabs/Enternet Windows/Enternet\"\n\tself.parent.parent.getChild(\"DPMs\").meta.visible \u003d False\n\tself.parent.parent.getChild(\"Content\").meta.visible \u003d True\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Enternet" - }, - "position": { - "basis": "200px", - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px", - "grow": 1 - }, "props": { - "style": { - "backgroundColor": "#C4D0D5", - "borderStyle": "none" + "columns": [ + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "t_stamp", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "", + "textAlign": "center" + }, + "title": "Date" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "date", + "resizable": true, + "sort": "descending", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 120 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "SorterName", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Sorter" + }, + "justify": "center", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 90 + }, + { + "align": "center", + "boolean": "value", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "ParcelID", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Parcel ID" + }, + "justify": "center", + "number": "value", + "numberFormat": "none", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 80 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "ScannerName", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Scanner" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 90 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "IMGID", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Img ID" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 50 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "ScanLabel", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Scan Label" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 150 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "ScanStatus", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Scan Status" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 100 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Length", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Length (In)" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 70 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "Tray", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Trays (#)" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 60 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "AssignmentScanHist", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Assigment" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 70 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "DivertStatus", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Divert Status" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 50 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "DEST_REQ", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Req Dest" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 70 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "ACTUAL_DEST", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Actual Dest" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 70 + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "SortCode", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Sort Code" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": 150 + } + ], + "filter": { + "enabled": true }, - "text": "Lane Status", - "textStyle": { - "color": "#000000", - "fontSize": "1.5vmin", - "fontWeight": "lighter" - } + "rows": { + "style": { + "textAlign": "center" + } + }, + "sortOrder": [ + "t_stamp" + ], + "style": { + "overflow": "visible" + }, + "virtualized": false }, - "type": "ia.input.button" + "type": "ia.display.table" } ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tself.parent.custom.currentTab \u003d \"Windows/Tabs/Lane Status\"\n\tself.parent.parent.getChild(\"DPMs\").meta.visible \u003d False" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Lane Status" - }, - "position": { - "basis": "200px", - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" - }, - { - "children": [ - { - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px", - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5", - "borderStyle": "none" - }, - "text": "Scanner History", - "textStyle": { - "color": "#000000", - "fontSize": "1.5vmin", - "fontWeight": "lighter" - } - }, - "type": "ia.input.button" - } - ], - "events": { - "dom": { - "onClick": { - "config": { - "script": "\tself.parent.custom.currentTab \u003d \"Windows/Tabs/Scanner History\"\n\tself.parent.parent.getChild(\"DPMs\").meta.visible \u003d False" - }, - "scope": "G", - "type": "script" - } - } - }, "meta": { "name": "Scanner History" }, "position": { - "basis": "200px", - "grow": 1 + "tabIndex": 2 }, "props": { + "direction": "column", "style": { - "backgroundColor": "#C4D0D5" + "overflow": "visible" } }, "type": "ia.container.flex" }, { + "children": [ + { + "custom": { + "test": 1649717949000 + }, + "meta": { + "name": "Lane Status" + }, + "position": { + "height": "100%", + "width": "100%", + "x": -1, + "y": 10 + }, + "propConfig": { + "props.query": { + "binding": { + "config": { + "expression": "now(1000)" + }, + "enabled": false, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\t\n\tfrom system import date\n\t\n\tfrom java.lang import System\n\t\n\tfrom com.inductiveautomation.ignition.common.config import BasicProperty\n\t\n\tfrom com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties\n\t\n\tp_tag \u003d BasicProperty(\"Tag\", BasicProperty().getType())\n\tp_jam \u003d BasicProperty(\"Jam\", BasicProperty().getType())\n\tp_full \u003d BasicProperty(\"Full\", BasicProperty().getType())\n\t\n\tdef testRow2(startTime,endTime,lane,count,duration,type):\n\t return {\n\t \"value\":{\n\t\t \"StartTimestamp\": startTime, \n\t\t \"EndTimestamp\": endTime,\n\t\t \"Lane\": lane,\n\t\t \"Count\": count,\n\t\t \"Duration\": duration,\n\t\t \"Type\": type\n\t\t }\n\t } \n\t\n\tdef testRow(startTime,endTime,lane,fullCount,jamCount,fullDuration,jamDuration):\n\t\t return {\n\t\t \"value\":{\n\t\t\t \"StartTimestamp\": startTime, \n\t\t\t \"EndTimestamp\": endTime,\n\t\t\t \"Lane\": lane,\n\t\t\t \"FullCount\": fullCount,\n\t\t\t \"JamCount\": jamCount,\n\t\t\t \"FullDuration\": fullDuration,\n\t\t\t \"JamDuration\": jamDuration\n\t\t\t }\n\t\t } \n \t\t \n\tdata \u003d []\n\t\n\tpar_class \u003d [(\"Jam\",\"\u003d\",\"1\"),(\"Full\",\"\u003d\",\"1\")]\n\t\n\tevents \u003d system.alarm.queryJournal(journalName\u003d\"Journal\", startDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate, \n\tendDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,state\u003d[\u0027ActiveUnacked\u0027],any_properties\u003dpar_class, includeData\u003dTrue)\n\t\t\n\t# Get a dict where the key is alarm id and the value is a list of corresponding events.\n\talarms \u003d {}\n\tfor e in events:\n\t\tif e.source in alarms: alarms[e.source].append(e)\n\t\telse: alarms[e.source] \u003d [e]\n\t\t\n\t\n\t# Get the active duration for each alarm id\n\tfor id in alarms:\n\t\tactTime \u003d None\n\t\tclrTime \u003d None\n\t\talarmEvents \u003d alarms[id]\n\t\tcount \u003d 0\n\t\ttimes \u003d []\n\t\tstartCount \u003d 0\n\t\tfor e in alarmEvents:\n\t\t\t# Get active time\n\t\t\td \u003d e.activeData\n\t\t\tif d !\u003d None and d.get(p_tag) !\u003d None:\n\t\t\t\tactTime \u003d d.timestamp\n\t\t\t\tlane \u003d d.get(p_tag)\n\t\t\t\tif d.get(p_jam) !\u003d None:\n\t\t\t\t\ttype \u003d \"Jam\"\n\t\t\t\telse:\n\t\t\t\t\ttype \u003d \"Full\"\n\t\t\t\tlane \u003d lane.replace(\"[Interroll]\",\"\")\n\t\t\t\tfirst \u003d lane.find(\"[\")\n\t\t\t\tsecond \u003d lane.find(\"]\")\n\t\t\t\tlane \u003d \"S1-CH\" + lane[first + 1:second]\n\t\t\t\tcount \u003d count + 1\n\t\t\t\ttimes.append(d.timestamp)\n\t\t\t\tstartCount \u003d 1\t\t\n\t\t\t# Get cleared time\n\t\t\tfindOutsidePeriod \u003d system.db.runQuery(\"SELECT eventtime FROM alarm_events where eventid \u003d \" + \"\u0027\" + str(e.id) + \"\u0027 AND eventtype \u003d 1\",\"MariaDB80\")\n\t\t\tif len(findOutsidePeriod) \u003e 0:\n\t\t\t\tif startCount \u003d\u003d 1:\n\t\t\t\t\ttimes.append(date.toMillis(findOutsidePeriod[0][0]))\n\t\t\t\tclrTime \u003d date.toMillis(findOutsidePeriod[0][0])\n\t\t# Populate Table\n\t\tu \u003d 0\t\t\t\n\t\tduration \u003d 0\n\t\tendTime \u003d \"\"\n\t\tif len(times) \u003e 0:\n\t\t\tif len(times) % 2 \u003d\u003d 0:\n\t\t\t\twhile u \u003c len(times): \n\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\n\t\t\t\tendTime \u003d times[-1]\n\t\t\telse:\n\t\t\t\twhile u \u003c len(times):\n\t\t\t\t\tif u !\u003d len(times) - 1:\n\t\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\telse:\n\t\t\t\t\t\tduration \u003d duration + ((date.toMillis(date.now()) - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\t\n\t\t\tif actTime !\u003d None:\t\n\t\t\t\tdata.append(testRow2(\n\t\t\t\t#Start Time\t \n\t\t\t\ttimes[0],\n\t\t\t\t#End Time\n\t\t\t\tendTime,\n\t\t\t\t#Lane\n\t\t\t\tlane,\n\t\t\t\t#Count\n\t\t\t\tcount,\n\t\t\t\t#Duration\n\t\t\t\tdate.format(date.addSeconds(date.midnight(date.now()),duration),\"HH:mm:ss\"),\n\t\t\t\t#Type\n\t\t\t\ttype))\n\t\t\n\tdata2 \u003d []\n\t\n\tfor i in range(110):\n\t\tstartTime \u003d \"\"\n\t\tendTime \u003d \"\"\n\t\tlane \u003d \"S3-CH\" + str(i + 1)\n\t\tfullCount \u003d 0\n\t\tjamCount \u003d 0\n\t\tfullDuration \u003d \"00:00:00\"\n\t\tjamDuration \u003d \"00:00:00\"\n\t\talarming \u003d 0\n\t\tjamEndStamp \u003d \"\"\n\t\tfullEndStamp \u003d \"\"\n\t\tjamStartStamp \u003d \"\"\n\t\tfullStartStamp \u003d \"\"\n\t\tfor d in data:\n\t\t\tif d[\"value\"][\"Lane\"] \u003d\u003d \"S1-CH\" + str(i + 1):\n\t\t\t\t\n\t\t\t\tif d[\"value\"][\"Type\"] \u003d\u003d \"Jam\":\n\t\t\t\t\tjamCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tjamDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tjamEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tjamStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\telse:\n\t\t\t\t\tfullCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tfullDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tfullEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tfullStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\tif (jamStartStamp !\u003d \"\" and jamEndStamp \u003d\u003d \"\") or (fullStartStamp !\u003d \"\" and fullEndStamp \u003d\u003d \"\"):\n\t\t\t\t\tendTime \u003d \"\"\n\t\t\t\telse:\n\t\t\t\t\tif (jamEndStamp \u003e fullEndStamp) and jamEndStamp !\u003d \"\":\n\t\t\t\t\t\tendTime \u003d jamEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\telif fullEndStamp !\u003d \"\":\t\t\t\n\t\t\t\t\t\tendTime \u003d fullEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\tif jamStartStamp \u003c fullStartStamp:\n\t\t\t\t\tstartTime \u003d jamStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\telse:\n\t\t\t\t\tstartTime \u003d fullStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\tdata2.append(testRow(\n\t\t\t#Start Time\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tlane,\n\t\t\tfullCount,\n\t\t\tjamCount,\n\t\t\tfullDuration,\n\t\t\tjamDuration))\n\t\t\t\t\t\n\t\t\t\t\n\tself.props.data \u003d data2" + } + } + }, + "props": { + "columns": [ + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "StartTimestamp", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Start Timestamp" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "EndTimestamp", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "End Timestamp" + }, + "justify": "center", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "date", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "value", + "dateFormat": "MM/DD/YYYY HH:mm:ss", + "editable": false, + "field": "Lane", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Lane" + }, + "justify": "center", + "number": "value", + "numberFormat": "none", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "FullCount", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Full (#)" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "JamCount", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Jam (#)" + }, + "justify": "center", + "number": "value", + "numberFormat": "0,0.##", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "none", + "editable": false, + "field": "FullDuration", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Full Duration" + }, + "justify": "center", + "number": "value", + "numberFormat": "none", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, + { + "align": "center", + "boolean": "value", + "dateFormat": "none", + "editable": false, + "field": "JamDuration", + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "Jam Duration" + }, + "justify": "center", + "number": "value", + "numberFormat": "00:00:00", + "progressBar": { + "bar": { + "color": "", + "style": { + "classes": "" + } + }, + "max": 100, + "min": 0, + "track": { + "color": "", + "style": { + "classes": "" + } + }, + "value": { + "enabled": true, + "format": "0,0.##", + "justify": "center", + "style": { + "classes": "" + } + } + }, + "render": "auto", + "resizable": true, + "sort": "none", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + } + ], + "data": [ + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH1", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH2", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH3", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH4", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH5", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH6", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH7", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH8", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH9", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH10", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH11", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH12", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH13", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH14", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH15", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH16", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH17", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH18", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH19", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH20", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH21", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH22", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH23", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH24", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH25", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH26", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH27", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH28", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH29", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH30", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH31", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH32", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH33", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH34", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH35", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH36", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH37", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH38", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH39", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH40", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH41", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH42", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH43", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH44", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH45", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH46", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH47", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH48", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH49", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH50", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH51", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH52", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH53", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH54", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH55", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH56", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH57", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH58", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH59", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH60", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH61", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH62", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH63", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH64", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH65", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH66", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH67", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH68", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH69", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH70", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH71", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH72", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH73", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH74", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH75", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH76", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH77", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH78", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH79", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH80", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH81", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH82", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH83", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH84", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH85", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH86", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH87", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH88", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH89", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH90", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH91", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH92", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH93", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH94", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH95", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH96", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH97", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH98", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH99", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH100", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH101", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH102", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH103", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH104", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 1, + "JamDuration": "00:07:19", + "Lane": "S3-CH105", + "StartTimestamp": "2023-11-06 11:29:53" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH106", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 1, + "JamDuration": "00:07:20", + "Lane": "S3-CH107", + "StartTimestamp": "2023-11-06 11:29:53" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH108", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH109", + "StartTimestamp": "" + } + }, + { + "value": { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH110", + "StartTimestamp": "" + } + } + ], + "filter": { + "enabled": true + }, + "pager": { + "activeOption": 5, + "bottom": false, + "initialOption": 20, + "options": [ + 5, + 10, + 23, + 50, + 100 + ] + }, + "query": { + "$": [ + "ts", + 192, + 1748247880155 + ], + "$ts": 1748247880155 + }, + "rows": { + "style": { + "textAlign": "center" + } + }, + "selection": { + "data": [ + { + "EndTimestamp": "", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S3-CH16", + "StartTimestamp": "" + } + ], + "selectedColumn": "FullCount", + "selectedRow": 15 + }, + "virtualized": false + }, + "type": "ia.display.table" + } + ], "meta": { - "name": "Button5" + "name": "Lane Status" }, "position": { - "grow": 1 + "tabIndex": 1 }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" + "type": "ia.container.coord" }, { - "meta": { - "name": "Button6" - }, - "position": { - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.parent.custom.TabName \u003d \"DPMs\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Content" + }, + "position": { + "height": 891, + "width": 1898, + "x": 2.89, + "y": 0.02 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "!{session.custom.show_dpm_device_view} \u0026\u0026 !{session.custom.show_dpm_view}" + }, + "type": "expr" + } + } + }, + "props": { + "path": "Windows/Tabs/Enternet Windows/Enternet" + }, + "type": "ia.display.view" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tself.parent.custom.TabName \u003d \"Devices\"" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "DPMs" + }, + "position": { + "height": 893, + "width": 1907, + "y": 0.44 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "path": "session.custom.show_dpm_view" + }, + "type": "property" + } + }, + "props.path": { + "binding": { + "config": { + "path": "session.custom.dpm_view_path" + }, + "type": "property" + } + }, + "props.style.opacity": { + "binding": { + "config": { + "path": "this.meta.visible" + }, + "transforms": [ + { + "fallback": null, + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": 100 + }, + { + "input": false, + "output": 0 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + } + }, + "type": "ia.display.view" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tif self.parent.custom.TabName \u003d\u003d \"DPMs\":\n\t\tself.session.custom.show_dpm_view \u003d False\n\t\tself.session.custom.show_dpm_device_view \u003d False\n\tif self.parent.custom.TabName \u003d\u003d \"Devices\":\n\t\tself.session.custom.show_dpm_device_view \u003d False\n\t\tself.session.custom.show_dpm_view \u003d False" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "BACK" + }, + "position": { + "height": 41, + "width": 142, + "x": 15.889999999999986, + "y": 836.02 + }, + "propConfig": { + "meta.visible": { + "binding": { + "config": { + "expression": "{session.custom.show_dpm_device_view} || {session.custom.show_dpm_view} " + }, + "type": "expr" + } + } + }, + "props": { + "style": { + "backgroundColor": "#D7D7D7", + "borderStyle": "solid", + "borderWidth": 1, + "color": "#000000" + }, + "text": "BACK" + }, + "type": "ia.input.button" } + ], + "custom": { + "TabName": "value" }, - "type": "ia.container.flex" - }, - { "meta": { - "name": "Button7" + "name": "Enternet" }, - "position": { - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Button8" - }, - "position": { - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Button9" - }, - "position": { - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Button10" - }, - "position": { - "grow": 1 - }, - "props": { - "style": { - "backgroundColor": "#C4D0D5" - } - }, - "type": "ia.container.flex" + "type": "ia.container.coord" } ], - "custom": { - "currentTab": "Windows/Tabs/Enternet Windows/Enternet" - }, "meta": { - "name": "Header" + "name": "Status_tab" }, "position": { - "height": 0.043, - "width": 1 + "height": 1.0011, + "width": 1.0005, + "y": -0.0011 }, - "type": "ia.container.flex" + "props": { + "currentTabIndex": 1, + "tabs": [ + "Enternet", + "Lane Status", + "Scanner History" + ] + }, + "type": "ia.container.tab" }, { "custom": { @@ -1789,10 +4497,10 @@ "name": "ExportToCSV" }, "position": { - "height": 0.0269, + "height": 0.0258, "width": 0.0625, "x": 0.8974, - "y": 0.0084 + "y": 0.004 }, "props": { "mode": "percent", @@ -1938,7 +4646,6 @@ "config": { "expression": "{../Period.props.value} \u003d \"Custom\"" }, - "enabled": false, "type": "expr" } }, @@ -1947,7 +4654,6 @@ "config": { "expression": "now()" }, - "enabled": false, "type": "expr" } }, @@ -1956,7 +4662,6 @@ "config": { "path": "../Period.props.value" }, - "enabled": false, "transforms": [ { "fallback": "todate(now())", @@ -2035,36 +4740,19 @@ }, "props": { "dismissOnSelect": false, - "enabled": false, - "formattedValue": "Apr 25, 2025 2:56 PM", + "formattedValue": "May 26, 2025 10:07 AM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", "time": "12:00 AM" }, - "maxDate": { - "$": [ - "ts", - 192, - 1745580359823 - ], - "$ts": 1745580359823 - }, - "startDate": { - "$": [ - "ts", - 201, - 1745580368842 - ], - "$ts": 1745578568000 - }, "value": { "$": [ "ts", 192, - 1745580368842 + 1748241439441 ], - "$ts": 1745578568000 + "$ts": 1748239639000 } }, "type": "ia.input.date-time-input" @@ -2120,7 +4808,6 @@ "config": { "expression": "{../Period.props.value} \u003d \"Custom\"" }, - "enabled": false, "type": "expr" } }, @@ -2129,7 +4816,6 @@ "config": { "path": "../Period.props.value" }, - "enabled": false, "transforms": [ { "fallback": "{this.props.value}", @@ -2200,7 +4886,6 @@ "config": { "expression": "if(dateDiff({../StartTime.props.value},now(),\"day\") \u003c 7, now(),dateArithmetic({../StartTime.props.value}, 7, \"days\"))" }, - "enabled": false, "type": "expr" } }, @@ -2209,83 +4894,38 @@ "config": { "expression": "{../StartTime.props.value}" }, - "enabled": false, "type": "expr" } } }, "props": { "dismissOnSelect": false, - "enabled": false, - "endDate": { - "$": [ - "ts", - 201, - 1745580379838 - ], - "$ts": 1745580379000 - }, - "formattedValue": "Apr 25, 2025 3:26 PM", + "formattedValue": "May 26, 2025 10:37 AM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", "time": "1:37 PM" }, - "maxDate": { - "$": [ - "ts", - 192, - 1745580390851 - ], - "$ts": 1745580390851 - }, - "minDate": { - "$": [ - "ts", - 192, - 1745580368842 - ], - "$ts": 1745578568000 - }, "value": { "$": [ "ts", 192, - 1745580379838 + 1748241439441 ], - "$ts": 1745580379000 + "$ts": 1748241439000 } }, "type": "ia.input.date-time-input" } ], - "custom": { - "EndDate": { - "$": [ - "ts", - 192, - 1745580348821 - ], - "$ts": 1745580348000 - }, - "StartDate": { - "$": [ - "ts", - 192, - 1745580344826 - ], - "$ts": 1745578544000 - } - }, "meta": { - "name": "Period_not_Global_0", - "visible": false + "name": "Period_not_Global_0" }, "position": { - "height": 0.0269, - "width": 0.413, - "x": 0.4821, - "y": 0.0067 + "height": 0.0226, + "width": 0.449, + "x": 0.4462, + "y": 0.0058 }, "propConfig": { "custom.EndDate": { @@ -2293,7 +4933,6 @@ "config": { "path": "./EndTime.props.value" }, - "enabled": false, "type": "property" } }, @@ -2302,14 +4941,13 @@ "config": { "path": "./StartTime.props.value" }, - "enabled": false, "type": "property" } }, "meta.visible": { "binding": { "config": { - "expression": "{../Status_tab.props.currentTabIndex} \u003d 1 | {../Status_tab.props.currentTabIndex} \u003d 2" + "expression": "{../Header.props.currentTabIndex}\u003d 1 | {../Header.props.currentTabIndex} \u003d 2" }, "enabled": false, "type": "expr" @@ -2317,61 +4955,6 @@ } }, "type": "ia.container.flex" - }, - { - "meta": { - "name": "DPMs" - }, - "position": { - "height": 0.9613, - "width": 1, - "y": 0.043 - }, - "propConfig": { - "meta.visible": { - "binding": { - "config": { - "path": "session.custom.show_dpm_view" - }, - "type": "property" - } - }, - "props.path": { - "binding": { - "config": { - "path": "session.custom.dpm_view_path" - }, - "type": "property" - } - }, - "props.style.opacity": { - "binding": { - "config": { - "path": "this.meta.visible" - }, - "transforms": [ - { - "fallback": null, - "inputType": "scalar", - "mappings": [ - { - "input": true, - "output": 100 - }, - { - "input": false, - "output": 0 - } - ], - "outputType": "scalar", - "type": "map" - } - ], - "type": "property" - } - } - }, - "type": "ia.display.view" } ], "meta": { diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/view.json deleted file mode 100644 index 58ee0b4..0000000 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/view.json +++ /dev/null @@ -1,1792 +0,0 @@ -{ - "custom": { - "currentView": "Windows/Tabs/Enternet Windows/DPMs/MCM01-DPM" - }, - "params": {}, - "propConfig": { - "custom.currentView": { - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 894, - "width": 1920 - } - }, - "root": { - "children": [ - { - "custom": { - "test": 1649717949000 - }, - "meta": { - "name": "Lane Status" - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "props.query": { - "binding": { - "config": { - "expression": "now(1000)" - }, - "enabled": false, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\t\n\tfrom system import date\n\t\n\tfrom java.lang import System\n\t\n\tfrom com.inductiveautomation.ignition.common.config import BasicProperty\n\t\n\tfrom com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties\n\t\n\tp_tag \u003d BasicProperty(\"Tag\", BasicProperty().getType())\n\tp_jam \u003d BasicProperty(\"Jam\", BasicProperty().getType())\n\tp_full \u003d BasicProperty(\"Full\", BasicProperty().getType())\n\t\n\tdef testRow2(startTime,endTime,lane,count,duration,type):\n\t return {\n\t \"value\":{\n\t\t \"StartTimestamp\": startTime, \n\t\t \"EndTimestamp\": endTime,\n\t\t \"Lane\": lane,\n\t\t \"Count\": count,\n\t\t \"Duration\": duration,\n\t\t \"Type\": type\n\t\t }\n\t } \n\t\n\tdef testRow(startTime,endTime,lane,fullCount,jamCount,fullDuration,jamDuration):\n\t\t return {\n\t\t \"value\":{\n\t\t\t \"StartTimestamp\": startTime, \n\t\t\t \"EndTimestamp\": endTime,\n\t\t\t \"Lane\": lane,\n\t\t\t \"FullCount\": fullCount,\n\t\t\t \"JamCount\": jamCount,\n\t\t\t \"FullDuration\": fullDuration,\n\t\t\t \"JamDuration\": jamDuration\n\t\t\t }\n\t\t } \n \t\t \n\tdata \u003d []\n\t\n\tpar_class \u003d [(\"Jam\",\"\u003d\",\"1\"),(\"Full\",\"\u003d\",\"1\")]\n\t\n\tevents \u003d system.alarm.queryJournal(journalName\u003d\"Journal\", startDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate, \n\tendDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,state\u003d[\u0027ActiveUnacked\u0027],any_properties\u003dpar_class, includeData\u003dTrue)\n\t\t\n\t# Get a dict where the key is alarm id and the value is a list of corresponding events.\n\talarms \u003d {}\n\tfor e in events:\n\t\tif e.source in alarms: alarms[e.source].append(e)\n\t\telse: alarms[e.source] \u003d [e]\n\t\t\n\t\n\t# Get the active duration for each alarm id\n\tfor id in alarms:\n\t\tactTime \u003d None\n\t\tclrTime \u003d None\n\t\talarmEvents \u003d alarms[id]\n\t\tcount \u003d 0\n\t\ttimes \u003d []\n\t\tstartCount \u003d 0\n\t\tfor e in alarmEvents:\n\t\t\t# Get active time\n\t\t\td \u003d e.activeData\n\t\t\tif d !\u003d None and d.get(p_tag) !\u003d None:\n\t\t\t\tactTime \u003d d.timestamp\n\t\t\t\tlane \u003d d.get(p_tag)\n\t\t\t\tif d.get(p_jam) !\u003d None:\n\t\t\t\t\ttype \u003d \"Jam\"\n\t\t\t\telse:\n\t\t\t\t\ttype \u003d \"Full\"\n\t\t\t\tlane \u003d lane.replace(\"[Interroll]\",\"\")\n\t\t\t\tfirst \u003d lane.find(\"[\")\n\t\t\t\tsecond \u003d lane.find(\"]\")\n\t\t\t\tlane \u003d \"S1-CH\" + lane[first + 1:second]\n\t\t\t\tcount \u003d count + 1\n\t\t\t\ttimes.append(d.timestamp)\n\t\t\t\tstartCount \u003d 1\t\t\n\t\t\t# Get cleared time\n\t\t\tfindOutsidePeriod \u003d system.db.runQuery(\"SELECT eventtime FROM alarm_events where eventid \u003d \" + \"\u0027\" + str(e.id) + \"\u0027 AND eventtype \u003d 1\",\"MariaDB80\")\n\t\t\tif len(findOutsidePeriod) \u003e 0:\n\t\t\t\tif startCount \u003d\u003d 1:\n\t\t\t\t\ttimes.append(date.toMillis(findOutsidePeriod[0][0]))\n\t\t\t\tclrTime \u003d date.toMillis(findOutsidePeriod[0][0])\n\t\t# Populate Table\n\t\tu \u003d 0\t\t\t\n\t\tduration \u003d 0\n\t\tendTime \u003d \"\"\n\t\tif len(times) \u003e 0:\n\t\t\tif len(times) % 2 \u003d\u003d 0:\n\t\t\t\twhile u \u003c len(times): \n\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\n\t\t\t\tendTime \u003d times[-1]\n\t\t\telse:\n\t\t\t\twhile u \u003c len(times):\n\t\t\t\t\tif u !\u003d len(times) - 1:\n\t\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\telse:\n\t\t\t\t\t\tduration \u003d duration + ((date.toMillis(date.now()) - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\t\n\t\t\tif actTime !\u003d None:\t\n\t\t\t\tdata.append(testRow2(\n\t\t\t\t#Start Time\t \n\t\t\t\ttimes[0],\n\t\t\t\t#End Time\n\t\t\t\tendTime,\n\t\t\t\t#Lane\n\t\t\t\tlane,\n\t\t\t\t#Count\n\t\t\t\tcount,\n\t\t\t\t#Duration\n\t\t\t\tdate.format(date.addSeconds(date.midnight(date.now()),duration),\"HH:mm:ss\"),\n\t\t\t\t#Type\n\t\t\t\ttype))\n\t\t\n\tdata2 \u003d []\n\t\n\tfor i in range(110):\n\t\tstartTime \u003d \"\"\n\t\tendTime \u003d \"\"\n\t\tlane \u003d \"S3-CH\" + str(i + 1)\n\t\tfullCount \u003d 0\n\t\tjamCount \u003d 0\n\t\tfullDuration \u003d \"00:00:00\"\n\t\tjamDuration \u003d \"00:00:00\"\n\t\talarming \u003d 0\n\t\tjamEndStamp \u003d \"\"\n\t\tfullEndStamp \u003d \"\"\n\t\tjamStartStamp \u003d \"\"\n\t\tfullStartStamp \u003d \"\"\n\t\tfor d in data:\n\t\t\tif d[\"value\"][\"Lane\"] \u003d\u003d \"S1-CH\" + str(i + 1):\n\t\t\t\t\n\t\t\t\tif d[\"value\"][\"Type\"] \u003d\u003d \"Jam\":\n\t\t\t\t\tjamCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tjamDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tjamEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tjamStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\telse:\n\t\t\t\t\tfullCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tfullDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tfullEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tfullStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\tif (jamStartStamp !\u003d \"\" and jamEndStamp \u003d\u003d \"\") or (fullStartStamp !\u003d \"\" and fullEndStamp \u003d\u003d \"\"):\n\t\t\t\t\tendTime \u003d \"\"\n\t\t\t\telse:\n\t\t\t\t\tif (jamEndStamp \u003e fullEndStamp) and jamEndStamp !\u003d \"\":\n\t\t\t\t\t\tendTime \u003d jamEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\telif fullEndStamp !\u003d \"\":\t\t\t\n\t\t\t\t\t\tendTime \u003d fullEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\tif jamStartStamp \u003c fullStartStamp:\n\t\t\t\t\tstartTime \u003d jamStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\telse:\n\t\t\t\t\tstartTime \u003d fullStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\tdata2.append(testRow(\n\t\t\t#Start Time\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tlane,\n\t\t\tfullCount,\n\t\t\tjamCount,\n\t\t\tfullDuration,\n\t\t\tjamDuration))\n\t\t\t\t\t\n\t\t\t\t\n\tself.props.data \u003d data2" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "00:00:00", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "date", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "Lane", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Lane" - }, - "justify": "center", - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "FullCount", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Full (#)" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "JamCount", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Jam (#)" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "none", - "editable": false, - "field": "FullDuration", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Full Duration" - }, - "justify": "center", - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "none", - "editable": false, - "field": "JamDuration", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Jam Duration" - }, - "justify": "center", - "number": "value", - "numberFormat": "00:00:00", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - } - ], - "data": [ - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH1", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH2", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH3", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH4", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH5", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH6", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH7", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH8", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH9", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH10", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH11", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH12", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH13", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH14", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH15", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH17", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH18", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH19", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH20", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH21", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH22", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH23", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH24", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH25", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH26", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH27", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH28", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH29", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH30", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH31", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH32", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH33", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH34", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH35", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH36", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH37", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH38", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH39", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH40", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH41", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH42", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH43", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH44", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH45", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH46", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH47", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH48", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH49", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH50", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH51", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH52", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH53", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH54", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH55", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH56", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH57", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH58", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH59", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH60", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH61", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH62", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH63", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH64", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH65", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH66", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH67", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH68", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH69", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH70", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH71", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH72", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH73", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH74", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH75", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH76", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH77", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH78", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH79", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH80", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH81", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH82", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH83", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH84", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH85", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH86", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH87", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH88", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH89", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH90", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH91", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH92", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH93", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH94", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH95", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH96", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH97", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH98", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH99", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH100", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH101", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH102", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH103", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH104", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 1, - "JamDuration": "00:07:19", - "Lane": "S3-CH105", - "StartTimestamp": "2023-11-06 11:29:53" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH106", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 1, - "JamDuration": "00:07:20", - "Lane": "S3-CH107", - "StartTimestamp": "2023-11-06 11:29:53" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH108", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH109", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH110", - "StartTimestamp": "" - } - } - ], - "filter": { - "enabled": true - }, - "pager": { - "activeOption": 5, - "bottom": false, - "initialOption": 20, - "options": [ - 5, - 10, - 23, - 50, - 100 - ] - }, - "query": { - "$": [ - "ts", - 192, - 1747985866967 - ], - "$ts": 1747985866967 - }, - "rows": { - "style": { - "textAlign": "center" - } - }, - "selection": { - "data": [ - { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - ], - "selectedColumn": "FullCount", - "selectedRow": 15 - }, - "virtualized": false - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "root" - }, - "props": { - "mode": "percent" - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/view.json deleted file mode 100644 index affa5a5..0000000 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/view.json +++ /dev/null @@ -1,1045 +0,0 @@ -{ - "custom": { - "currentView": "Windows/Tabs/Enternet Windows/DPMs/MCM01-DPM" - }, - "params": {}, - "propConfig": { - "custom.currentView": { - "persistent": true - } - }, - "props": { - "defaultSize": { - "height": 894, - "width": 1920 - } - }, - "root": { - "children": [ - { - "custom": { - "mode": "1Past 30 Minvaluevalue" - }, - "meta": { - "name": "Scanner History" - }, - "position": { - "height": 1, - "width": 1 - }, - "propConfig": { - "custom.mode": { - "binding": { - "config": { - "expression": "{..../Status_tab.props.currentTabIndex} + {..../Period_not_Global_0/Period.props.value} + {..../Period_not_Global_0/StartTime.custom.Selected} + {..../Period_not_Global_0/EndTime.custom.Selected}" - }, - "enabled": false, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\t\n\tself.refreshBinding(\"props.data\")" - } - }, - "props.data": { - "binding": { - "config": { - "parameters": { - "endtime": "{..../Period_not_Global_0.custom.EndDate}", - "starttime": "{..../Period_not_Global_0.custom.StartDate}" - }, - "polling": { - "enabled": true, - "rate": "60" - }, - "queryPath": "Status/Scanner History", - "returnFormat": "dataset" - }, - "type": "query" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "t_stamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "", - "textAlign": "center" - }, - "title": "Date" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "date", - "resizable": true, - "sort": "descending", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 120 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "SorterName", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Sorter" - }, - "justify": "center", - "number": "value", - "numberFormat": "00:00:00", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 90 - }, - { - "align": "center", - "boolean": "value", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "ParcelID", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Parcel ID" - }, - "justify": "center", - "number": "value", - "numberFormat": "none", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 80 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "ScannerName", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Scanner" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 90 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "IMGID", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Img ID" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 50 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "ScanLabel", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Scan Label" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "ScanStatus", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Scan Status" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 100 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Length", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Length (In)" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "Tray", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Trays (#)" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 60 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "AssignmentScanHist", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Assigment" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "DivertStatus", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Divert Status" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 50 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "DEST_REQ", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Req Dest" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "ACTUAL_DEST", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Actual Dest" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 70 - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "SortCode", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Sort Code" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": 150 - } - ], - "filter": { - "enabled": true - }, - "rows": { - "style": { - "textAlign": "center" - } - }, - "sortOrder": [ - "t_stamp" - ], - "style": { - "overflow": "visible" - }, - "virtualized": false - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "root" - }, - "props": { - "mode": "percent" - }, - "type": "ia.container.coord" - } -} \ No newline at end of file diff --git a/MTN6_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Ethernet/data.bin b/MTN6_SCADA/com.inductiveautomation.sqlbridge/transaction-groups/Ethernet/data.bin index 4fa9b6cf0a6495a5be8de13ebd41b122d94e2bea..cfb3fb622e88ed4d9570c65800da243b5f450f90 100644 GIT binary patch literal 6264 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 literal 6258 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 Date: Wed, 28 May 2025 17:46:58 +0400 Subject: [PATCH 03/10] Fix Lane Status --- .../views/Windows/Status/view.json | 1831 +++++------------ .../named-query/Status/Lane Status/query.sql | 138 ++ .../Status/Lane Status/resource.json | 46 + 3 files changed, 675 insertions(+), 1340 deletions(-) create mode 100644 MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql create mode 100644 MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json index 5a814d7..04f715c 100644 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json @@ -1,10 +1,10 @@ { "custom": { - "currentTab": "Windows/Tabs/Enternet Windows/Enternet" + "currentTab": null }, "params": { - "Tab_ID": null, - "Table": null + "Tab_ID": 1, + "Table": "Status_tab" }, "propConfig": { "custom.currentTab": { @@ -40,7 +40,7 @@ "props": { "defaultSize": { "height": 930, - "width": 1909 + "width": 1905 } }, "root": { @@ -1090,10 +1090,9 @@ "name": "Lane Status" }, "position": { - "height": "100%", + "height": 894, "width": "100%", - "x": -1, - "y": 10 + "x": -1 }, "propConfig": { "props.query": { @@ -1101,153 +1100,16 @@ "config": { "expression": "now(1000)" }, - "enabled": false, "type": "expr" }, "onChange": { "enabled": null, - "script": "\t\n\tfrom system import date\n\t\n\tfrom java.lang import System\n\t\n\tfrom com.inductiveautomation.ignition.common.config import BasicProperty\n\t\n\tfrom com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties\n\t\n\tp_tag \u003d BasicProperty(\"Tag\", BasicProperty().getType())\n\tp_jam \u003d BasicProperty(\"Jam\", BasicProperty().getType())\n\tp_full \u003d BasicProperty(\"Full\", BasicProperty().getType())\n\t\n\tdef testRow2(startTime,endTime,lane,count,duration,type):\n\t return {\n\t \"value\":{\n\t\t \"StartTimestamp\": startTime, \n\t\t \"EndTimestamp\": endTime,\n\t\t \"Lane\": lane,\n\t\t \"Count\": count,\n\t\t \"Duration\": duration,\n\t\t \"Type\": type\n\t\t }\n\t } \n\t\n\tdef testRow(startTime,endTime,lane,fullCount,jamCount,fullDuration,jamDuration):\n\t\t return {\n\t\t \"value\":{\n\t\t\t \"StartTimestamp\": startTime, \n\t\t\t \"EndTimestamp\": endTime,\n\t\t\t \"Lane\": lane,\n\t\t\t \"FullCount\": fullCount,\n\t\t\t \"JamCount\": jamCount,\n\t\t\t \"FullDuration\": fullDuration,\n\t\t\t \"JamDuration\": jamDuration\n\t\t\t }\n\t\t } \n \t\t \n\tdata \u003d []\n\t\n\tpar_class \u003d [(\"Jam\",\"\u003d\",\"1\"),(\"Full\",\"\u003d\",\"1\")]\n\t\n\tevents \u003d system.alarm.queryJournal(journalName\u003d\"Journal\", startDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate, \n\tendDate\u003dself.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate,state\u003d[\u0027ActiveUnacked\u0027],any_properties\u003dpar_class, includeData\u003dTrue)\n\t\t\n\t# Get a dict where the key is alarm id and the value is a list of corresponding events.\n\talarms \u003d {}\n\tfor e in events:\n\t\tif e.source in alarms: alarms[e.source].append(e)\n\t\telse: alarms[e.source] \u003d [e]\n\t\t\n\t\n\t# Get the active duration for each alarm id\n\tfor id in alarms:\n\t\tactTime \u003d None\n\t\tclrTime \u003d None\n\t\talarmEvents \u003d alarms[id]\n\t\tcount \u003d 0\n\t\ttimes \u003d []\n\t\tstartCount \u003d 0\n\t\tfor e in alarmEvents:\n\t\t\t# Get active time\n\t\t\td \u003d e.activeData\n\t\t\tif d !\u003d None and d.get(p_tag) !\u003d None:\n\t\t\t\tactTime \u003d d.timestamp\n\t\t\t\tlane \u003d d.get(p_tag)\n\t\t\t\tif d.get(p_jam) !\u003d None:\n\t\t\t\t\ttype \u003d \"Jam\"\n\t\t\t\telse:\n\t\t\t\t\ttype \u003d \"Full\"\n\t\t\t\tlane \u003d lane.replace(\"[Interroll]\",\"\")\n\t\t\t\tfirst \u003d lane.find(\"[\")\n\t\t\t\tsecond \u003d lane.find(\"]\")\n\t\t\t\tlane \u003d \"S1-CH\" + lane[first + 1:second]\n\t\t\t\tcount \u003d count + 1\n\t\t\t\ttimes.append(d.timestamp)\n\t\t\t\tstartCount \u003d 1\t\t\n\t\t\t# Get cleared time\n\t\t\tfindOutsidePeriod \u003d system.db.runQuery(\"SELECT eventtime FROM alarm_events where eventid \u003d \" + \"\u0027\" + str(e.id) + \"\u0027 AND eventtype \u003d 1\",\"MariaDB80\")\n\t\t\tif len(findOutsidePeriod) \u003e 0:\n\t\t\t\tif startCount \u003d\u003d 1:\n\t\t\t\t\ttimes.append(date.toMillis(findOutsidePeriod[0][0]))\n\t\t\t\tclrTime \u003d date.toMillis(findOutsidePeriod[0][0])\n\t\t# Populate Table\n\t\tu \u003d 0\t\t\t\n\t\tduration \u003d 0\n\t\tendTime \u003d \"\"\n\t\tif len(times) \u003e 0:\n\t\t\tif len(times) % 2 \u003d\u003d 0:\n\t\t\t\twhile u \u003c len(times): \n\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\n\t\t\t\tendTime \u003d times[-1]\n\t\t\telse:\n\t\t\t\twhile u \u003c len(times):\n\t\t\t\t\tif u !\u003d len(times) - 1:\n\t\t\t\t\t\tduration \u003d duration + ((times[u+1] - times[u]) / 1000)\n\t\t\t\t\telse:\n\t\t\t\t\t\tduration \u003d duration + ((date.toMillis(date.now()) - times[u]) / 1000)\n\t\t\t\t\tu \u003d u + 2\t\n\t\t\tif actTime !\u003d None:\t\n\t\t\t\tdata.append(testRow2(\n\t\t\t\t#Start Time\t \n\t\t\t\ttimes[0],\n\t\t\t\t#End Time\n\t\t\t\tendTime,\n\t\t\t\t#Lane\n\t\t\t\tlane,\n\t\t\t\t#Count\n\t\t\t\tcount,\n\t\t\t\t#Duration\n\t\t\t\tdate.format(date.addSeconds(date.midnight(date.now()),duration),\"HH:mm:ss\"),\n\t\t\t\t#Type\n\t\t\t\ttype))\n\t\t\n\tdata2 \u003d []\n\t\n\tfor i in range(110):\n\t\tstartTime \u003d \"\"\n\t\tendTime \u003d \"\"\n\t\tlane \u003d \"S3-CH\" + str(i + 1)\n\t\tfullCount \u003d 0\n\t\tjamCount \u003d 0\n\t\tfullDuration \u003d \"00:00:00\"\n\t\tjamDuration \u003d \"00:00:00\"\n\t\talarming \u003d 0\n\t\tjamEndStamp \u003d \"\"\n\t\tfullEndStamp \u003d \"\"\n\t\tjamStartStamp \u003d \"\"\n\t\tfullStartStamp \u003d \"\"\n\t\tfor d in data:\n\t\t\tif d[\"value\"][\"Lane\"] \u003d\u003d \"S1-CH\" + str(i + 1):\n\t\t\t\t\n\t\t\t\tif d[\"value\"][\"Type\"] \u003d\u003d \"Jam\":\n\t\t\t\t\tjamCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tjamDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tjamEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tjamStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\telse:\n\t\t\t\t\tfullCount \u003d d[\"value\"][\"Count\"]\n\t\t\t\t\tfullDuration \u003d d[\"value\"][\"Duration\"]\n\t\t\t\t\tfullEndStamp \u003d d[\"value\"][\"EndTimestamp\"]\n\t\t\t\t\tfullStartStamp \u003d d[\"value\"][\"StartTimestamp\"]\n\t\t\t\tif (jamStartStamp !\u003d \"\" and jamEndStamp \u003d\u003d \"\") or (fullStartStamp !\u003d \"\" and fullEndStamp \u003d\u003d \"\"):\n\t\t\t\t\tendTime \u003d \"\"\n\t\t\t\telse:\n\t\t\t\t\tif (jamEndStamp \u003e fullEndStamp) and jamEndStamp !\u003d \"\":\n\t\t\t\t\t\tendTime \u003d jamEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\telif fullEndStamp !\u003d \"\":\t\t\t\n\t\t\t\t\t\tendTime \u003d fullEndStamp\n\t\t\t\t\t\tendTime \u003d date.format(date.fromMillis(endTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\tif jamStartStamp \u003c fullStartStamp:\n\t\t\t\t\tstartTime \u003d jamStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\telse:\n\t\t\t\t\tstartTime \u003d fullStartStamp\n\t\t\t\t\tstartTime \u003d date.format(date.fromMillis(startTime),\"yyyy-MM-dd HH:mm:ss\")\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\tdata2.append(testRow(\n\t\t\t#Start Time\n\t\t\tstartTime,\n\t\t\tendTime,\n\t\t\tlane,\n\t\t\tfullCount,\n\t\t\tjamCount,\n\t\t\tfullDuration,\n\t\t\tjamDuration))\n\t\t\t\t\t\n\t\t\t\t\n\tself.props.data \u003d data2" + "script": "\tfrom system import date\n\t\n\tdef testRow(lane, fullCount, jamCount, fullDuration, jamDuration):\n\t return {\n\t \"value\": {\n\t \"Lane\": lane,\n\t \"FullCount\": fullCount,\n\t \"JamCount\": jamCount,\n\t \"FullDuration\": fullDuration,\n\t \"JamDuration\": jamDuration\n\t }\n\t }\n\t\n\ttry:\n\t data \u003d system.db.runNamedQuery(\n\t \"Status/Lane Status\",\n\t {\n\t \"startDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate,\n\t \"endDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate\n\t }\n\t )\n\t\n\t result \u003d []\n\t for row in data:\n\t result.append(testRow(\n\t row[\"lane\"],\n\t row[\"full_count\"],\n\t row[\"jam_count\"],\n\t row[\"full_duration\"],\n\t row[\"jam_duration\"]\n\t ))\n\t \n\t self.props.data \u003d result\n\t\n\texcept Exception as e:\n\t system.util.getLogger(\"AlarmScript\").error(\"Error: \" + str(e))\n\t self.props.data \u003d []" } } }, "props": { "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "StartTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "Start Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "0,0.##", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "auto", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "EndTimestamp", - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "End Timestamp" - }, - "justify": "center", - "number": "value", - "numberFormat": "00:00:00", - "progressBar": { - "bar": { - "color": "", - "style": { - "classes": "" - } - }, - "max": 100, - "min": 0, - "track": { - "color": "", - "style": { - "classes": "" - } - }, - "value": { - "enabled": true, - "format": "0,0.##", - "justify": "center", - "style": { - "classes": "" - } - } - }, - "render": "date", - "resizable": true, - "sort": "none", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, { "align": "center", "boolean": "value", @@ -1592,1212 +1454,524 @@ "data": [ { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH1", - "StartTimestamp": "" + "JamCount": 5, + "JamDuration": "00:00:40", + "Lane": "S02_101CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH2", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH3", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH4", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH5", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH6", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH7", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH8", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH9", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH10", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH11", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH12", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH13", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH14", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH15", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH17", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH18", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH19", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH20", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH21", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH22", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH23", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH24", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH25", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH26", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH27", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH28", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH29", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH30", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH31", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH32", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH33", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH34", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH35", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH36", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH37", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH38", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH39", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH40", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH41", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH42", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH43", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH44", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH45", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH46", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH47", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH48", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH49", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH50", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH51", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH52", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH53", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH54", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH55", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH56", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH57", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH58", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH59", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH60", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH61", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH62", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH63", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH64", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH65", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH66", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH67", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH68", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH69", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH70", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH71", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH72", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH73", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH74", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH75", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH76", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH77", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH78", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH79", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH80", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH81", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH82", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH83", - "StartTimestamp": "" + "FullCount": 8, + "FullDuration": "00:01:02", + "JamCount": 8, + "JamDuration": "00:01:16", + "Lane": "S02_102CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH84", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH85", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH86", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH87", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH88", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH89", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH90", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH91", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH92", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH93", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH94", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH95", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH96", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH97", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH98", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH99", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH100", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH101", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH102", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH103", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH104", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", + "FullCount": 1, + "FullDuration": "00:03:02", "JamCount": 1, - "JamDuration": "00:07:19", - "Lane": "S3-CH105", - "StartTimestamp": "2023-11-06 11:29:53" + "JamDuration": "00:00:08", + "Lane": "S02_103CH" } }, { "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH106", - "StartTimestamp": "" - } - }, - { - "value": { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", + "FullCount": 1, + "FullDuration": "00:03:31", "JamCount": 1, - "JamDuration": "00:07:20", - "Lane": "S3-CH107", - "StartTimestamp": "2023-11-06 11:29:53" + "JamDuration": "00:04:09", + "Lane": "S02_104CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH108", - "StartTimestamp": "" + "Lane": "S02_105CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH109", - "StartTimestamp": "" + "Lane": "S02_106CH" } }, { "value": { - "EndTimestamp": "", "FullCount": 0, "FullDuration": "00:00:00", "JamCount": 0, "JamDuration": "00:00:00", - "Lane": "S3-CH110", - "StartTimestamp": "" + "Lane": "S02_107CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_108CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_109CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_110CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_111CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_112CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_113CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_114CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_115CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_116CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_117CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_118CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_119CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_120CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_121CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_122CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_123CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_124CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_125CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_126CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_127CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_128CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_129CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_201CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_202CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_203CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_204CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_205CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_206CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_207CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_208CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_209CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_210CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_211CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_212CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_213CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_214CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_215CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_216CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_217CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_218CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_219CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_220CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_221CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_222CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_223CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_224CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_225CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_226CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_227CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_228CH" + } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_229CH" } } ], @@ -2816,34 +1990,11 @@ 100 ] }, - "query": { - "$": [ - "ts", - 192, - 1748247880155 - ], - "$ts": 1748247880155 - }, "rows": { "style": { "textAlign": "center" } }, - "selection": { - "data": [ - { - "EndTimestamp": "", - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S3-CH16", - "StartTimestamp": "" - } - ], - "selectedColumn": "FullCount", - "selectedRow": 15 - }, "virtualized": false }, "type": "ia.display.table" @@ -4740,7 +3891,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 26, 2025 10:07 AM", + "formattedValue": "May 28, 2025 5:12 PM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -4750,9 +3901,9 @@ "$": [ "ts", 192, - 1748241439441 + 1748439758604 ], - "$ts": 1748239639000 + "$ts": 1748437958000 } }, "type": "ia.input.date-time-input" @@ -4900,7 +4051,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 26, 2025 10:37 AM", + "formattedValue": "May 28, 2025 5:42 PM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -4910,9 +4061,9 @@ "$": [ "ts", 192, - 1748241439441 + 1748439758604 ], - "$ts": 1748241439000 + "$ts": 1748439758000 } }, "type": "ia.input.date-time-input" diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql new file mode 100644 index 0000000..001fc15 --- /dev/null +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -0,0 +1,138 @@ +WITH DesiredLanes AS ( + SELECT lane_number + FROM ( + SELECT 101 + n AS lane_number FROM ( + SELECT a.N + b.N * 10 AS n + FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + ) numbers WHERE n <= 28 -- 101 to 129 + UNION + SELECT 201 + n FROM ( + SELECT a.N + b.N * 10 AS n + FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + ) numbers WHERE n <= 28 -- 201 to 229 + ) lanes +), +AlarmData AS ( + SELECT DISTINCT + ae.id AS record_id, + ae.eventid AS event_uuid, + ae.source, + ae.eventtime AS active_time, + (SELECT MIN(eventtime) + FROM alarm_events ae2 + WHERE ae2.eventid = ae.eventid + AND ae2.eventtype = 1 + AND ae2.eventtime >= ae.eventtime + ) AS clear_time + FROM alarm_events ae + WHERE + ae.eventtime BETWEEN :startDate AND :endDate + AND ae.eventtype = 0 + AND (ae.source LIKE '%Chute%' OR ae.source LIKE '%ChuteStatus%') +), +LaneMapping AS ( + SELECT + id AS record_id, + strvalue AS tag_value, + CASE + WHEN strvalue LIKE '%Chute[%' THEN + CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) + WHEN strvalue LIKE '%Chute[_%' THEN + CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) + WHEN strvalue LIKE '%Chute%' THEN + CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) + ELSE NULL + END AS plc_index, + CASE + WHEN strvalue LIKE '%Chute[%' THEN + CASE + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 1) + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 31) + ELSE NULL + END + WHEN strvalue LIKE '%Chute[_%' THEN + CASE + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 1) + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 31) + ELSE NULL + END + WHEN strvalue LIKE '%Chute%' THEN + CASE + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 1 AND 29 + THEN 101 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 1) + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 30 AND 59 + THEN 201 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 31) + ELSE NULL + END + ELSE NULL + END AS lane_number + FROM alarm_event_data + WHERE propname = 'Tag' AND strvalue LIKE '%Chute%' +), +-- Pre-aggregate jam and full events separately to avoid cross-joins +JamEvents AS ( + SELECT + lm.lane_number, + ad.event_uuid, + ad.active_time, + ad.clear_time + FROM LaneMapping lm + INNER JOIN AlarmData ad ON lm.record_id = ad.record_id + INNER JOIN alarm_event_data aed ON ad.record_id = aed.id + WHERE aed.propname = 'Jam' AND aed.strvalue = '1' +), +FullEvents AS ( + SELECT + lm.lane_number, + ad.event_uuid, + ad.active_time, + ad.clear_time + FROM LaneMapping lm + INNER JOIN AlarmData ad ON lm.record_id = ad.record_id + INNER JOIN alarm_event_data aed ON ad.record_id = aed.id + WHERE aed.propname = 'Full' AND aed.strvalue = '1' +), +Aggregated AS ( + SELECT + CONCAT('S02_', dl.lane_number, 'CH') AS lane, + COALESCE(j.jam_count, 0) AS jam_count, + COALESCE(f.full_count, 0) AS full_count, + COALESCE(j.jam_duration_seconds, 0) AS jam_duration_seconds, + COALESCE(f.full_duration_seconds, 0) AS full_duration_seconds + FROM DesiredLanes dl + LEFT JOIN ( + SELECT + lane_number, + COUNT(DISTINCT event_uuid) AS jam_count, + SUM(TIMESTAMPDIFF(SECOND, active_time, COALESCE(clear_time, NOW()))) AS jam_duration_seconds + FROM JamEvents + GROUP BY lane_number + ) j ON dl.lane_number = j.lane_number + LEFT JOIN ( + SELECT + lane_number, + COUNT(DISTINCT event_uuid) AS full_count, + SUM(TIMESTAMPDIFF(SECOND, active_time, COALESCE(clear_time, NOW()))) AS full_duration_seconds + FROM FullEvents + GROUP BY lane_number + ) f ON dl.lane_number = f.lane_number +) +SELECT + lane, + jam_count, + full_count, + COALESCE(SEC_TO_TIME(jam_duration_seconds), '00:00:00') AS jam_duration, + COALESCE(SEC_TO_TIME(full_duration_seconds), '00:00:00') AS full_duration +FROM Aggregated +ORDER BY lane; \ No newline at end of file diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json b/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json new file mode 100644 index 0000000..90bab96 --- /dev/null +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/resource.json @@ -0,0 +1,46 @@ +{ + "scope": "DG", + "version": 2, + "restricted": false, + "overridable": true, + "files": [ + "query.sql" + ], + "attributes": { + "useMaxReturnSize": false, + "autoBatchEnabled": false, + "fallbackValue": "", + "maxReturnSize": 100, + "cacheUnit": "SEC", + "type": "Query", + "enabled": true, + "cacheAmount": 1, + "cacheEnabled": false, + "database": "MariaDB", + "fallbackEnabled": false, + "lastModificationSignature": "85e4db79c801fef9b6b254b5156b0eac5a3f6c66ca2fea85c0616ce67592448a", + "permissions": [ + { + "zone": "", + "role": "" + } + ], + "lastModification": { + "actor": "admin", + "timestamp": "2025-05-28T13:42:10Z" + }, + "syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider", + "parameters": [ + { + "type": "Parameter", + "identifier": "startDate", + "sqlType": 8 + }, + { + "type": "Parameter", + "identifier": "endDate", + "sqlType": 8 + } + ] + } +} \ No newline at end of file From 14be86bf91546f775afc4d7c2e68862a054def67 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Wed, 28 May 2025 18:00:22 +0400 Subject: [PATCH 04/10] Remove useless files --- .../Windows/Tabs/Lane Status/resource.json | 17 ----------------- .../Windows/Tabs/Lane Status/thumbnail.png | Bin 38435 -> 0 bytes .../Windows/Tabs/Scanner History/resource.json | 17 ----------------- .../Windows/Tabs/Scanner History/thumbnail.png | Bin 10669 -> 0 bytes 4 files changed, 34 deletions(-) delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/resource.json delete mode 100644 MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Scanner History/thumbnail.png diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json deleted file mode 100644 index 871da9d..0000000 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/resource.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scope": "G", - "version": 1, - "restricted": false, - "overridable": true, - "files": [ - "view.json", - "thumbnail.png" - ], - "attributes": { - "lastModification": { - "actor": "admin", - "timestamp": "2025-05-23T07:48:39Z" - }, - "lastModificationSignature": "722a0671776b37179bc6b1010b5a76fd340cd24d82d02e60a9164102b9021d4f" - } -} \ No newline at end of file diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Tabs/Lane Status/thumbnail.png deleted file mode 100644 index ef9db5dd9950ea588e4279de978edc5bcc563de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38435 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 Date: Thu, 29 May 2025 10:35:42 +0400 Subject: [PATCH 05/10] Add S02_130CH and S02_230CH --- .../views/Windows/Status/view.json | 78 ++++++++++++------- .../named-query/Status/Lane Status/query.sql | 27 ++++--- 2 files changed, 61 insertions(+), 44 deletions(-) diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json index 04f715c..b5432f7 100644 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json @@ -3,7 +3,7 @@ "currentTab": null }, "params": { - "Tab_ID": 1, + "Tab_ID": 0, "Table": "Status_tab" }, "propConfig": { @@ -1100,6 +1100,7 @@ "config": { "expression": "now(1000)" }, + "previewEnabled": false, "type": "expr" }, "onChange": { @@ -1454,37 +1455,37 @@ "data": [ { "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 5, - "JamDuration": "00:00:40", + "FullCount": 1, + "FullDuration": "00:07:48", + "JamCount": 1, + "JamDuration": "00:07:48", "Lane": "S02_101CH" } }, { "value": { - "FullCount": 8, - "FullDuration": "00:01:02", - "JamCount": 8, - "JamDuration": "00:01:16", + "FullCount": 6, + "FullDuration": "00:28:44", + "JamCount": 4, + "JamDuration": "00:27:24", "Lane": "S02_102CH" } }, { "value": { - "FullCount": 1, - "FullDuration": "00:03:02", - "JamCount": 1, - "JamDuration": "00:00:08", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", "Lane": "S02_103CH" } }, { "value": { - "FullCount": 1, - "FullDuration": "00:03:31", - "JamCount": 1, - "JamDuration": "00:04:09", + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", "Lane": "S02_104CH" } }, @@ -1535,10 +1536,10 @@ }, { "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", + "FullCount": 1, + "FullDuration": "00:18:19", + "JamCount": 1, + "JamDuration": "00:18:19", "Lane": "S02_110CH" } }, @@ -1706,13 +1707,22 @@ }, { "value": { - "FullCount": 0, - "FullDuration": "00:00:00", + "FullCount": 2, + "FullDuration": "00:00:46", "JamCount": 0, "JamDuration": "00:00:00", "Lane": "S02_129CH" } }, + { + "value": { + "FullCount": 2, + "FullDuration": "00:19:03", + "JamCount": 1, + "JamDuration": "00:00:13", + "Lane": "S02_130CH" + } + }, { "value": { "FullCount": 0, @@ -1973,6 +1983,15 @@ "JamDuration": "00:00:00", "Lane": "S02_229CH" } + }, + { + "value": { + "FullCount": 0, + "FullDuration": "00:00:00", + "JamCount": 0, + "JamDuration": "00:00:00", + "Lane": "S02_230CH" + } } ], "filter": { @@ -2173,7 +2192,6 @@ "y": -0.0011 }, "props": { - "currentTabIndex": 1, "tabs": [ "Enternet", "Lane Status", @@ -3891,7 +3909,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 28, 2025 5:12 PM", + "formattedValue": "May 29, 2025 9:57 AM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -3901,9 +3919,9 @@ "$": [ "ts", 192, - 1748439758604 + 1748500031797 ], - "$ts": 1748437958000 + "$ts": 1748498231000 } }, "type": "ia.input.date-time-input" @@ -4051,7 +4069,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 28, 2025 5:42 PM", + "formattedValue": "May 29, 2025 10:27 AM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -4061,9 +4079,9 @@ "$": [ "ts", 192, - 1748439758604 + 1748500031797 ], - "$ts": 1748439758000 + "$ts": 1748500031000 } }, "type": "ia.input.date-time-input" diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql index 001fc15..d479b22 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -4,14 +4,14 @@ WITH DesiredLanes AS ( SELECT 101 + n AS lane_number FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b - ) numbers WHERE n <= 28 -- 101 to 129 + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b + ) numbers WHERE n <= 29 -- 101 to 130 UNION SELECT 201 + n FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b - ) numbers WHERE n <= 28 -- 201 to 229 + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b + ) numbers WHERE n <= 29 -- 201 to 230 ) lanes ), AlarmData AS ( @@ -50,28 +50,28 @@ LaneMapping AS ( WHEN strvalue LIKE '%Chute[%' THEN CASE WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, - LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 1 AND 29 + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 1 AND 30 THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 1) WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, - LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 30 AND 59 + LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) BETWEEN 31 AND 60 THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute[', strvalue) + 6, LOCATE(']', strvalue, LOCATE('Chute[', strvalue)) - LOCATE('Chute[', strvalue) - 6) AS UNSIGNED) - 31) ELSE NULL END WHEN strvalue LIKE '%Chute[_%' THEN CASE - WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 1 AND 29 + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 1 AND 30 THEN 101 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 1) - WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 30 AND 59 + WHEN CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) BETWEEN 31 AND 60 THEN 201 + (CAST(SUBSTRING(strvalue, LOCATE('Chute_', strvalue) + 6) AS UNSIGNED) - 31) ELSE NULL END WHEN strvalue LIKE '%Chute%' THEN CASE - WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 1 AND 29 + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 1 AND 30 THEN 101 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 1) - WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 30 AND 59 + WHEN CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) BETWEEN 31 AND 60 THEN 201 + (CAST(REGEXP_SUBSTR(strvalue, '[0-9]+') AS UNSIGNED) - 31) ELSE NULL END @@ -80,9 +80,8 @@ LaneMapping AS ( FROM alarm_event_data WHERE propname = 'Tag' AND strvalue LIKE '%Chute%' ), --- Pre-aggregate jam and full events separately to avoid cross-joins JamEvents AS ( - SELECT + SELECT DISTINCT lm.lane_number, ad.event_uuid, ad.active_time, @@ -93,14 +92,14 @@ JamEvents AS ( WHERE aed.propname = 'Jam' AND aed.strvalue = '1' ), FullEvents AS ( - SELECT + SELECT DISTINCT lm.lane_number, ad.event_uuid, ad.active_time, ad.clear_time FROM LaneMapping lm INNER JOIN AlarmData ad ON lm.record_id = ad.record_id - INNER JOIN alarm_event_data aed ON ad.record_id = aed.id + INNER JOIN alarm_event_data aed ON ad.record_id = ad.record_id WHERE aed.propname = 'Full' AND aed.strvalue = '1' ), Aggregated AS ( From 831045d5c63715d4dd960b74246d0c02f4509b5a Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 29 May 2025 11:43:30 +0400 Subject: [PATCH 06/10] Fix query --- MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql index d479b22..f4c7b0f 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -4,13 +4,13 @@ WITH DesiredLanes AS ( SELECT 101 + n AS lane_number FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b ) numbers WHERE n <= 29 -- 101 to 130 UNION SELECT 201 + n FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b ) numbers WHERE n <= 29 -- 201 to 230 ) lanes ), @@ -100,6 +100,7 @@ FullEvents AS ( FROM LaneMapping lm INNER JOIN AlarmData ad ON lm.record_id = ad.record_id INNER JOIN alarm_event_data aed ON ad.record_id = ad.record_id + INNER JOIN alarm_event_data aed ON ad.record_id = aed.id WHERE aed.propname = 'Full' AND aed.strvalue = '1' ), Aggregated AS ( From d7ca58aa3ef739291af7ad7d227e561e4ee56a50 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 29 May 2025 11:53:42 +0400 Subject: [PATCH 07/10] Fix query --- MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql index f4c7b0f..6b22581 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -4,13 +4,13 @@ WITH DesiredLanes AS ( SELECT 101 + n AS lane_number FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b ) numbers WHERE n <= 29 -- 101 to 130 UNION SELECT 201 + n FROM ( SELECT a.N + b.N * 10 AS n FROM (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) a, - (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2) b + (SELECT 0 AS N UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) b ) numbers WHERE n <= 29 -- 201 to 230 ) lanes ), @@ -99,7 +99,6 @@ FullEvents AS ( ad.clear_time FROM LaneMapping lm INNER JOIN AlarmData ad ON lm.record_id = ad.record_id - INNER JOIN alarm_event_data aed ON ad.record_id = ad.record_id INNER JOIN alarm_event_data aed ON ad.record_id = aed.id WHERE aed.propname = 'Full' AND aed.strvalue = '1' ), From febb8949f49227541a3df88a524e79baba78eb44 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 29 May 2025 13:39:43 +0400 Subject: [PATCH 08/10] Fix query --- .../views/Windows/Status/view.json | 575 +----------------- .../named-query/Status/Lane Status/query.sql | 10 +- 2 files changed, 19 insertions(+), 566 deletions(-) diff --git a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json index b5432f7..d1863a8 100644 --- a/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json +++ b/MTN6_SCADA/com.inductiveautomation.perspective/views/Windows/Status/view.json @@ -80,10 +80,6 @@ "endtime": "{..../Period_not_Global_0.custom.EndDate}", "starttime": "{..../Period_not_Global_0.custom.StartDate}" }, - "polling": { - "enabled": true, - "rate": "60" - }, "queryPath": "Status/Scanner History", "returnFormat": "dataset" }, @@ -1091,21 +1087,20 @@ }, "position": { "height": 894, - "width": "100%", + "width": 1902, "x": -1 }, "propConfig": { - "props.query": { + "props.data": { "binding": { "config": { - "expression": "now(1000)" + "parameters": { + "endDate": "{..../Period_not_Global_0.custom.EndDate}", + "startDate": "{..../Period_not_Global_0.custom.StartDate}" + }, + "queryPath": "Status/Lane Status" }, - "previewEnabled": false, - "type": "expr" - }, - "onChange": { - "enabled": null, - "script": "\tfrom system import date\n\t\n\tdef testRow(lane, fullCount, jamCount, fullDuration, jamDuration):\n\t return {\n\t \"value\": {\n\t \"Lane\": lane,\n\t \"FullCount\": fullCount,\n\t \"JamCount\": jamCount,\n\t \"FullDuration\": fullDuration,\n\t \"JamDuration\": jamDuration\n\t }\n\t }\n\t\n\ttry:\n\t data \u003d system.db.runNamedQuery(\n\t \"Status/Lane Status\",\n\t {\n\t \"startDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.StartDate,\n\t \"endDate\": self.parent.parent.parent.getChild(\"Period_not_Global_0\").custom.EndDate\n\t }\n\t )\n\t\n\t result \u003d []\n\t for row in data:\n\t result.append(testRow(\n\t row[\"lane\"],\n\t row[\"full_count\"],\n\t row[\"jam_count\"],\n\t row[\"full_duration\"],\n\t row[\"jam_duration\"]\n\t ))\n\t \n\t self.props.data \u003d result\n\t\n\texcept Exception as e:\n\t system.util.getLogger(\"AlarmScript\").error(\"Error: \" + str(e))\n\t self.props.data \u003d []" + "type": "query" } } }, @@ -1452,548 +1447,6 @@ "width": "" } ], - "data": [ - { - "value": { - "FullCount": 1, - "FullDuration": "00:07:48", - "JamCount": 1, - "JamDuration": "00:07:48", - "Lane": "S02_101CH" - } - }, - { - "value": { - "FullCount": 6, - "FullDuration": "00:28:44", - "JamCount": 4, - "JamDuration": "00:27:24", - "Lane": "S02_102CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_103CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_104CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_105CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_106CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_107CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_108CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_109CH" - } - }, - { - "value": { - "FullCount": 1, - "FullDuration": "00:18:19", - "JamCount": 1, - "JamDuration": "00:18:19", - "Lane": "S02_110CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_111CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_112CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_113CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_114CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_115CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_116CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_117CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_118CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_119CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_120CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_121CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_122CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_123CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_124CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_125CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_126CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_127CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_128CH" - } - }, - { - "value": { - "FullCount": 2, - "FullDuration": "00:00:46", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_129CH" - } - }, - { - "value": { - "FullCount": 2, - "FullDuration": "00:19:03", - "JamCount": 1, - "JamDuration": "00:00:13", - "Lane": "S02_130CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_201CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_202CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_203CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_204CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_205CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_206CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_207CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_208CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_209CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_210CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_211CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_212CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_213CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_214CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_215CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_216CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_217CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_218CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_219CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_220CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_221CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_222CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_223CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_224CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_225CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_226CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_227CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_228CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_229CH" - } - }, - { - "value": { - "FullCount": 0, - "FullDuration": "00:00:00", - "JamCount": 0, - "JamDuration": "00:00:00", - "Lane": "S02_230CH" - } - } - ], "filter": { "enabled": true }, @@ -3909,7 +3362,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 29, 2025 9:57 AM", + "formattedValue": "May 29, 2025 1:08 PM", "formattedValues": { "date": "Mar 26, 2021", "datetime": "Mar 26, 2021 12:00 AM", @@ -3919,9 +3372,9 @@ "$": [ "ts", 192, - 1748500031797 + 1748511500773 ], - "$ts": 1748498231000 + "$ts": 1748509700000 } }, "type": "ia.input.date-time-input" @@ -4069,7 +3522,7 @@ }, "props": { "dismissOnSelect": false, - "formattedValue": "May 29, 2025 10:27 AM", + "formattedValue": "May 29, 2025 1:38 PM", "formattedValues": { "date": "Mar 29, 2021", "datetime": "Mar 29, 2021 1:37 PM", @@ -4079,9 +3532,9 @@ "$": [ "ts", 192, - 1748500031797 + 1748511500773 ], - "$ts": 1748500031000 + "$ts": 1748511500000 } }, "type": "ia.input.date-time-input" diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql index 6b22581..fcc1006 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -128,10 +128,10 @@ Aggregated AS ( ) f ON dl.lane_number = f.lane_number ) SELECT - lane, - jam_count, - full_count, - COALESCE(SEC_TO_TIME(jam_duration_seconds), '00:00:00') AS jam_duration, - COALESCE(SEC_TO_TIME(full_duration_seconds), '00:00:00') AS full_duration + lane AS Lane, + jam_count AS FullCount, + full_count AS JamCount, + COALESCE(SEC_TO_TIME(jam_duration_seconds), '00:00:00') AS JamDuration, + COALESCE(SEC_TO_TIME(full_duration_seconds), '00:00:00') AS FullDuration FROM Aggregated ORDER BY lane; \ No newline at end of file From 864bfb126ddc688fb32f837addbee59e49938a97 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 29 May 2025 13:45:07 +0400 Subject: [PATCH 09/10] Switch names --- MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql index fcc1006..56ae809 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql +++ b/MTN6_SCADA/ignition/named-query/Status/Lane Status/query.sql @@ -129,8 +129,8 @@ Aggregated AS ( ) SELECT lane AS Lane, - jam_count AS FullCount, - full_count AS JamCount, + jam_count AS JamCount, + full_count AS FullCount, COALESCE(SEC_TO_TIME(jam_duration_seconds), '00:00:00') AS JamDuration, COALESCE(SEC_TO_TIME(full_duration_seconds), '00:00:00') AS FullDuration FROM Aggregated From adacc8053bc667141ea30b027aa0a965bd7793a9 Mon Sep 17 00:00:00 2001 From: "b.makharadze" <81828475+bmidf@users.noreply.github.com> Date: Thu, 29 May 2025 14:13:56 +0400 Subject: [PATCH 10/10] Switch Scanner History to MariaDB --- .../named-query/Status/Scanner History/resource.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MTN6_SCADA/ignition/named-query/Status/Scanner History/resource.json b/MTN6_SCADA/ignition/named-query/Status/Scanner History/resource.json index 934b9f4..a8adf72 100644 --- a/MTN6_SCADA/ignition/named-query/Status/Scanner History/resource.json +++ b/MTN6_SCADA/ignition/named-query/Status/Scanner History/resource.json @@ -16,9 +16,9 @@ "enabled": true, "cacheAmount": 1, "cacheEnabled": false, - "database": "MariaDB80", + "database": "MariaDB", "fallbackEnabled": false, - "lastModificationSignature": "45afff047b5091b80d357e6fe4a66832fb586313fb8a7e9279a8abdca4554f0c", + "lastModificationSignature": "c941696fa901991fce5bb94e718b1b082b251b741007a1f5c8973fa52d3fa45c", "permissions": [ { "zone": "", @@ -27,7 +27,7 @@ ], "lastModification": { "actor": "admin", - "timestamp": "2025-05-07T09:08:39Z" + "timestamp": "2025-05-29T10:13:07Z" }, "syntaxProvider": "class com.adbs.syntax.MySQLSyntaxProvider", "parameters": [