First library, its tested and working

This commit is contained in:
2026-09-30 22:28:57 -06:00
commit ba3729a4a1
41 changed files with 7801 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
# atMb — documented working library
Start with `library/atMb-Documented.export`: comments-only documentation of your
working CmpAtomModbus export, retaining its embedded C library object. It uses
`ClientTCP`, matching the uploaded working interface.
Read `docs/USER-GUIDE.md` for setup and examples and `docs/API-REFERENCE.md` for
all 95 code objects, parameters, outputs, methods and properties.
`docs/DOCUMENTATION-VALIDATION.md` records code/payload preservation checks.
`reference/Working-CmpAtomModbus.export` is the exact uploaded original.
The earlier development export and generator are retained for source history.
`library/build_native_export.py` generates the earlier migration export; it does
not generate or supersede the newly documented working export. Do not overwrite
working IDE changes by regenerating that migration export. The documentation
adds no C changes; the source-to-uploaded-binary match remains unverified.
The rest of the source/build kit remains below.
# atMb — native Modbus for CODESYS
Git-ready source snapshot, revision 0.9.1. Public namespace `atMb`.
C implementation supports TCP client, RTU client and TCP slave; IEC code has
no ModbusFB dependency. Online-change support remains future work.
## Files
- `component-source/`: C engine, CODESYS component frame/interface and host tests.
- `ExtensionSDK/`: supplied SDK used by the component build.
- `library/atMb-Native.export`: corrected IEC import; includes public status declarations.
- `library/atMb-Native-Review.st`: readable generated IEC source.
- `library/build_native_export.py`: reproducible export generator.
- `reference/CmpAtomModbus-AllInOne.export`: required generator baseline, not the final import.
- `artifacts/arm64/`: your uploaded shared object and precompile cache, preserved unchanged.
- `docs/BUILD-AND-USAGE.md`: import, deployment, API, diagnostics and limitations.
- `SHA256SUMS.txt`: snapshot file checksums.
## Build and test on the Pi
```sh
sudo apt install build-essential m4 dos2unix python3
make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" clean
make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" all
make -C component-source test
```
Build natively for each Linux target architecture; the uploaded ARM64 `.so`
cannot run on ARM32 or x86-64. Runtime/SDK compatibility must also be checked
for each CODESYS target. The host tests exercise protocol code independently
of the CODESYS runtime.
## IEC export
```sh
python3 library/build_native_export.py
```
Import `library/atMb-Native.export` into a fresh CODESYS library project,
namespace `atMb`, and embed the newly built `.so` in a C Implemented Library
object. See the full instructions in `docs/BUILD-AND-USAGE.md`.
The export is source, not a compiled `.library`. The supplied precompile cache
is an opaque reference artifact and is not a substitute for the library project.
Your uploaded `.so` is ARM64 and contains RTU/server symbols. Its exact match
to this source snapshot and its operation in the runtime have not been verified;
rebuild from source before making a release. The older development instructions
say no prebuilt binary is included: that applies to the earlier kit; this repo
snapshot adds your uploaded binary under `artifacts/arm64/`.
## Start a repository
```sh
cd atMb-repo
git init
git add .
git commit -m "Initial atMb native Modbus source"
```
No Git history or remote is included. The SDK and baseline came from supplied
files; review their redistribution terms before publishing a public repository.
No new license is assigned by this snapshot.