Skip to content

PTZControl v2.4.3.1

Choose a tag to compare

@github-actions github-actions released this 07 Jun 19:39
· 33 commits to main since this release

Changes since v2.4.1.2

This release replaces v2.4.3.0 and promotes the console and packaging work from the v2.4.2 preview line into a regular release. It contains all changes made after the last official release v2.4.1.2.

Assets

The release assets now use explicit architecture names. The previous ambiguous PTZControl.zip GUI package is no longer produced.

  • PTZControl-win-x64.zip contains the Windows x64 GUI application. PTZControl.exe is placed directly in the ZIP root.
  • PTZControl-win-x86.zip contains the Windows x86 GUI application. PTZControl.exe is placed directly in the ZIP root.
  • PTZControlConsole-win-x64.zip contains the Windows x64 console application and guided Windows camera test script. The console executable is placed directly in the ZIP root.
  • PTZControlConsole-win-x86.zip contains the Windows x86 console application and guided Windows camera test script. The console executable is placed directly in the ZIP root.
  • PTZControlConsole-linux-x64-beta.tar.gz contains the experimental Linux x64 console application, Linux test script, and Linux installation notes.

Console CLI

  • Reworked command-line parsing to use verb-specific CommandLineParser options.
  • Added consistent help output for no arguments, --help, help, --h, and -?.
  • Added stable generated CLI documentation under docs/generated.
  • Added explicit value modes for movement and zoom commands: --mode percent and --mode raw.
  • Added short options while keeping readable long options, for example -c/--camera, -d/--device-path, -s/--slot, -m/--mode, -x/--pan, and -y/--tilt.
  • Removed the redundant list-presets command. Preset name information is now included in cam-device-info; targeted automation should use get-preset-name.

Camera information and metadata

  • Added cam-device-info with device name/path, PTZControl slot, raw min/max/default/step/current values where available, restore target information, and preset name metadata.
  • Added preset friendly-name commands: get-preset-name, set-preset-name, and clear-preset-name.
  • Added camera slot friendly-name commands: get-camera-name, set-camera-name, and clear-camera-name.
  • Added swap-preset-names for reordering preset labels between PTZControl camera slots.
  • Added metadata config transport with config --export and config --import.
  • Windows keeps using the original PTZControl registry metadata for compatibility. Linux/macOS metadata uses JSON files.

Movement, zoom, restore, and presets

  • Added restore-home and restore-default as explicit commands.
  • Removed ambiguous preset 0 usage from the CLI concept; use restore-home instead.
  • Added support for restore-preset 1..8 and save-preset 1..8 through Logitech extension-unit commands.
  • Added percent and raw zoom commands.
  • Added percent and raw absolute/relative move command variants.
  • Added experimental move-seek, which tries to reach an absolute pan/tilt target by reading current raw values, issuing relative movement steps, and checking progress after each correction.

Guided camera tests

  • Added Windows and Linux guided camera test scripts.
  • Test scripts write detailed command, exit code, stdout, stderr, and user feedback to timestamped log files.
  • Test scripts keep the console output focused on the current visible test action and the tester feedback question.
  • Test scripts collect cam-device-info for all detected cameras and then ask which camera should be used for visible movement checks.
  • Test scripts now cover absolute, relative, percent, raw, restore, preset, and experimental move-seek variants.
  • Test scripts include preparation commands before visible checks so the next action is more likely to produce a visible change.

Windows behavior and known validation points

  • move-relative uses the Logitech extension-unit movement path, which is closest to the original PTZControl directional movement model.
  • move-absolute uses standard DirectShow/IAMCameraControl absolute pan/tilt values and still needs validation with a real Logitech PTZ Pro 2.
  • move-seek is experimental and depends on cam-device-info being able to read current raw pan/tilt values on the target camera.
  • DirectShow/IAMCameraControl capability reads can differ between an agent/sandbox process and a normal interactive process. For real camera validation, use the release asset from an interactive shell.
  • Open validation issues include absolute move behavior and preset restore behavior on Windows PTZ Pro 2 hardware.

Linux preview

  • Added a Linux x64 console preview package as .tar.gz.
  • Added Linux installation notes including .NET runtime guidance.
  • Linux currently supports standard V4L2 absolute pan, tilt, and zoom controls where exposed by the camera/driver.
  • Logitech preset/home support on Linux/macOS is not complete yet and remains a future implementation area.

Documentation and project maintenance

  • Added docs/syntax.md and generated example/help documentation.
  • Added NOTICE.md and documented GPL-3.0 attribution for the fork.
  • Added agent guidance to keep CLI docs generated, prefer long options in guided tests, and account for DirectShow sandbox differences during local diagnostics.
  • Updated the release workflow to use explicit GUI architecture assets and ZIP-root executables.

Suggested on-site Windows PTZ Pro 2 test flow

  1. Download and unpack PTZControlConsole-win-x64.zip.
  2. Run PTZControlConsole.exe cam-device-info --camera "PTZ Pro 2" and confirm whether raw current pan/tilt values are available.
  3. Run scripts\test-console-camera-windows.ps1 from the unpacked console folder.
  4. Select the PTZ Pro 2 camera for visible tests.
  5. Complete as much of the guided test as possible and keep the generated timestamped log file for issue analysis.

Relevant commits

  • c430b01 Add console backend abstraction and Linux preview asset
  • 3114ecc Document Linux console preview install
  • 829fca8 Allow console app to roll forward to newer dotnet runtimes
  • f25c330 Implement Linux V4L2 PTZ controls
  • 15b5bbf Package Linux console release as tarball
  • 1e63686 Fix Windows Logitech XU commands
  • 0819532 Add camera device info command
  • 2551bc1 Add explicit value modes for CLI moves
  • 24adcc1 Separate home default and preset restore commands
  • 453437e Add preset name management commands
  • bbdf94a Add preset name lookup command
  • d74dc4b Improve camera info and selection syntax
  • 6457ad0 Add cross-platform metadata config and camera test scripts
  • 17f470e Document CLI syntax and expand camera tests
  • 7394c52 Use verb-specific command line parsing
  • a554c54 Improve CLI help and generated docs
  • 6a06847 Document GPL attribution for fork
  • 3dbac0b Improve guided camera test scripts
  • 783e678 Include preset names in camera info
  • 9769fb6 Remove redundant list-presets command
  • d5d61b0 Add experimental move-seek command
  • 3d28c3f Clarify release asset architecture packaging