Joseph Doherty
e66b05fddf
docs(plans): native AB transport tasks.json status sync
2026-10-07 17:14:02 -04:00
Joseph Doherty
cff57d25c5
test(abcip): Task 15 nullable warning fix
2026-10-07 17:13:53 -04:00
Joseph Doherty
45f6e1793f
feat(abcip): Transport option selects native or libplctag across driver, probe and CLI
2026-10-07 17:13:37 -04:00
Joseph Doherty
1211cd9a83
test(abcip): Task 13 review r2 - non-vacuous exclusive-packing tests
...
Scheduler tests (exclusive mid-queue and at head) and a template-reader test that
genuinely queues a Read Template behind a small read; bounded QueuedCount wait
replaces the fixed delay. Falsified: removing exclusive from the reader turns the
reader test red; removing the Exclusive handling in RequestScheduler turns all three red.
2026-10-07 17:10:35 -04:00
Joseph Doherty
b2b9aa04ed
fix(abcip): Task 13 review r1 - bounded listing pager, exclusive large reads, template bound, safe lease release
2026-10-07 17:07:05 -04:00
Joseph Doherty
78e60a5a75
feat(abcip): native symbol listing and template reads feeding the unchanged decoders
2026-10-07 17:01:40 -04:00
Joseph Doherty
5dd1b987b9
docs(plans): native AB transport tasks.json status sync
2026-10-07 16:58:54 -04:00
Joseph Doherty
f2f1e4280c
merge: Task 12 — native AbCip tag runtime, factory and device mapping
2026-10-07 16:58:37 -04:00
Joseph Doherty
5fd9ff941e
feat(ablegacy): Transport option selects native or libplctag across driver, probe and CLI
2026-10-07 16:57:20 -04:00
Joseph Doherty
e2e441d45e
fix(abcip): native runtime write guards, same-width integer exemption, deferred path encoding (Task 12 review r1)
2026-10-07 16:56:30 -04:00
Joseph Doherty
f2377251af
merge: Task 14 — native AbLegacy tag runtime + factory
2026-10-07 16:54:40 -04:00
Joseph Doherty
b249c15c1a
fix(ablegacy): refuse status-bit writes, decode status bits as 0/1, reject over-long replies, global TNS
2026-10-07 16:54:18 -04:00
Joseph Doherty
d0f89f9ec1
docs(plans): native AB transport tasks.json status sync
2026-10-07 16:49:32 -04:00
Joseph Doherty
33dbd342e5
fix(ab-transport): trim-only CIP path canonicalisation, observe abandoned shared opens, no Forward Open after dispose during connect
2026-10-07 16:49:19 -04:00
Joseph Doherty
25cc836865
feat(abcip): native tag runtime over the managed CIP transport, with returned-type checking
2026-10-07 16:47:48 -04:00
Joseph Doherty
c31e6deebf
feat(ablegacy): native PCCC tag runtime over the managed transport
2026-10-07 16:45:50 -04:00
Joseph Doherty
a251954bf7
fix(ab-transport): harden Task 9 pool and connection (close chaining, uncancellable shared open, monotonic throttle, canonical CIP path, internal ctors, shared-pool logger)
2026-10-07 16:45:26 -04:00
Joseph Doherty
b82fffd269
feat(ab-transport): per-device connection with routing modes, shared scheduler, keep-alive and Forward Open throttle
2026-10-07 16:35:11 -04:00
Joseph Doherty
d7145ddfa5
docs(plans): native AB transport tasks.json status sync
2026-10-07 16:23:09 -04:00
Joseph Doherty
ba73f48f9c
merge: Task 10 — RequestScheduler (MSP coalescing) + LogixTagClient fragment loops
2026-10-07 16:23:08 -04:00
Joseph Doherty
5211975067
fix(ab-transport): harden Task 10 scheduler and tag client (dispose faults, pump guard, read cap, write validation, 8-byte wide-struct alignment)
2026-10-07 16:22:40 -04:00
Joseph Doherty
1c7fd5d5de
feat(ab-transport): MSP-coalescing request scheduler and fragmented Logix read/write
2026-10-07 16:15:05 -04:00
Joseph Doherty
2f9c7eff58
merge: Task 5 — EtherNet/IP encapsulation codec + single-flight client
2026-10-07 16:14:02 -04:00
Joseph Doherty
4c1c362b0e
feat(ab-transport): EtherNet/IP encapsulation codec and single-flight session client
2026-10-07 16:09:06 -04:00
Joseph Doherty
7c81844be5
merge: Task 8 — PCCC codec (Execute PCCC, SLC typed, PLC-5 range read)
2026-10-07 16:07:32 -04:00
Joseph Doherty
5eb018937b
fix(ab-transport): PCCC review r1 - UA bit, bit limits, stricter ParseReply, non-const verified flags
2026-10-07 16:07:13 -04:00
Joseph Doherty
110fb861e9
merge: Task 7 — CIP service codecs (CM, MSP, Logix, symbol, template)
2026-10-07 16:07:07 -04:00
Joseph Doherty
6d16765804
fix(ab-transport): harden Task 7 codecs (read status, 32-bit start instance, empty-More, size range)
2026-10-07 16:06:49 -04:00
Joseph Doherty
13d631d856
feat(ab-transport): PCCC Execute-PCCC codec for SLC/MicroLogix typed logical and PLC-5 range read
2026-10-07 16:03:43 -04:00
Joseph Doherty
5f86b370f7
feat(ab-transport): Connection Manager, MSP, Logix read/write, symbol and template service codecs
2026-10-07 16:03:41 -04:00
Joseph Doherty
ec1a39ff6e
merge: Task 4 — golden libplctag<->ab_server frame captures
2026-10-07 15:59:39 -04:00
Joseph Doherty
617b9ba40c
docs(plans): native AB transport tasks.json status sync
2026-10-07 15:59:39 -04:00
Joseph Doherty
b085360454
test(ab-transport): non-zero array/BOOL captures, committed capture client, sim quirks
...
Review round 1 on the golden frames:
- Re-captured logix-read-dint-array16 (element i = ((i+1)<<24)|(i+1)) and
logix-read-bool (= 1) so neither decode oracle is all zeros. ab_server rejects
libplctag's own BOOL write with CIP 0x03 (two data bytes for a one-byte BOOL),
so the BOOL is seeded by a raw UCMM Write Tag (client seed-bool).
- Committed the capture client as scripts/ab-capture/client (outside the slnx,
CPM off, libplctag 1.5.2 pinned); capture.sh gains a `client` subcommand.
- README documents simulator-only behaviour: zeroed reply sender context, STRING
typed D0 00 instead of A0 02 + handle, and the BOOL write refusal.
- capture.sh no longer claims UnregisterSession reaches the wire (session ends in RST).
- CaptureFileTests also check the CPF walk ends at the frame end and that every
reply service is its request service | 0x80.
2026-10-07 15:58:05 -04:00
Joseph Doherty
1201d5fcfb
test(ab-transport): golden libplctag<->ab_server frame captures for Logix, Micro800 and PCCC
...
17 .hex fixtures captured from libplctag 1.5.2 (native 2.6.0) against
otopcua-ab-server:libplctag-release, plus the CaptureFile loader, its
length/alternation tests, and the re-runnable scripts/ab-capture/capture.sh.
Observed and recorded in Captures/README.md "Routing observed":
- Micro800 is NOT UCMM under libplctag 2.6.0: it opens a Large Forward Open
(path 20 02 24 01) and reads connected; use_connected_msg=0 is ignored.
- SLC500/MicroLogix/PLC-5 send Execute PCCC 0x4B unconnected and unwrapped;
a configured path=1,0 never reaches the wire.
- Only Large FO 0x5B was observed; no 0x54 fallback occurred.
- LogixPccc is unreachable against ab_server (CIP 0x08); no fixture committed.
2026-10-07 15:50:00 -04:00
Joseph Doherty
de14d354e6
fix(ab-transport): widen libplctag guard regex to catch aliases and static usings
2026-10-07 15:49:24 -04:00
Joseph Doherty
29f456c3ef
test(ab-transport): guard libplctag confinement to its adapters (falsified by adding using libplctag to AbCipDriver.cs)
2026-10-07 15:47:52 -04:00
Joseph Doherty
d602a08925
merge: Task 6 — CIP path encoding + Logix type codes
2026-10-07 15:46:31 -04:00
Joseph Doherty
0d2f27bb1d
merge: Task 3 — AbLegacy seam decoupled from libplctag types
2026-10-07 15:46:31 -04:00
Joseph Doherty
62abdb4c5b
merge: Task 2 — AbCip seam decoupled from libplctag types
2026-10-07 15:46:31 -04:00
Joseph Doherty
52505678d6
docs(plans): native AB transport tasks.json status sync
2026-10-07 15:46:31 -04:00
Joseph Doherty
10c909cbc2
fix(abcip): translate decode/encode-time libplctag exceptions; doc and probe-test cleanups
2026-10-07 15:44:02 -04:00
Joseph Doherty
a57d61c484
refactor(abcip): confine libplctag to its adapters behind AbStatus/AbTransportException
2026-10-07 15:40:07 -04:00
Joseph Doherty
1affb4b613
refactor(ablegacy): confine libplctag to its adapter behind AbStatus/AbTransportException
2026-10-07 15:39:01 -04:00
Joseph Doherty
f2f1ec2585
feat(ab-transport): CIP route/symbolic path encoders and Logix type codes
2026-10-07 15:38:04 -04:00
Joseph Doherty
a0897fda96
feat(ab-transport): project skeleton with AbStatus, CIP reply parsing and the ICipChannel seam
2026-10-07 15:34:34 -04:00
Joseph Doherty
b6f64c369a
docs(plans): sync native AB transport plan + tasks.json after task transcription fixes
2026-10-07 15:24:25 -04:00
Joseph Doherty
d4808fa948
docs(plans): fold Fable review into the native AB transport plan; add tasks.json
2026-10-07 15:17:07 -04:00
Joseph Doherty
6106946504
docs(plans): native AB transport implementation plan (draft, pre-review)
2026-10-07 14:59:26 -04:00
Joseph Doherty
45b6062de5
docs(plans): native .NET EtherNet/IP+CIP+PCCC transport to replace libplctag under AbCip/AbLegacy — design
2026-10-07 14:35:14 -04:00
Joseph Doherty
9dbaa6d758
Merge TwinCAT fixes ported from ignitionoee + live-validated on the Elma PLCs
v2-ci / build (push) Successful in 4m41s
v2-ci / unit-tests (push) Failing after 16m28s
2026-10-07 14:28:01 -04:00