From 15826f63185211ff3974b29370d04b8082be9c53 Mon Sep 17 00:00:00 2001 From: cbdev Date: Sat, 15 Aug 2020 13:45:23 +0200 Subject: Add VISCA documentation, fix some issues --- backends/visca.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 backends/visca.md (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md new file mode 100644 index 0000000..26e523a --- /dev/null +++ b/backends/visca.md @@ -0,0 +1,50 @@ +### The `visca` backend + +The VISCA backend provides control of compatible PTZ (Pan, Tilt, Zoom) controllable cameras +via the network. This protocol has, with some variations, been implemented by multiple manufacturers +in their camera equipment. There may be some specific limits on the command set depending on make +and model of your equpipment. + +This backend can connect to both UDP and TCP based cameras. + +#### Global configuration + +The `visca` backend does not take any global configuration. + +#### Instance configuration + +| Option | Example value | Default value | Description | +|---------------|-----------------------|-----------------------|---------------------------------------------------------------| +| `id` | `5` | `1` | VISCA Camera address (normally 1 for network communication | +| `connect` | `10.10.10.1 5678` | none | Camera network address and port. Default connection is TCP, when optionally suffixed with the `udp` keyword, connection will be UDP | +| `device` | `/dev/ttyUSB0` | none | (Linux only) Device node for a serial port adapter connecting to the camera | + +#### Channel specification + +Each instance exposes the following channels + +* `pan`: Pan axis +* `tilt`: Tilt axis +* `panspeed`: Pan speed +* `tiltspeed`: Tilt speed +* `zoom`: Zoom position +* `focus`: Focus position +* `memory`: Call memory (if incoming event value is greater than 0.9) + +Example mappings: + +``` +control.pan > visca.pan +control.tilt > visca.tilt +control.btn1 > visca.memory1 +``` + +#### Known bugs / problems + +Value readback / Inquiry is not yet implemented. This backend currently only does output. + +Some manufacturers use VISCA, but require special framing for command flow control. This may be implemented +in the future if there is sufficient interest. + +Please file a ticket if you can confirm this backend working/nonworking with a new make or model +of camera so we can add it to the compatability list! -- cgit v1.2.3 From 5bf8fcd4cd4e5ccabb46e830dffa19fd6f7a2f11 Mon Sep 17 00:00:00 2001 From: cbdev Date: Sat, 15 Aug 2020 22:19:22 +0200 Subject: Update visca documentation --- backends/visca.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index 26e523a..6d978e2 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -1,11 +1,11 @@ ### The `visca` backend -The VISCA backend provides control of compatible PTZ (Pan, Tilt, Zoom) controllable cameras -via the network. This protocol has, with some variations, been implemented by multiple manufacturers -in their camera equipment. There may be some specific limits on the command set depending on make -and model of your equpipment. +The `visca` backend provides control of compatible PTZ (Pan, Tilt, Zoom) controllable cameras +via the network. The VISCA protocol has, with some variations, been implemented by multiple manufacturers +in their camera equipment. There may be some specific limits on the command set depending on the make +and model of your equipment. -This backend can connect to both UDP and TCP based cameras. +This backend can connect to both UDP and TCP based camera control interfaces. #### Global configuration -- cgit v1.2.3 From 9f2deded624e1a934b52ac0d4d33e3612a7fb469 Mon Sep 17 00:00:00 2001 From: cbdev Date: Sat, 12 Sep 2020 19:34:26 +0200 Subject: Fix VISCA dialect --- backends/visca.md | 1 + 1 file changed, 1 insertion(+) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index 6d978e2..4fe1933 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -30,6 +30,7 @@ Each instance exposes the following channels * `zoom`: Zoom position * `focus`: Focus position * `memory`: Call memory (if incoming event value is greater than 0.9) +* `store`: Store current pan/tilt/zoom setup to memory (if incoming event value is greater than 0.9) Example mappings: -- cgit v1.2.3 From d45ca2422fd5bedf48d68a3a537bae924b0cbae7 Mon Sep 17 00:00:00 2001 From: cbdev Date: Fri, 18 Sep 2020 20:12:53 +0200 Subject: Implement additional VISCA channels --- backends/visca.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index 4fe1933..d4fc432 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -29,6 +29,10 @@ Each instance exposes the following channels * `tiltspeed`: Tilt speed * `zoom`: Zoom position * `focus`: Focus position +* `autofocus`: Switch between autofocus (events > 0.9) and manual focus drive mode +* `wb.auto`: Switch between automatic white balance mode (events > 0.9) and manual white balance mode +* `wb.red`, `wb.blue`: Red/Blue channel white balance gain values +* `home`: Return to home position * `memory`: Call memory (if incoming event value is greater than 0.9) * `store`: Store current pan/tilt/zoom setup to memory (if incoming event value is greater than 0.9) @@ -40,12 +44,20 @@ control.tilt > visca.tilt control.btn1 > visca.memory1 ``` +#### Compatability list + +| Manufacturer | Exact model(s) tested | Compatible models | Result / Notes | +|---------------|-------------------------------|-----------------------------------------------|-------------------------------------------------------| +| ValueHD | VHD-V61 | Probably all ValueHD Visca-capable devices | Everything works except for absolute focus control | +| PTZOptics | | Probably all of their PTZ cameras | See ValueHD | + #### Known bugs / problems Value readback / Inquiry is not yet implemented. This backend currently only does output. Some manufacturers use VISCA, but require special framing for command flow control. This may be implemented -in the future if there is sufficient interest. +in the future if there is sufficient interest. Some commands may not work with some manufacturer's cameras due to +different value ranges or command ordering. Please file a ticket if you can confirm this backend working/nonworking with a new make or model -of camera so we can add it to the compatability list! +of camera so we can add it to the compatibility list! -- cgit v1.2.3 From e96ca85d8febf559817b43066ba16c8441ba391b Mon Sep 17 00:00:00 2001 From: cbdev Date: Sat, 19 Sep 2020 00:20:11 +0200 Subject: Add local serial note for VISCA --- backends/visca.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index d4fc432..1dd516e 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -5,7 +5,8 @@ via the network. The VISCA protocol has, with some variations, been implemented in their camera equipment. There may be some specific limits on the command set depending on the make and model of your equipment. -This backend can connect to both UDP and TCP based camera control interfaces. +This backend can connect to both UDP and TCP based camera control interfaces. On Linux, it can also control +devices attached to a serial/RS485 adapter. #### Global configuration -- cgit v1.2.3 From 588503226ff61c2a440f19e050691af93cef0f5f Mon Sep 17 00:00:00 2001 From: cbdev Date: Fri, 9 Oct 2020 23:17:41 +0200 Subject: Implement VISCA relative movement --- backends/visca.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index 1dd516e..cf5906d 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -19,13 +19,14 @@ The `visca` backend does not take any global configuration. | `id` | `5` | `1` | VISCA Camera address (normally 1 for network communication | | `connect` | `10.10.10.1 5678` | none | Camera network address and port. Default connection is TCP, when optionally suffixed with the `udp` keyword, connection will be UDP | | `device` | `/dev/ttyUSB0` | none | (Linux only) Device node for a serial port adapter connecting to the camera | +| `deadzone` | `0.1` | `0.1` | Amount of event value variation to be ignored for relative movement commands | #### Channel specification Each instance exposes the following channels -* `pan`: Pan axis -* `tilt`: Tilt axis +* `pan`: Pan axis (absolute) +* `tilt`: Tilt axis (absolute) * `panspeed`: Pan speed * `tiltspeed`: Tilt speed * `zoom`: Zoom position @@ -36,6 +37,7 @@ Each instance exposes the following channels * `home`: Return to home position * `memory`: Call memory (if incoming event value is greater than 0.9) * `store`: Store current pan/tilt/zoom setup to memory (if incoming event value is greater than 0.9) +* `move.left`, `move.right`, `move.up`, `move.down`: Relative movement with the currently set `panspeed` and `tiltspeed` Example mappings: -- cgit v1.2.3 From db76143dfff9aa69318273010fe2922c1e60ea4c Mon Sep 17 00:00:00 2001 From: cbdev Date: Sun, 16 May 2021 17:09:23 +0200 Subject: Fix VISCA serial output (Fixes #91) --- backends/visca.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index cf5906d..101aa20 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -18,7 +18,7 @@ The `visca` backend does not take any global configuration. |---------------|-----------------------|-----------------------|---------------------------------------------------------------| | `id` | `5` | `1` | VISCA Camera address (normally 1 for network communication | | `connect` | `10.10.10.1 5678` | none | Camera network address and port. Default connection is TCP, when optionally suffixed with the `udp` keyword, connection will be UDP | -| `device` | `/dev/ttyUSB0` | none | (Linux only) Device node for a serial port adapter connecting to the camera | +| `device` | `/dev/ttyUSB0 115200` | none | (Linux only) Device node for a serial port adapter connecting to the camera, optionally followed by the baudrate | | `deadzone` | `0.1` | `0.1` | Amount of event value variation to be ignored for relative movement commands | #### Channel specification -- cgit v1.2.3 From 9be900acd86e03c73266c552db133562005f5607 Mon Sep 17 00:00:00 2001 From: cbdev Date: Mon, 28 Jun 2021 21:46:55 +0200 Subject: Enhance visca relative movement --- backends/visca.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'backends/visca.md') diff --git a/backends/visca.md b/backends/visca.md index 101aa20..7b1bcc3 100644 --- a/backends/visca.md +++ b/backends/visca.md @@ -37,7 +37,9 @@ Each instance exposes the following channels * `home`: Return to home position * `memory`: Call memory (if incoming event value is greater than 0.9) * `store`: Store current pan/tilt/zoom setup to memory (if incoming event value is greater than 0.9) -* `move.left`, `move.right`, `move.up`, `move.down`: Relative movement with the currently set `panspeed` and `tiltspeed` +* `move.left`, `move.right`, `move.up`, `move.down`: Move relative to the current position. Set speed is multiplied by the event value. +* `move.x`, `move.y`: Move relative to the current position along the specified axis. Set speed is multiplied by the event value scaled to the full range (ie. `0.0` to `0.5` moves in one direction, `0.5` to `1.0` in the other). + Example mappings: @@ -45,6 +47,8 @@ Example mappings: control.pan > visca.pan control.tilt > visca.tilt control.btn1 > visca.memory1 +control.stick_x > visca.move.x +control.stick_y > visca.move.y ``` #### Compatability list -- cgit v1.2.3