blob: 8a081851d9ab77df35c273bebc9db137d09d66c1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
(define-module (nanolight fixture-library robe)
#:use-module (oop goops)
#:use-module (nanolight fixture)
#:export (robe-dl7s-profile-mode1))
(define (robe-dl7s-profile-mode1)
(list
(make <fixture-attribute> #:name 'pan
#:range '(0 540) #:type 'continuous #:home-value 270
#:translator (lambda (universe start-addr value set-dmx)
(let ((val16 (* value (/ 65536 540))))
(set-dmx universe (chan 1 start-addr)
(msb val16))
(set-dmx universe (chan 2 start-addr)
(lsb val16)))))
(make <fixture-attribute> #:name 'tilt
#:range '(0 270) #:type 'continuous #:home-value 135
#:translator (lambda (universe start-addr value set-dmx)
(let ((val16 (* value (/ 65536 270))))
(set-dmx universe (chan 3 start-addr)
(msb val16))
(set-dmx universe (chan 4 start-addr)
(lsb val16)))))
(make <fixture-attribute> #:name 'strobe
#:range '(#f #t) #:type 'step #:home-value #f
#:translator (lambda (universe start-addr value set-dmx)
(set-dmx universe (chan 49 start-addr)
(if value 95 32))))
(make <fixture-attribute> #:name 'intensity
#:range '(0 100) #:type 'continuous #:home-value 0
#:translator (lambda (universe start-addr value set-dmx)
(let ((val16 (* value (/ 65536 100))))
(set-dmx universe (chan 50 start-addr)
(msb val16))
(set-dmx universe (chan 51 start-addr)
(lsb val16)))))
(make <fixture-attribute> #:name 'prism
#:range '(#f #t) #:type 'step #:home-value #f
#:translator (lambda (universe start-addr value set-dmx)
(set-dmx universe (chan 28 start-addr)
(if value 50 0))))))
|