Files
Joseph Doherty 32f26272ae Initial commit: Wonderware / System Platform tools and reference
Five tools under one repo, all docs organized per DOCS-GUIDE.md:

- aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary
  logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands:
  last, tail, range, unread, fields. Stable JSON envelope under --llm-json.
  Build template under lib/build/ for rebuilding aaLogReader.dll.

- aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide
  (Markdown converted from CHM), API reference for the ArchestrA.Toolkit
  namespace, and the Monitor / Watchdog VS sample solutions.

- graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy
  configuration via the ArchestrA GRAccess COM interop. Includes session
  daemon, IPC protocol, and llm-json envelope contract.

- grdb: SQL/DDL exploration of the Galaxy Repository database. DDL
  captures, reusable queries, hierarchy / contained-name <-> tag-name
  translation notes.

- histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL
  linked-server, extension tables, every wwXxx time-domain extension,
  every retrieval mode, alarm/event SQL recipes, REST API. Distilled
  from the 243-page Historian Retrieval Guide.

Root contains:
- CLAUDE.md: thin index pointing into each tool's README.
- DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:22:20 -04:00
..

aaLogReader build template

Use these three files to rebuild aaLogReader.dll from upstream sources without depending on legacy MSBuild + packages.config. See ../../README.md "Provisioning aaLogReader.dll" for the full step-by-step.

Files

  • aaLogReader.csproj — SDK-style csproj targeting net48, references Newtonsoft.Json 13.0.3 and log4net 2.0.15. Disables determinism (the upstream AssemblyInfo.cs uses a wildcarded [assembly: AssemblyVersion("1.0.*")]) and pulls in upstream source via relative <Compile Include="..\aaLog\aaLogReader\..." /> globs. Two source files are excluded from those globs and replaced by the patched copies below.
  • patched/LogRecord.cs — upstream aaLogReader/Types/LogRecord.cs with using System.Runtime.CompilerServices; added.
  • patched/LogHeader.cs — same patch applied to aaLogReader/Types/LogHeader.cs.

Why the patches

The upstream files reference [CallerMemberName] inside an #if NET45_OR_GREATER branch but never using System.Runtime.CompilerServices;. The original csproj only defined NET45_OR_GREATER for TargetFrameworkVersion >= 4.5; targeting net40 left the branch dead and the compiler never tripped. When SDK-style projects target net48, the compiler reaches that branch and fails because the attribute can't be resolved. The patched copies add the missing using directive and otherwise match upstream byte-for-byte.

Layout the recipe expects

$env:TEMP\
  aaLog\                          (git clone https://github.com/aaOpenSource/aaLog.git)
    aaLogReader\
      aaLgxReader.cs
      aaLogReader.cs
      Enum\, Helpers\, Properties\, Struct\, Types\
  aaLogReader-build\
    aaLogReader.csproj            (copied from this folder)
    patched\
      LogRecord.cs                (copied from this folder)
      LogHeader.cs                (copied from this folder)

dotnet build -c Release from aaLogReader-build/ produces bin/Release/net48/aaLogReader.dll. Copy that into aalogcli/lib/aaLogReader.dll.