Artifact
10d05e3afbea27ba9b265d687bb5c4339400c6d7 :
File
jni/sdl2tk/library/demos/android_sensors.tcl
— part of check-in
[4ab3aa240b]
at
2015-01-19 13:10:10
on branch trunk
— small changes in demo scripts
(user:
chw
size: 1434)
0000: 23 20 41 6e 64 72 6f 69 64 20 64 65 6d 6f 20 66 # Android demo f
0010: 6f 72 20 3c 3c 53 65 6e 73 6f 72 3e 3e 20 65 76 or <<Sensor>> ev
0020: 65 6e 74 73 0a 0a 70 72 6f 63 20 6d 6b 73 65 6e ents..proc mksen
0030: 73 6f 72 20 7b 64 61 74 61 7d 20 7b 0a 20 20 20 sor {data} {.
0040: 20 61 72 72 61 79 20 73 65 74 20 73 65 6e 73 6f array set senso
0050: 72 20 24 64 61 74 61 0a 20 20 20 20 73 65 74 20 r $data. set
0060: 69 20 24 73 65 6e 73 6f 72 28 69 6e 64 65 78 29 i $sensor(index)
0070: 0a 20 20 20 20 73 65 74 20 66 20 2e 73 24 69 0a . set f .s$i.
0080: 20 20 20 20 6c 61 62 65 6c 66 72 61 6d 65 20 24 labelframe $
0090: 66 20 2d 74 65 78 74 20 24 73 65 6e 73 6f 72 28 f -text $sensor(
00a0: 6e 61 6d 65 29 0a 20 20 20 20 74 74 6b 3a 3a 63 name). ttk::c
00b0: 68 65 63 6b 62 75 74 74 6f 6e 20 24 66 2e 65 6e heckbutton $f.en
00c0: 20 2d 74 65 78 74 20 22 45 6e 61 62 6c 65 22 20 -text "Enable"
00d0: 2d 63 6f 6d 6d 61 6e 64 20 5b 6c 69 73 74 20 74 -command [list t
00e0: 6f 67 67 6c 65 73 65 6e 73 6f 72 20 24 69 5d 20 ogglesensor $i]
00f0: 5c 0a 09 2d 76 61 72 69 61 62 6c 65 20 3a 3a 53 \..-variable ::S
0100: 45 4e 53 4f 52 28 24 69 2c 65 6e 61 62 6c 65 64 ENSOR($i,enabled
0110: 29 0a 20 20 20 20 67 72 69 64 20 24 66 2e 65 6e ). grid $f.en
0120: 20 2d 72 6f 77 20 30 20 2d 63 6f 6c 75 6d 6e 20 -row 0 -column
0130: 30 20 2d 73 74 69 63 6b 79 20 77 20 2d 70 61 64 0 -sticky w -pad
0140: 78 20 35 20 2d 70 61 64 79 20 35 0a 20 20 20 20 x 5 -pady 5.
0150: 65 6e 74 72 79 20 24 66 2e 76 61 6c 20 2d 74 65 entry $f.val -te
0160: 78 74 76 61 72 69 61 62 6c 65 20 3a 3a 53 45 4e xtvariable ::SEN
0170: 53 4f 52 28 24 69 2c 76 61 6c 75 65 73 29 20 2d SOR($i,values) -
0180: 77 69 64 74 68 20 33 35 20 5c 0a 09 2d 64 69 73 width 35 \..-dis
0190: 61 62 6c 65 64 66 6f 72 65 67 72 6f 75 6e 64 20 abledforeground
01a0: 62 6c 61 63 6b 20 2d 64 69 73 61 62 6c 65 64 62 black -disabledb
01b0: 61 63 6b 67 72 6f 75 6e 64 20 77 68 69 74 65 20 ackground white
01c0: 5c 0a 09 2d 73 74 61 74 65 20 64 69 73 61 62 6c \..-state disabl
01d0: 65 64 0a 20 20 20 20 67 72 69 64 20 24 66 2e 76 ed. grid $f.v
01e0: 61 6c 20 2d 72 6f 77 20 30 20 2d 63 6f 6c 75 6d al -row 0 -colum
01f0: 6e 20 31 20 2d 73 74 69 63 6b 79 20 65 77 20 2d n 1 -sticky ew -
0200: 70 61 64 78 20 35 20 2d 70 61 64 79 20 35 0a 20 padx 5 -pady 5.
0210: 20 20 20 70 61 63 6b 20 24 66 20 2d 73 69 64 65 pack $f -side
0220: 20 74 6f 70 20 2d 70 61 64 78 20 31 30 20 2d 70 top -padx 10 -p
0230: 61 64 79 20 31 30 0a 20 20 20 20 73 65 74 20 3a ady 10. set :
0240: 3a 53 45 4e 53 4f 52 28 24 69 2c 65 6e 61 62 6c :SENSOR($i,enabl
0250: 65 64 29 20 31 0a 20 20 20 20 75 70 64 61 74 65 ed) 1. update
0260: 73 65 6e 73 6f 72 20 24 69 0a 7d 0a 0a 70 72 6f sensor $i.}..pro
0270: 63 20 75 70 64 61 74 65 73 65 6e 73 6f 72 20 7b c updatesensor {
0280: 69 7d 20 7b 0a 20 20 20 20 61 72 72 61 79 20 73 i} {. array s
0290: 65 74 20 73 65 6e 73 6f 72 20 5b 62 6f 72 67 20 et sensor [borg
02a0: 73 65 6e 73 6f 72 20 67 65 74 20 24 69 5d 0a 20 sensor get $i].
02b0: 20 20 20 73 65 74 20 3a 3a 53 45 4e 53 4f 52 28 set ::SENSOR(
02c0: 24 69 2c 76 61 6c 75 65 73 29 20 24 73 65 6e 73 $i,values) $sens
02d0: 6f 72 28 76 61 6c 75 65 73 29 0a 20 20 20 20 69 or(values). i
02e0: 66 20 7b 24 3a 3a 53 45 4e 53 4f 52 28 24 69 2c f {$::SENSOR($i,
02f0: 65 6e 61 62 6c 65 64 29 7d 20 7b 0a 09 73 65 74 enabled)} {..set
0300: 20 3a 3a 53 45 4e 53 4f 52 28 24 69 2c 65 6e 61 ::SENSOR($i,ena
0310: 62 6c 65 64 29 20 24 73 65 6e 73 6f 72 28 65 6e bled) $sensor(en
0320: 61 62 6c 65 64 29 0a 20 20 20 20 7d 0a 7d 0a 0a abled). }.}..
0330: 70 72 6f 63 20 74 6f 67 67 6c 65 73 65 6e 73 6f proc togglesenso
0340: 72 20 7b 69 7d 20 7b 0a 20 20 20 20 69 66 20 7b r {i} {. if {
0350: 24 3a 3a 53 45 4e 53 4f 52 28 24 69 2c 65 6e 61 $::SENSOR($i,ena
0360: 62 6c 65 64 29 7d 20 7b 0a 09 62 6f 72 67 20 73 bled)} {..borg s
0370: 65 6e 73 6f 72 20 65 6e 61 62 6c 65 20 24 69 0a ensor enable $i.
0380: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 62 6f } else {..bo
0390: 72 67 20 73 65 6e 73 6f 72 20 64 69 73 61 62 6c rg sensor disabl
03a0: 65 20 24 69 0a 20 20 20 20 7d 0a 7d 0a 0a 70 72 e $i. }.}..pr
03b0: 6f 63 20 77 61 74 63 68 64 6f 67 20 7b 7d 20 7b oc watchdog {} {
03c0: 0a 20 20 20 20 61 66 74 65 72 20 63 61 6e 63 65 . after cance
03d0: 6c 20 77 61 74 63 68 64 6f 67 0a 20 20 20 20 61 l watchdog. a
03e0: 66 74 65 72 20 31 30 30 30 30 20 77 61 74 63 68 fter 10000 watch
03f0: 64 6f 67 0a 20 20 20 20 66 6f 72 65 61 63 68 20 dog. foreach
0400: 73 20 5b 6c 72 61 6e 67 65 20 5b 62 6f 72 67 20 s [lrange [borg
0410: 73 65 6e 73 6f 72 20 6c 69 73 74 5d 20 30 20 35 sensor list] 0 5
0420: 5d 20 7b 0a 09 61 72 72 61 79 20 73 65 74 20 64 ] {..array set d
0430: 61 74 61 20 24 73 0a 09 73 65 74 20 69 20 24 64 ata $s..set i $d
0440: 61 74 61 28 69 6e 64 65 78 29 0a 09 61 72 72 61 ata(index)..arra
0450: 79 20 73 65 74 20 73 65 6e 73 6f 72 20 5b 62 6f y set sensor [bo
0460: 72 67 20 73 65 6e 73 6f 72 20 67 65 74 20 24 69 rg sensor get $i
0470: 5d 0a 09 69 66 20 7b 21 24 73 65 6e 73 6f 72 28 ]..if {!$sensor(
0480: 65 6e 61 62 6c 65 64 29 7d 20 7b 0a 09 20 20 20 enabled)} {..
0490: 20 73 65 74 20 3a 3a 53 45 4e 53 4f 52 28 24 69 set ::SENSOR($i
04a0: 2c 65 6e 61 62 6c 65 64 29 20 30 0a 09 7d 0a 20 ,enabled) 0..}.
04b0: 20 20 20 7d 0a 7d 0a 0a 77 6d 20 61 74 74 72 69 }.}..wm attri
04c0: 62 75 74 65 73 20 2e 20 2d 66 75 6c 6c 73 63 72 butes . -fullscr
04d0: 65 65 6e 20 31 0a 62 69 6e 64 20 2e 20 3c 42 72 een 1.bind . <Br
04e0: 65 61 6b 3e 20 65 78 69 74 0a 62 69 6e 64 20 2e eak> exit.bind .
04f0: 20 3c 3c 53 65 6e 73 6f 72 55 70 64 61 74 65 3e <<SensorUpdate>
0500: 3e 20 7b 75 70 64 61 74 65 73 65 6e 73 6f 72 20 > {updatesensor
0510: 25 78 7d 0a 6c 61 62 65 6c 20 2e 74 6f 70 20 2d %x}.label .top -
0520: 74 65 78 74 20 22 44 65 76 69 63 65 20 53 65 6e text "Device Sen
0530: 73 6f 72 73 22 0a 70 61 63 6b 20 2e 74 6f 70 20 sors".pack .top
0540: 2d 73 69 64 65 20 74 6f 70 20 2d 70 61 64 79 20 -side top -pady
0550: 31 30 0a 66 6f 72 65 61 63 68 20 73 20 5b 6c 72 10.foreach s [lr
0560: 61 6e 67 65 20 5b 62 6f 72 67 20 73 65 6e 73 6f ange [borg senso
0570: 72 20 6c 69 73 74 5d 20 30 20 35 5d 20 7b 0a 20 r list] 0 5] {.
0580: 20 20 20 6d 6b 73 65 6e 73 6f 72 20 24 73 0a 7d mksensor $s.}
0590: 0a 77 61 74 63 68 64 6f 67 0a .watchdog.