You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-16Lines changed: 5 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,19 +11,13 @@ Beginning with the updated implementation (post Oct 2025 changes), the plugin in
11
11
### Control Digital Joins (SIMPL <-> Plugin)
12
12
| Join | Direction | Name | Purpose |
13
13
|------|-----------|------|---------|
14
-
| 1 | Input | EnableSaving | Hold HIGH to allow persistence of changes. When LOW, saving disabled; if `trackChangesWhileSavingDisabled` is true changes are staged in memory, otherwise ignored. |
14
+
| 1 | Input | EnableSaving | Hold HIGH to allow persistence of changes. When LOW, saving disabled; changes are still staged in memory and flushed when re-enabled. |
15
15
| 2 | Output | SavingReadyFb | HIGH when plugin is internally mapped/ready AND EnableSaving asserted. LOW otherwise. |
16
16
17
17
Control join metadata (capabilities and descriptions) is now declared in the advanced join map (`EssentialsPluginBridgeJoinMapTemplate`). Input and output do NOT share join 1; using distinct join 2 for feedback avoids collisions with some bridge pathways that do not permit a single digital to act as both directions simultaneously.
18
18
19
19
### Digital Join Offset (Data Boolean Join Remapping)
20
-
DEFAULTS UPDATED (Oct 2025+): `legacyDigitalJoinBehavior` now defaults to TRUE (you can omit it). When TRUE, boolean data joins are NOT offset and use their configured join numbers relative to `joinStart` (legacy behavior).
21
-
22
-
To opt-in to the safer high-range offset, explicitly set:
23
-
```json
24
-
"legacyDigitalJoinBehavior": false
25
-
```
26
-
When set false, all bridged boolean (digital) data values begin at join 101 (offset base) to reduce collision risk with low-number control joins. Integer, string, and object-based values always use their configured join numbering relative to `joinStart`.
20
+
Behavior Simplified (Oct 2025+): Boolean (digital) data joins are ALWAYS offset starting at join 101. The previous configuration property `legacyDigitalJoinBehavior` has been removed. Integer, string, and object-based values continue to use their configured join numbering relative to `joinStart`.
27
21
28
22
### Behavior Sequence Summary
29
23
1. Plugin loads JSON data from file or config `data` object.
@@ -32,15 +26,12 @@ When set false, all bridged boolean (digital) data values begin at join 101 (off
32
26
- SavingReadyFb set HIGH (plugin ready + saving enabled).
33
27
4. Subsequent value changes on the bridge:
34
28
- If EnableSaving HIGH: changes schedule a save (debounced ~1s).
35
-
- If EnableSaving LOW AND `trackChangesWhileSavingDisabled` true: changes update RAM/feedbacks only; flagged dirty until re-enabled.
36
-
- If EnableSaving LOW AND `trackChangesWhileSavingDisabled` false: changes are ignored entirely (no staging, no feedback updates).
29
+
- If EnableSaving LOW: changes update RAM/feedbacks only; flagged dirty until re-enabled (tracking is always on).
37
30
5. When EnableSaving transitions LOW -> HIGH again: if tracking flag true pending staged changes are flushed (250ms debounce) and SavingReadyFb returns HIGH.
38
31
39
32
### Notes & Edge Cases
40
33
- Turning EnableSaving LOW immediately drops SavingReadyFb, suppressing further saves.
41
-
- Analog/String/Object changes while disabled:
42
-
- If `trackChangesWhileSavingDisabled` true (DEFAULT): not persisted but remain staged and will be saved after enabling.
43
-
- If `trackChangesWhileSavingDisabled` false: ignored completely.
34
+
- Analog/String/Object changes while disabled: not persisted but remain staged and will be saved after enabling (tracking always on).
44
35
- Boolean join offset only affects JTokenType.Boolean mapped joins.
45
36
- The plugin does not automatically re-load from disk during runtime; it uses in-memory state. To force a reload, restart the device or extend logic (future enhancement).
46
37
@@ -76,8 +67,6 @@ All values can also be set and retrived using the console command "customvalues
76
67
"boolValue": true,
77
68
"stringValue": "SomeString!"
78
69
},
79
-
"legacyDigitalJoinBehavior": true,
80
-
"trackChangesWhileSavingDisabled": true
81
70
}
82
71
},
83
72
{
@@ -135,7 +124,7 @@ All values can also be set and retrived using the console command "customvalues
135
124
```
136
125
137
126
### Updated Join Mapping Example (Boolean Offset)
138
-
If you explicitly set `"legacyDigitalJoinBehavior": false` and `joinStart`is 1, a boolean path configured with `"joinNumber": 1`will map to digital join **101** on the bridge instead of 1. (When the property is omitted or true, it maps directly to join 1.) Control joins 1-2 remain reserved.
127
+
A `joinStart`of 1 will map digital joins starting at **101**, analog joins at **1**, and serial joins at **1** on the bridge. Bridge digital joins 1-2 remain reserved.
Copy file name to clipboardExpand all lines: src/CustomValuesConfigObject.cs
+3-15Lines changed: 3 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -29,20 +29,8 @@ public class CustomValuesConfigObject
29
29
[JsonProperty("data")]
30
30
publicJObjectData{get;set;}
31
31
32
-
/// <summary>
33
-
/// When true, preserves legacy digital join numbering (no offset). Default TRUE now (legacy compatibility) => digitals start at 101 only when this is false.
34
-
/// Optional in config; missing property will assume TRUE for backward compatibility with older Essentials projects that did not include this property.
/// When true, bridge-originated value changes while EnableSaving is LOW will update in-memory JSON (but still not persist to file). Default TRUE now (legacy compatibility). When false, changes while disabled are ignored.
42
-
/// Optional in config; missing property will assume TRUE for backward compatibility with older deployments that expect legacy behavior of tracking updates in memory even while saving is disabled.
0 commit comments