🚧 Add feature requests
This commit is contained in:
@@ -35,6 +35,13 @@ a virtual node whose I/O behavior is driven by scripted scenarios.
|
||||
with `DI0.1`-style addresses, toggle/force/pulse/ramp actions,
|
||||
watchdog/statistics/diagnostics views with fault injection, and
|
||||
multi-client consistency for collaborative FAT benches.
|
||||
- **Runtime device configuration** *(requested, planned — spec §11)*:
|
||||
WBM/DIP-switch parity — module "plug/unplug" at runtime with
|
||||
process-image rebuild (SAVE CONFIG / KBUS `0x102B` semantics),
|
||||
address-selection DIP-switch emulation (host ID 1–254, 0 = stored
|
||||
config, 255 = DHCP), WBM-equivalent pages (Port/Ethernet, Modbus
|
||||
settings, Modbus Mapping, I/O Config), and device-state persistence
|
||||
with factory reset.
|
||||
- **Long-duration (continuous) simulation** *(requested, planned — see
|
||||
`docs/spec/software-spec.md` §8)*: endurance/soak testing over days or
|
||||
weeks of simulated time. Designated inputs are driven from streaming
|
||||
@@ -176,13 +183,27 @@ requirement ID for each item in parentheses.
|
||||
|
||||
### Phase 3 — Long-duration (continuous) simulation (spec §8)
|
||||
The soak-testing feature requested 2026-10-03 — specified in §8,
|
||||
not yet implemented:
|
||||
not yet implemented. Datasets are **optional**: signal logic
|
||||
(plugins, scheduled steps, degradation) runs in parallel with CSV
|
||||
streaming, or entirely without it.
|
||||
|
||||
- [ ] `scenario/datasets.py` — streaming CSV playback for designated
|
||||
inputs: header-driven time column, `interpolation: linear|hold`,
|
||||
`repeat` with seamless seams, `time_factor` acceleration,
|
||||
`until` limits, bounded memory, ERROR verdict with file/line on
|
||||
malformed data (FR-8.2.1–8.2.11).
|
||||
inputs (OPTIONAL driver): header-driven time column,
|
||||
`interpolation: linear|hold`, `repeat` with seamless seams,
|
||||
`time_factor` acceleration, `until` limits, bounded memory, ERROR
|
||||
verdict with file/line on malformed data (FR-8.2.1–8.2.11).
|
||||
- [ ] Parallel logic pipeline — fixed per-tick order: datasets → edge
|
||||
detection → plant plugins → degradation → invariants/rate
|
||||
limits → scheduled steps → snapshots; plugins may read
|
||||
dataset-driven and logic-driven aliases in the same tick
|
||||
(FR-8.2.12).
|
||||
- [ ] Logic-only continuous runs — no `datasets:` needed: demand
|
||||
profiles generated inside plugins, top-level `until:` bounds the
|
||||
run; degradation/invariants/rate limits/snapshots apply
|
||||
identically (FR-8.2.13).
|
||||
- [ ] Continuous-mode run-end + validation rules: run ends when all
|
||||
drivers exhausted; scenario with no datasets, no scheduled steps
|
||||
and no `until:` rejected (FR-8.2.1).
|
||||
- [ ] `scenario/degradation.py` — wear counters (runtime hours, start
|
||||
cycles, load-hours) and degradation models (`linear`,
|
||||
`exponential`, `staircase`, plugin shapes) computing plant
|
||||
@@ -206,7 +227,8 @@ not yet implemented:
|
||||
- [ ] Acceptance tests per spec §8.8 (streaming 100k-row CSV,
|
||||
interpolation checks, repeat determinism, time_factor math,
|
||||
alias-ownership validation, degradation/recovery round-trip,
|
||||
episode recording, full 28-day soak).
|
||||
episode recording, full 28-day soak, logic-only run, mixed
|
||||
dataset+logic tick-order run).
|
||||
|
||||
### Phase 4 — Reporting (spec §11)
|
||||
|
||||
@@ -229,6 +251,18 @@ not yet implemented:
|
||||
view (FR-10.2.6), multi-client consistency (FR-10.2.7), optional
|
||||
read-only/access control (FR-10.2.8), alias-ownership protection
|
||||
during scenario runs (FR-10.2.9).
|
||||
- [ ] **Runtime device configuration (§11)**: module hot-configuration
|
||||
(plug/unplug at slot positions) with process-image rebuild per
|
||||
KBUS/SAVE-CONFIG semantics and updated `0x1022–0x1025` /
|
||||
`0x2030+` registers (FR-11.2.1–11.2.2); alias revalidation after
|
||||
rebuilds with position-stable module addressing (FR-11.2.3);
|
||||
rejection during running scenarios (FR-11.2.4);
|
||||
address-selection DIP-switch emulation with the manual's exact
|
||||
coding (1–254 host ID, 0 = stored config, 255 = DHCP,
|
||||
restart-to-apply) (FR-11.3.1–11.3.4); WBM-equivalent pages —
|
||||
Port/Ethernet, Modbus settings, Modbus Mapping, I/O Config with
|
||||
SAVE CONFIG (FR-11.4.1–11.4.4); device-state persistence and
|
||||
factory reset via `0x2043` (FR-11.5.1–11.5.2).
|
||||
|
||||
### Phase 6 — CI integration (spec §11)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user