aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-06-26 21:35:06 +0200
committerThomas White <taw@physics.org>2022-06-26 21:37:17 +0200
commit9f80dbf5c3b8ad17ea2d563e729af1171a3c6d86 (patch)
tree0646e592a6ce0be1067b2a9b24d1d662a8cd84e8 /docs
parent31436be9c2e4fa72d95eacf9c196abc0f9544b31 (diff)
Implement missing strobe channels (including in documentation)
Diffstat (limited to 'docs')
-rw-r--r--docs/new-fixture.rst18
1 files changed, 14 insertions, 4 deletions
diff --git a/docs/new-fixture.rst b/docs/new-fixture.rst
index 084917e..2c0771d 100644
--- a/docs/new-fixture.rst
+++ b/docs/new-fixture.rst
@@ -126,7 +126,8 @@ We will totally ignore the pre-programmed colour temperatures in favour of
having direct control over the cold and warm LED values. The manual does not
even say what the pre-programmed temperatures are, so this is no loss at all.
-The strobe channel is not implemented in this example.
+Unfortunately, the manual doesn't say what frequencies are meant be 'slow' and
+'fast' strobe. We'll assume that 'slow' is 1 Hz, and 'fast' is 25 Hz.
Here is the code::
@@ -146,13 +147,22 @@ Here is the code::
;; List of attributes
(fixture-attributes
(attr-continuous 'intensity '(0 100) 0)
- (attr-continuous 'colour-temperature '(2800 6400) 3200))
+ (attr-continuous 'colour-temperature '(2800 6400) 3200)
+ (attr-list 'strobe '(#f #t) #f)
+ (attr-continuous 'strobe-frequency '(1 25) 1))
;; Scanout code follows
- ;; Set unused macro and strobe channels to zero
+ ;; Set unused macro channel to zero
(set-chan8 4 0)
- (set-chan8 3 0)
+
+ ;; Set strobe channel
+ (if (get-attr 'strobe)
+ (set-chan8 3 (scale-and-clamp-to-range
+ (get-attr 'strobe-frequency)
+ '(1 25)
+ '(16 255)))
+ (set-chan8 3 0))
;; Set intensity channel
(set-chan8 5 (percent->dmxval8 (get-attr 'intensity))))