Pepperdash.Essentials.Plugins.Birddog.Camera 1.0.0-cmd-queue.2

This is a prerelease version of Pepperdash.Essentials.Plugins.Birddog.Camera.
dotnet add package Pepperdash.Essentials.Plugins.Birddog.Camera --version 1.0.0-cmd-queue.2
                    
NuGet\Install-Package Pepperdash.Essentials.Plugins.Birddog.Camera -Version 1.0.0-cmd-queue.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pepperdash.Essentials.Plugins.Birddog.Camera" Version="1.0.0-cmd-queue.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pepperdash.Essentials.Plugins.Birddog.Camera" Version="1.0.0-cmd-queue.2" />
                    
Directory.Packages.props
<PackageReference Include="Pepperdash.Essentials.Plugins.Birddog.Camera" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pepperdash.Essentials.Plugins.Birddog.Camera --version 1.0.0-cmd-queue.2
                    
#r "nuget: Pepperdash.Essentials.Plugins.Birddog.Camera, 1.0.0-cmd-queue.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pepperdash.Essentials.Plugins.Birddog.Camera@1.0.0-cmd-queue.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pepperdash.Essentials.Plugins.Birddog.Camera&version=1.0.0-cmd-queue.2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Pepperdash.Essentials.Plugins.Birddog.Camera&version=1.0.0-cmd-queue.2&prerelease
                    
Install as a Cake Tool

PepperDash Logo

Birddog Camera Plugin

Birddog X1/MAX API - PTZ

Birddog API - PTZ

Essentials Device Configuration

{
    "key": "camera-1",
    "name": "Camera 1",
    "type": "birddogCamera",
    "group": "plugin",
    "properties": {
        "control": {
            "method": "http",
            "tcpSshProperties": {
                "address": "192.168.1.101",
                "port": 8080
            }
        },
        "presets": [
            {
                "Name": "Preset 1",
                "Id": 1
            },
            {
                "Name": "Preset 2",
                "Id": 2
            },
            {
                "Name": "Preset 3",
                "Id": 3
            }
        ],
        "panSpeed": 25,
        "titlSpeed": 25,
        "zoomSpeed": 25
    }
}

Essentials Bridging

{
    "key": "plugin-bridge-1",
    "name": "Plugin Bridge",
    "group": "api",
    "type": "eiscApiAdvanced",
    "properties": {
        "control": {
            "tcpSshProperties": {
                "address": "127.0.0.2",
                "port": 0
            },
            "ipid": "B2",
            "method": "ipidTcp"
        },
        "devices": [
            {
                "deviceKey": "camera-1",
                "joinStart": 1
            }
        ]
    }
}

Essentials Bridge Join Map

The join map below documents the commands implemented in this plugin.

Digitals

Input I/O Output
Tilt up 1
Tilt down 2
Pan left 3
Pan right 4
Zoom in 5
Zoom out 6
Power on 7 Power on Fb
Power off 8 Power off fb
9 Is online fb
Home 10
Preset 1 recall 11
Preset 2 recall 12
Preset 15 recall 25
Preset 16 recall 26
Preset 1 save 31
Preset 2 save 32
Preset 15 save 45
Preset 16 save 46
Privacy on 48
Privacy off 49

Analogs

Input I/O Output
Pan speed 1 Pan speed fb
Tilt speed 2 Tilt speed fb
Zoom speed 3 Zoom speed fb
11 Number of presets fb

Serials

Input I/O Output
1 Device name fb
IP address 2 IP address fb
11 Preset 1 name fb
12 Preset 2 name fb
25 Preset 15 name fb
26 Preset 16 name fb
Device communication 50 Device communication fb

PTZ Control Implementation

This plugin implements PTZ (Pan, Tilt, Zoom) control using Birddog's CGI-based API commands. The implementation provides:

Supported PTZ Functions

  • Pan Control: PanLeft(), PanRight(), PanStop()
  • Tilt Control: TiltUp(), TiltDown(), TiltStop()
  • Zoom Control: ZoomIn(), ZoomOut(), ZoomStop()
  • Position Control: PositionHome(), PositionPrivacy()
  • Preset Management: Recall and Save presets (1-16)

Error Handling

All PTZ methods include comprehensive error handling:

  • HTTP request failures are caught and logged
  • Network communication errors are reported via Debug.LogError
  • Individual operation failures include descriptive error messages

Speed Configuration

PTZ speeds can be configured through the device properties:

  • panSpeed: Range 1-49 (default: 25) - Controls pan movement speed
  • tiltSpeed: Range 1-49 (default: 25) - Controls tilt movement speed
  • zoomSpeed: Range 1-49 (default: 25) - Controls zoom speed

Note: The RESTful API v2.0 uses different ranges (Pan: 0-21, Tilt: 0-18, Zoom: 0-7), but this plugin uses the CGI-based API with its own speed mapping.

API Compatibility

This plugin uses CGI-based commands (cgi-bin/aw_ptz) for maximum compatibility with existing Birddog camera firmware. While Birddog also offers a newer RESTful API v2.0, the CGI approach ensures backward compatibility across different camera models and firmware versions.

DEVJSON Commands

When using DEVJSON commands update the program index devjson:{programIndex} and deviceKey values to match the testing environment.

devjson:1 {"deviceKey":"camera-1", "methodName":"CameraOn", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"CameraOff", "params":[]}

devjson:1 {"deviceKey":"camera-1", "methodName":"PanLeft", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"PanRight", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"PanStop", "params":[]}

devjson:1 {"deviceKey":"camera-1", "methodName":"TiltUp", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"TiltDown", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"TiltStop", "params":[]}

devjson:1 {"deviceKey":"camera-1", "methodName":"ZoomIn", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"ZoomOut", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"ZoomStop", "params":[]}

devjson:1 {"deviceKey":"camera-1", "methodName":"PositionHome", "params":[]}
devjson:1 {"deviceKey":"camera-1", "methodName":"PositionPrivacy", "params":[]}

devjson:1 {"deviceKey":"camera-1", "methodName":"RecallPreset", "params":[4]}
devjson:1 {"deviceKey":"camera-1", "methodName":"SavePreset", "params":[9]}

devjson:1 {"deviceKey":"camera-1", "methodName":"SendCustomCommand", "params":["customCommandString"]}
Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-cmd-queue.2 102 1/14/2026
1.0.0-cmd-queue.1 81 1/14/2026