'**************************************************** '* Sire_pics.inc * '**************************************************** 'this is the code for using sire as installation with 3 picradars. 'we keep it in a separate file because we want to keep it in both g_sens and g_robots %Sire_install = 47 DECLARE SUB Sire_Installatie () SUB Sire_installatie () 'this task is meant for using sire in an installation with 3 picrads 'in performance it can become "Sire's Pic" ' needs PicRadar's A, B, C ' Lampjes bij bewegingsdetektie - done 18.12.2005 gwr. STATIC radcount AS LONG ' counts 0,1,2 STATIC sircount AS LONG ' counts 0,1,2,3,4,5,6,7 STATIC currentvals() AS SINGLE ' 0-23 STATIC poly() AS SINGLE 'single for integration purposes STATIC mx AS SINGLE STATIC f AS LONG LOCAL i AS WORD LOCAL j AS WORD LOCAL cn AS SINGLE LOCAL b$ IF ISFALSE task(%Sire_Install).tog THEN Task(%Sire_Install).tog = %true DIM currentvals(23) DIM poly(2) END IF INCR radcount 'not the intuitive way of counting, but this way each radar is polled every 3rd time the task is called.. IF radcount > 2 THEN INCR sircount sircount = sircount MOD 7 radcount = 0 END IF IF @pRadPic(radcount).amp < 2 THEN FOR j = 0 TO 7 i = 8 * radcount + j IF currentvals(i) > 0 THEN NoteOff Sire.channel, Sire.LowTes + i currentvals(i) = 0 END IF NEXT EXIT SUB ELSEIF @pRadPic(radcount).amp < 6 THEN FOR j = 0 TO 7 i = 8 * radcount + j IF currentvals(i) > 1 THEN mPlay Sire.channel, Sire.LowTes + i, 1 currentvals(i) = 1 END IF NEXT EXIT SUB END IF poly(radcount) = (2 * poly(radcount) + 1 + @pRadPic(radcount).amp / 21) / 3 'was 4 * en /5 IF sircount > poly(radcount) THEN FOR j = sircount TO 7 i = 8 * radcount + sircount IF currentvals(i)> 47 THEN mPlay Sire.channel, Sire.LowTes + i, 1 '0 currentvals(i) = 47 END IF NEXT EXIT SUB END IF i = 8 * radcount + sircount cn = 48 + 2 * @pRadPic(radcount).f '^ .8 currentvals(i) = MAX(48, (2 * currentvals(i) + cn) / 3) 'was *5 en /6 IF currentvals(i) >= 48 THEN j = Sire_Midinoot2velo(currentvals(i)) 'cn) mPlay Sire.channel, Sire.LowTes + i, HIBYT(j) 'currentvals(i) Controller Sire.channel, Sire.lowtes + i, LOBYT(j) ' lsb mx = MAX(mx, currentvals(i)) CONTROL SET TEXT gh.cockpit, %GMT_MSG2, STR$(mx) ELSEIF currentvals(i) > 1 THEN currentvals(i) = 1 mPlay Sire.channel, Sire.LowTes + i,1 END IF ' lampjes: - added gwr. 18.12.2005 SELECT CASE @pRadPic(radcount).f CASE < 4 IF sire.ctrl(84+ (radcount * 3)) THEN NoteOff Sire.channel,84 + (radcount * 3) sire.ctrl(84 + (radcount *3)) = %False END IF IF sire.ctrl(85 + (radcount *3)) THEN NoteOff Sire.channel, 85 + (radcount * 3) sire.ctrl(85 + (radcount *3)) = %False END IF IF sire.ctrl(86 + (radcount *3)) THEN NoteOff Sire.channel, 86 + (radcount * 3) sire.ctrl(86 + (radcount *3)) = %False END IF CASE < 8 IF ISFALSE sire.ctrl(84+(radcount *3)) THEN mPlay Sire.channel, 84 + (radcount * 3), %True Sire.ctrl(84+ (radcount *3)) = %True END IF IF Sire.ctrl(85+(radcount *3)) THEN NoteOff Sire.channel, 85 + (radcount * 3) Sire.ctrl(85+(radcount *3)) = %False END IF IF sire.ctrl(86 + (radcount *3)) THEN NoteOff Sire.channel, 86 + (radcount * 3) sire.ctrl(86 + (radcount *3)) = %False END IF CASE < 14 IF ISFALSE sire.ctrl(84+(radcount *3)) THEN mPlay Sire.channel, 84 + (radcount * 3), %True Sire.ctrl(84+ (radcount *3)) = %True END IF IF ISFALSE Sire.ctrl(85+(radcount *3)) THEN mPlay Sire.channel, 85 + (radcount * 3), %True Sire.ctrl(85+(radcount *3)) = %True END IF IF sire.ctrl(86 + (radcount *3)) THEN NoteOff Sire.channel, 86 + (radcount * 3) sire.ctrl(86 + (radcount *3)) = %False END IF CASE ELSE IF ISFALSE sire.ctrl(84+(radcount *3)) THEN mPlay Sire.channel, 84 + (Radcount * 3), %TRue sire.ctrl(84 + (radcount * 3)) = %True END IF IF ISFALSE sire.ctrl(85+(radcount *3)) THEN ' upward LED's mPlay Sire.channel, 85 + (Radcount * 3), %True sire.ctrl(85 + (radcount * 3)) = %True END IF IF ISFALSE sire.ctrl(86+(radcount *3)) THEN ' led spotlites mPlay Sire.channel, 86 + (Radcount * 3), %True sire.ctrl(86 + (radcount * 3)) = %True END IF END SELECT END SUB