diff --git a/.resources/082532adc0f4c5e560c592eac0e08f17a24635fdf83b8d27b0652bf890a995aa b/.resources/082532adc0f4c5e560c592eac0e08f17a24635fdf83b8d27b0652bf890a995aa new file mode 100644 index 00000000..8f1e91e1 Binary files /dev/null and b/.resources/082532adc0f4c5e560c592eac0e08f17a24635fdf83b8d27b0652bf890a995aa differ diff --git a/.resources/3d1bd39d0764e6ad5b9eeeca14fbb2213d566b77c534d64e7cbf516a45b4983e b/.resources/3d1bd39d0764e6ad5b9eeeca14fbb2213d566b77c534d64e7cbf516a45b4983e deleted file mode 100644 index d727c311..00000000 Binary files a/.resources/3d1bd39d0764e6ad5b9eeeca14fbb2213d566b77c534d64e7cbf516a45b4983e and /dev/null differ diff --git a/.resources/feba2ada5390187859d7c3ca16de05be0c00db3cb88befb9051a8f1bc00584f5 b/.resources/48ae4f700f82d75778261331ebc0848ab285fd14c13ba71fd535e1f387cef569 similarity index 98% rename from .resources/feba2ada5390187859d7c3ca16de05be0c00db3cb88befb9051a8f1bc00584f5 rename to .resources/48ae4f700f82d75778261331ebc0848ab285fd14c13ba71fd535e1f387cef569 index 92858fdf..1955bcc7 100644 --- a/.resources/feba2ada5390187859d7c3ca16de05be0c00db3cb88befb9051a8f1bc00584f5 +++ b/.resources/48ae4f700f82d75778261331ebc0848ab285fd14c13ba71fd535e1f387cef569 @@ -33,7 +33,7 @@ "covert": true, "dpm_view_path": "autStand/Custom_Views/Enternet-Windows/DPMS/DPM Devices/MCM02/NCS1_1_DPM1", "fc": "BNA8", - "rotation": "0deg", + "rotation": "270deg", "show_dpm_device_view": true, "show_dpm_view": true }, diff --git a/.resources/eb6d937d588098dc25fc3372d861c378c74ea568999a0de0f1249ce0b9b7625f b/.resources/4ab778b6f27a4461f23e0c7f71c2e2cd28041fc6685746b3672b800774dfe0a8 similarity index 98% rename from .resources/eb6d937d588098dc25fc3372d861c378c74ea568999a0de0f1249ce0b9b7625f rename to .resources/4ab778b6f27a4461f23e0c7f71c2e2cd28041fc6685746b3672b800774dfe0a8 index 4332dbd6..6134d9a7 100644 --- a/.resources/eb6d937d588098dc25fc3372d861c378c74ea568999a0de0f1249ce0b9b7625f +++ b/.resources/4ab778b6f27a4461f23e0c7f71c2e2cd28041fc6685746b3672b800774dfe0a8 @@ -82,7 +82,6 @@ def source_id_lookup(self, source_id): return page_id = global_project_page_ids.get(source_id) - system.perspective.print(page_id) if page_id: navigate_to_url(self, source_id, page_id) @@ -100,4 +99,4 @@ def source_id_lookup(self, source_id): - \ No newline at end of file + diff --git a/.resources/f9537be8651b2449dd829a4786e8fb810eaac668ada8835d00cbcc8d3b06148c b/.resources/4c21f91131d4f5f30e95919eaf3dd0c1315bcd0a69e7f9b7a5dd95e31a6183d7 similarity index 58% rename from .resources/f9537be8651b2449dd829a4786e8fb810eaac668ada8835d00cbcc8d3b06148c rename to .resources/4c21f91131d4f5f30e95919eaf3dd0c1315bcd0a69e7f9b7a5dd95e31a6183d7 index 1b171fe4..cbb1cbcd 100644 --- a/.resources/f9537be8651b2449dd829a4786e8fb810eaac668ada8835d00cbcc8d3b06148c +++ b/.resources/4c21f91131d4f5f30e95919eaf3dd0c1315bcd0a69e7f9b7a5dd95e31a6183d7 @@ -1,18 +1,35 @@ def calculateFocus(self, child, scale=1.7): + """ + Hybrid focusing: + - MCM01: precise per-rotation affine for (dx, dy) (unchanged) + - MCM02: search-style mapping: + * 0°/180°: strong horizontal (dx from x,y), dy very gentle (clamped) + * 90°/270°: dx = 0, dy from x (fits your left/right anchors) + """ - # Read rotation + # --- rotation --- try: rot = int(str(self.session.custom.rotation).replace("deg", "")) % 360 except: rot = 0 - # Device normalized coords (0..1) - x = float(child.position.x) - y = float(child.position.y) -# system + # --- child coords --- + try: + x = float(child.position.x) + y = float(child.position.y) + w = float(child.position.width) + except: + system.perspective.print("Invalid position data on child component.") + return {"x": 0, "y": 0, "scale": scale} - # Per-rotation affine coefficients (dx, dy) - COEFFS = { + # --- zone --- + try: + zone = child.props.params.tagProps[0].split("/")[1] + except: + zone = "MCM01" + + # ======== MCM01 (your proven mapping, unchanged) ======== + COEFFS_MCM01 = { 0: dict(ax= 956.86984, bx=-1853.94329, cx= -17.57191, ay= 124.82245, by= -191.28916, cy= 227.58568), 90: dict(ax=-601.58230, bx= -218.90739, cx=1466.46475, @@ -23,23 +40,65 @@ def calculateFocus(self, child, scale=1.7): ay=-1341.88064, by= 1615.55073, cy= 142.77638), } - c = COEFFS.get(rot, COEFFS[0]) + # ======== MCM02 (fit from your new table) ======== - dx = c['ax'] + c['bx']*x + c['cx']*y - dy = c['ay'] + c['by']*x + c['cy']*y + # 0°: dx ≈ a + b*x + c*y (LS fit on: left/right/center/top/bottom) + _M2_DX_0 = dict(a= 691.72633028, b=-1788.01433165, c= 295.57517840) + # dy kept light & clamped around center (use a small gain around 0.5) + def _m2_dy0(y): + dy = 320.0 * (0.5 - y) # gentle bias + return max(min(dy, 120.0), -120.0) - # Keep your wide-device tweak if you still want it (optional) + # 180°: dx ≈ a + b*x + c*y + _M2_DX_180 = dict(a=-730.66959977, b= 1680.89494266, c= -70.52210472) + def _m2_dy180(y): + dy = 200.0 * (y - 0.5) # tiny bias + return max(min(dy, 80.0), -80.0) + + # 90°: dx = 0, dy ≈ A + B*x (two-point fit from left/right; matches your sheet well) + _M2_DY_90_A = 278.8 + _M2_DY_90_B = -1663.6 # ~ from (left 215.88) → (right -1213.52) + # 270°: dx = 0, dy ≈ A + B*x + _M2_DY_270_A = -1284.8 + _M2_DY_270_B = 1686.1 # ~ from (left -1221.17) → (right 227.06) + + # ======== compute (dx, dy) ======== + if zone == "MCM01": + c = COEFFS_MCM01.get(rot, COEFFS_MCM01[0]) + dx = c["ax"] + c["bx"] * x + c["cx"] * y + dy = c["ay"] + c["by"] * x + c["cy"] * y + + else: # ------- MCM02 (search-style) ------- + if rot == 0: + dx = _M2_DX_0["a"] + _M2_DX_0["b"] * x + _M2_DX_0["c"] * y + dy = _m2_dy0(y) + elif rot == 180: + dx = _M2_DX_180["a"] + _M2_DX_180["b"] * x + _M2_DX_180["c"] * y + dy = _m2_dy180(y) + elif rot == 90: + dx = 0.0 + dy = _M2_DY_90_A + _M2_DY_90_B * x + elif rot == 270: + dx = 0.0 + dy = _M2_DY_270_A + _M2_DY_270_B * x + else: + dx, dy = 0.0, 0.0 + + # --- slight downward shift for flat rotations --- + if rot in (0, 180): + dy -=50 + + # ======== wide device tweak (unchanged) ======== try: - deviceWidthPixels = float(child.position.width) * 1850.0 + deviceWidthPixels = float(w) * 1850.0 + if deviceWidthPixels > 1200: + scale = max(scale, 1.8) + dy -= 100 except: - deviceWidthPixels = 0.0 - if deviceWidthPixels > 1200: - scale = 1.8 - dy -= 100 + pass return {"x": dx, "y": dy, "scale": scale} - def deviceType(self, path, props): try: docked_view = "Docked-East-" @@ -76,8 +135,7 @@ def deviceType(self, path, props): def handleTagHighlight(view, currentValue): - tagAndPriority = str(currentValue.value - or "") + tagAndPriority = str(currentValue.value or "") container = view.rootContainer.getChildren()[0] # --- CASE 1: Remove all highlights by applying CLEAR class --- @@ -91,9 +149,7 @@ def handleTagHighlight(view, currentValue): except: pass - return False - - + return if "||" not in tagAndPriority: return diff --git a/.resources/a336f5e777b389b5a25f10c5a1ea89baead3d915a6fb667d2f1da32af7cfc33a b/.resources/a336f5e777b389b5a25f10c5a1ea89baead3d915a6fb667d2f1da32af7cfc33a new file mode 100644 index 00000000..bdc39d08 Binary files /dev/null and b/.resources/a336f5e777b389b5a25f10c5a1ea89baead3d915a6fb667d2f1da32af7cfc33a differ diff --git a/.resources/7abe7e32b7884abab2f0b8ba705166c6ca53a5ee1d09b581531db35874b43e4b b/.resources/be7eb49ea05dfc053fd810fa656ca5ebfd4a9d74f45276440666535c75ad22bc similarity index 99% rename from .resources/7abe7e32b7884abab2f0b8ba705166c6ca53a5ee1d09b581531db35874b43e4b rename to .resources/be7eb49ea05dfc053fd810fa656ca5ebfd4a9d74f45276440666535c75ad22bc index 1dffd9bf..57f2d25e 100644 --- a/.resources/7abe7e32b7884abab2f0b8ba705166c6ca53a5ee1d09b581531db35874b43e4b +++ b/.resources/be7eb49ea05dfc053fd810fa656ca5ebfd4a9d74f45276440666535c75ad22bc @@ -1,8 +1,8 @@ { "custom": { - "scale": 1, + "scale": 1.7, "x": 0, - "y": 0 + "y": -505.882352941 }, "params": { "controls": { @@ -399,7 +399,7 @@ "position": { "height": 0.0324, "width": 0.0182, - "x": 0.1025 + "x": 0.0811 }, "propConfig": { "meta.visible": { @@ -649,8 +649,8 @@ "name": "root" }, "position": { - "x": -0.3026, - "y": -0.0454 + "x": 0.0177, + "y": 0.0972 }, "props": { "mode": "percent", diff --git a/.resources/f74981c0fa9f87f2f192cf4294ab5397fe7a0e323b0e0fb979a28d4031f68d16 b/.resources/f74981c0fa9f87f2f192cf4294ab5397fe7a0e323b0e0fb979a28d4031f68d16 deleted file mode 100644 index d282ce84..00000000 Binary files a/.resources/f74981c0fa9f87f2f192cf4294ab5397fe7a0e323b0e0fb979a28d4031f68d16 and /dev/null differ diff --git a/BNA8_autStand/com.inductiveautomation.perspective/session-props/resource.json b/BNA8_autStand/com.inductiveautomation.perspective/session-props/resource.json index ce7f4b67..a35b6a74 100644 --- a/BNA8_autStand/com.inductiveautomation.perspective/session-props/resource.json +++ b/BNA8_autStand/com.inductiveautomation.perspective/session-props/resource.json @@ -9,8 +9,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-07T09:08:37Z" + "timestamp": "2025-11-10T08:23:52Z" }, - "lastModificationSignature": "6a0c7ce1d755d49b45b6489b852bca4e290f2e672b178c72d710c24c0e7dd09e" + "lastModificationSignature": "655d54ec57f4bfefbde0993c8cebd4c39238eaee970eea1bb8bd2857614753da" } } \ No newline at end of file diff --git a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/resource.json b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/resource.json index 03121798..57008b19 100644 --- a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/resource.json +++ b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-08T16:05:26Z" + "timestamp": "2025-11-10T08:24:01Z" }, - "lastModificationSignature": "ea059f1c01773e5f7981e0ce2977404a2138645c02da13fbacab590e082d56ff" + "lastModificationSignature": "9282e242ac006f57eeb0c0cf3bd4f5b45e6d2a70a7bcd655c087a76d3bbe8491" } } \ No newline at end of file diff --git a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/thumbnail.png b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/thumbnail.png index d282ce84..2ab363f5 100644 Binary files a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/thumbnail.png and b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/thumbnail.png differ diff --git a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/view.json b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/view.json index 1dffd9bf..e9697aed 100644 --- a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/view.json +++ b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Custom_Views/View-Scaler/view.json @@ -399,7 +399,7 @@ "position": { "height": 0.0324, "width": 0.0182, - "x": 0.1025 + "x": 0.1019 }, "propConfig": { "meta.visible": { @@ -649,8 +649,8 @@ "name": "root" }, "position": { - "x": -0.3026, - "y": -0.0454 + "x": 0.0177, + "y": 0.0972 }, "props": { "mode": "percent", diff --git a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/resource.json b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/resource.json index 8ca8a22e..67d7837a 100644 --- a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/resource.json +++ b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-08T15:49:02Z" + "timestamp": "2025-11-10T07:51:12Z" }, - "lastModificationSignature": "fc06166aab9aa9e8cea364c5f6e76bea4a062ac1ca1d26499c315d65ed74c602" + "lastModificationSignature": "7ed61682197c07d06f24ffb96111945db9934345f101afd1a1e3c4c29405bc15" } } \ No newline at end of file diff --git a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/thumbnail.png b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/thumbnail.png index d727c311..bdc39d08 100644 Binary files a/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/thumbnail.png and b/BNA8_autStand/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM-Views/MCM02/thumbnail.png differ diff --git a/BNA8_autStand/ignition/script-python/autStand/Utils/code.py b/BNA8_autStand/ignition/script-python/autStand/Utils/code.py index 1b171fe4..5f2c79eb 100644 --- a/BNA8_autStand/ignition/script-python/autStand/Utils/code.py +++ b/BNA8_autStand/ignition/script-python/autStand/Utils/code.py @@ -1,18 +1,36 @@ def calculateFocus(self, child, scale=1.7): + """ + Please don't modify! + Hybrid focusing: + - MCM01: precise per-rotation affine for (dx, dy) + - MCM02: search-style mapping: + * 0°/180°: strong horizontal (dx from x,y), dy very gentle (clamped) + * 90°/270°: dx = 0, dy from x left/right anchors) + """ - # Read rotation + # --- rotation --- try: rot = int(str(self.session.custom.rotation).replace("deg", "")) % 360 except: rot = 0 - # Device normalized coords (0..1) - x = float(child.position.x) - y = float(child.position.y) -# system + # --- child coords --- + try: + x = float(child.position.x) + y = float(child.position.y) + w = float(child.position.width) + except: + system.perspective.print("Invalid position data on child component.") + return {"x": 0, "y": 0, "scale": scale} - # Per-rotation affine coefficients (dx, dy) - COEFFS = { + # --- zone --- + try: + zone = child.props.params.tagProps[0].split("/")[1] + except: + zone = "MCM01" + + # ======== MCM01 ======== + COEFFS_MCM01 = { 0: dict(ax= 956.86984, bx=-1853.94329, cx= -17.57191, ay= 124.82245, by= -191.28916, cy= 227.58568), 90: dict(ax=-601.58230, bx= -218.90739, cx=1466.46475, @@ -23,23 +41,65 @@ def calculateFocus(self, child, scale=1.7): ay=-1341.88064, by= 1615.55073, cy= 142.77638), } - c = COEFFS.get(rot, COEFFS[0]) + # ======== MCM02 ======== - dx = c['ax'] + c['bx']*x + c['cx']*y - dy = c['ay'] + c['by']*x + c['cy']*y + # 0°: dx ≈ a + b*x + c*y + _M2_DX_0 = dict(a= 691.72633028, b=-1788.01433165, c= 295.57517840) + # dy kept light & clamped around center (use a small gain around 0.5) + def _m2_dy0(y): + dy = 320.0 * (0.5 - y) # gentle bias + return max(min(dy, 120.0), -120.0) - # Keep your wide-device tweak if you still want it (optional) + # 180°: dx ≈ a + b*x + c*y + _M2_DX_180 = dict(a=-730.66959977, b= 1680.89494266, c= -70.52210472) + def _m2_dy180(y): + dy = 200.0 * (y - 0.5) # tiny bias + return max(min(dy, 80.0), -80.0) + + # 90°: dx = 0, dy ≈ A + B*x (two-point fit from left/right; matches your sheet well) + _M2_DY_90_A = 278.8 + _M2_DY_90_B = -1663.6 # ~ from (left 215.88) → (right -1213.52) + # 270°: dx = 0, dy ≈ A + B*x + _M2_DY_270_A = -1284.8 + _M2_DY_270_B = 1686.1 # ~ from (left -1221.17) → (right 227.06) + + # ======== compute (dx, dy) ======== + if zone == "MCM01": + c = COEFFS_MCM01.get(rot, COEFFS_MCM01[0]) + dx = c["ax"] + c["bx"] * x + c["cx"] * y + dy = c["ay"] + c["by"] * x + c["cy"] * y + + else: # ------- MCM02 (search-style) ------- + if rot == 0: + dx = _M2_DX_0["a"] + _M2_DX_0["b"] * x + _M2_DX_0["c"] * y + dy = _m2_dy0(y) + elif rot == 180: + dx = _M2_DX_180["a"] + _M2_DX_180["b"] * x + _M2_DX_180["c"] * y + dy = _m2_dy180(y) + elif rot == 90: + dx = 0.0 + dy = _M2_DY_90_A + _M2_DY_90_B * x + elif rot == 270: + dx = 0.0 + dy = _M2_DY_270_A + _M2_DY_270_B * x + else: + dx, dy = 0.0, 0.0 + + # --- slight downward shift for flat rotations --- + if rot in (0, 180): + dy -=50 + + # ======== wide device tweak (unchanged) ======== try: - deviceWidthPixels = float(child.position.width) * 1850.0 + deviceWidthPixels = float(w) * 1850.0 + if deviceWidthPixels > 1200: + scale = max(scale, 1.8) + dy -= 100 except: - deviceWidthPixels = 0.0 - if deviceWidthPixels > 1200: - scale = 1.8 - dy -= 100 + pass return {"x": dx, "y": dy, "scale": scale} - def deviceType(self, path, props): try: docked_view = "Docked-East-" @@ -76,8 +136,7 @@ def deviceType(self, path, props): def handleTagHighlight(view, currentValue): - tagAndPriority = str(currentValue.value - or "") + tagAndPriority = str(currentValue.value or "") container = view.rootContainer.getChildren()[0] # --- CASE 1: Remove all highlights by applying CLEAR class --- @@ -91,9 +150,7 @@ def handleTagHighlight(view, currentValue): except: pass - return False - - + return if "||" not in tagAndPriority: return diff --git a/BNA8_autStand/ignition/script-python/autStand/Utils/resource.json b/BNA8_autStand/ignition/script-python/autStand/Utils/resource.json index 24e14d56..d84babd5 100644 --- a/BNA8_autStand/ignition/script-python/autStand/Utils/resource.json +++ b/BNA8_autStand/ignition/script-python/autStand/Utils/resource.json @@ -9,9 +9,9 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-08T10:20:50Z" + "timestamp": "2025-11-10T08:21:37Z" }, "hintScope": 2, - "lastModificationSignature": "7377f0a17b7f9f674d5849df420248ed992fa1247fc5d875dd838b6562200c36" + "lastModificationSignature": "cd2c568061de4f6630ff358400a39202df6df7cdebd0d66b6e2e82ec8b4aff0c" } } \ No newline at end of file diff --git a/BNA8_autStand/ignition/script-python/autStand/config/project_config/code.py b/BNA8_autStand/ignition/script-python/autStand/config/project_config/code.py index 4332dbd6..6134d9a7 100644 --- a/BNA8_autStand/ignition/script-python/autStand/config/project_config/code.py +++ b/BNA8_autStand/ignition/script-python/autStand/config/project_config/code.py @@ -82,7 +82,6 @@ def source_id_lookup(self, source_id): return page_id = global_project_page_ids.get(source_id) - system.perspective.print(page_id) if page_id: navigate_to_url(self, source_id, page_id) @@ -100,4 +99,4 @@ def source_id_lookup(self, source_id): - \ No newline at end of file + diff --git a/BNA8_autStand/ignition/script-python/autStand/config/project_config/resource.json b/BNA8_autStand/ignition/script-python/autStand/config/project_config/resource.json index bda132a8..49196e09 100644 --- a/BNA8_autStand/ignition/script-python/autStand/config/project_config/resource.json +++ b/BNA8_autStand/ignition/script-python/autStand/config/project_config/resource.json @@ -9,9 +9,9 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-04T09:00:38Z" + "timestamp": "2025-11-08T16:16:38Z" }, "hintScope": 2, - "lastModificationSignature": "190c5ab2191a81be3e66c94cb8c3816e9b90095631d2b2bda6387a09cc6114ed" + "lastModificationSignature": "9571b09b33547ea26660f739980dcd2a51b5a61ab78a36abe0b0ba0878eb233f" } } \ No newline at end of file diff --git a/BNA8_autStand/ignition/script-python/autStand/devices/code.py b/BNA8_autStand/ignition/script-python/autStand/devices/code.py index 49fa2221..e43a8809 100644 --- a/BNA8_autStand/ignition/script-python/autStand/devices/code.py +++ b/BNA8_autStand/ignition/script-python/autStand/devices/code.py @@ -227,12 +227,10 @@ global_device_mapping = {} def build_device_mapping(full_tag_path): """ - Builds global_device_mapping for devices under the same PLC and parent device. - Adds support for: - - Chute FIOM devices (e.g. S03_CH109_FIOM_1 when clicking S03_CH109) - - Shared JR and PE devices used by multiple chutes (e.g. S03_1_JR1, S03_1_LRPE1) + Builds global_device_mapping for devices under the same Conveyor and Chute. + Support for: + - Shared JR and Long Range PE devices used by multiple chutes (e.g. S03_1_JR1, S03_1_LRPE1) """ - system.perspective.print(full_tag_path) global global_device_mapping global_device_mapping.clear() diff --git a/BNA8_autStand/ignition/script-python/autStand/devices/resource.json b/BNA8_autStand/ignition/script-python/autStand/devices/resource.json index 688f12b5..8f03950d 100644 --- a/BNA8_autStand/ignition/script-python/autStand/devices/resource.json +++ b/BNA8_autStand/ignition/script-python/autStand/devices/resource.json @@ -9,9 +9,9 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-11-07T17:19:28Z" + "timestamp": "2025-11-10T08:22:57Z" }, "hintScope": 2, - "lastModificationSignature": "54520a6186926aa8832b5cbe2759f81c22a12624775ddf70a3144bce00c188b0" + "lastModificationSignature": "7e8409fd526bf5aff961f6d891601db7f9cd4f57996b1df945d6924877f44902" } } \ No newline at end of file