> (= trg (new "RobobuilderLib.trigger"))
> (.dbg trg)
False
> (.set_dbg trg true)
null
> (.dbg trg)
True
>
; 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
(= rstep (list '(123 156 212 80 108 126 73 40 150 141 68 44 40 138 208 195)
'(130 165 201 81 115 134 81 31 147 149 72 44 40 145 209 201)
'(132 171 197 83 117 137 86 28 148 152 78 43 41 154 209 206)
'(132 175 195 87 117 139 91 27 152 154 87 43 43 164 209 211)
'(132 178 197 91 117 137 95 28 157 152 97 43 48 172 209 213)
'(130 179 201 95 115 134 96 31 161 149 105 43 53 179 210 214)
'(127 178 206 98 112 130 95 35 166 145 111 42 57 182 210 214)
'(124 175 212 100 109 127 92 40 170 142 113 42 59 183 210 214))
)
; 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
(= lstep (list '(124 175 212 100 109 127 92 40 170 142 113 42 59 183 210 214)
'(120 172 217 102 105 123 88 46 170 138 111 42 57 182 210 214)
'(116 167 221 103 101 120 83 51 169 135 106 43 53 179 210 214)
'(113 162 224 102 98 118 77 55 167 133 97 43 48 173 209 213)
'(111 157 225 98 96 118 73 57 163 133 87 43 43 164 209 211)
'(113 153 224 93 98 118 70 55 159 133 79 43 41 154 209 206)
'(116 152 221 89 101 120 69 51 155 135 72 44 40 146 209 201)
'(120 153 217 84 105 123 70 46 152 138 69 44 40 140 208 197)
'(123 156 212 80 108 126 73 40 150 141 68 44 40 138 208 195))
)
(def lpose (dur stp pos lpst)
(if (or pos)
( do (= lpst (.PlayPose wck dur stp (toByteArray (car pos)) (not lpst)))
;(prl (car pos))
(if lpst (lpose dur stp (cdr pos) lpst))
)
)
lpst
)
(def panda ()
(dcmodeOn)
(= lpst false)
(= cnt 0)
(= dir true)
(setallLeds 15 dir (not dir))
(while (not (Console.KeyAvailable))
(do (if dir (do (= lpst (lpose 25 1 rstep lpst))
(pr "R")
(= lpst (lpose 25 1 lstep lpst))
(pr "L")
)
(do (= lpst (lpose 25 1 (reverse lstep) lpst))
(pr "l")
(= lpst (lpose 25 1 (reverse rstep) lpst))
(pr "r")
)
)
(if (> cnt 4)
(do (= cnt 0)
(= dir (not dir))
(setallLeds 15 dir (not dir))
)
(= cnt (+ cnt 1))
)
)
)
(lpose 25 1 (list basic) false)
(setallLeds 15 false false)
(dcmodeOff)
)
(def setallLeds (n blue red)
"turn on/off all servo leds"
(for i 0 n
(wckwriteIO i blue red)
)
)
(def trgAct (st)
(if (not (bound 'wck)) (dcmodeOn))
(= trg (new "RobobuilderLib.trigger"))
(.set_PSD trg 0 51) ; trigger if less than 0 or more than 51 i.e. never - but exercise routine
(.set_timer trg 250) ; every 250 ms
(.print trg)
(.set_trigger wck trg)
(.activate trg st) ;activate trigger (if true)
(.set_dbg trg true) ; debug on
(if (bound 'DCMODEPLUS) (.set_DCMP trg true))
)
(def dtest ()
(while (not (console.keyavailable))
(do (.wckReadPos wck 30 5) (prn (.PadLeft "*" (nth (.respnse wck) 0) #\-) ))))
)
(def lpose (dur stp pos lpst)
(if (or pos)
( do (= lpst (.PlayPose wck dur stp (car pos) false))
;(prn "nxt: " lpst)
(if lpst (lpose dur stp (cdr pos) false) (prn "tiggered"))
)
)
(if (bound 'trg) (prn (.PadLeft "*" (.Pval trg) #\-) ))
lpst
)
(def dptest ()
(setServoPos 13 200 2) (setServoPos 10 50 2)
(while (not (console.keyavailable))
(do (.wckReadPos wck 30 5)
(= pos (nth (.respnse wck) 0))
(prn (.PadLeft "*" pos #\-))
(setServoPos 13 (coerce (- 250 pos) "Byte") 2)
(setServoPos 10 (coerce (+ 0 pos) "Byte") 2)
)
)
)
(= mat (new "matrix" 2 2))
(.set mat '[1.0 2.0 3.0 4.0])
(.print mat)