pt_must $point $pos
}
-proc s0 {seg} {
+proc s0 {v seg} {
upvar #0 segdetect($seg) segd
if {![info exists segd]} {
debug "segment $seg = already"
unset segd
gui "D0 $seg"
}
-proc s1 {seg} {
+proc s1 {v seg} {
upvar #0 segdetect($seg) segd
if {![info exists segd]} {
+ pm_detect $v
debug "segment $seg ! (overwrites =)"
} elseif {[string length $segd]} {
debug "segment $seg ! (cancels =)"
proc pm_maydetect {d seg} {
switch -exact $seg {
- 06 { s$d X10 }
- 09 { s$d X8 }
- 0a { s$d X6 }
- 04 { s$d X5 }
- 02 { s$d X7 }
- 07 { s$d X9 }
- 14 { s$d A5 }
- 20 { s$d A6 }
- 1a { s$d A4 }
- 10 { s$d A2 }
- 03 { s$d X1 }
- 05 { s$d X3 }
- 16 { s$d A3 }
- 1c { s$d A1 }
- 08 { s$d X2 }
- 0b { s$d X4 }
+ 06 { s$d $seg X10 }
+ 09 { s$d $seg X8 }
+ 0a { s$d $seg X6 }
+ 04 { s$d $seg X5 }
+ 02 { s$d $seg X7 }
+ 07 { s$d $seg X9 }
+ 14 { s$d $seg A5 }
+ 20 { s$d $seg A6 }
+ 1a { s$d $seg A4 }
+ 10 { s$d $seg A2 }
+ 03 { s$d $seg X1 }
+ 05 { s$d $seg X3 }
+ 16 { s$d $seg A3 }
+ 1c { s$d $seg A1 }
+ 08 { s$d $seg X2 }
+ 0b { s$d $seg X4 }
}
}
+#proc pm_nodetect {seg} {
+# global segsasgot
+# if {![string compare $seg [lindex $segsasgot 1]]} {
+# set segsasgot [list [lindex $segsasgot 1] [lindex $segsasgot 0]]
+# }
+#}
+
proc pm_detect {seg} {
global segs pname segsasgot
if {[string compare $seg [lindex $segsasgot 1]]} {
set segs $segsasgot
}
debug "pm_detect $seg ($segsasgot) ($segs) $pname$seg"
+# if {[lsearch -exact {
+# 06 09 0a 04 02 07 14 20
+# 0b 08 1c 16
+# 1a 10 03 05
+# } $seg] < 0} return
switch -exact $pname$seg {
l16 - l1c - l08 - l0b { polarity y }
l10 - l1a - l03 - l05 { polarity x }
20 { pt_ifthenmust "42 43 A6" 1 "02 03 A5" 1 }
}
switch -exact [join $segs -] {
- 02-07 { pt_maybe "00 01 X7" 0 }
- 07-02 { pt_maybe "02 03 A5" 1 }
- 09-06 { pt_maybe "40 41 X8" 1 }
- 06-09 { pt_maybe "42 43 A6" 0 }
+ 02-07 { pt_maybe "02 03 A5" 1 }
+ 07-02 { pt_maybe "00 01 X7" 0 }
+ 09-06 { pt_maybe "42 43 A6" 0 }
+ 06-09 { pt_maybe "40 41 X8" 1 }
}
}
}
proc frompic {m} {
+ set v [lindex $m 1]
switch -glob [lindex $m 0] {
01 - 02 { tellnmra $m }
09 { fp $m; pm_hello }
07 { puts "short circuit"; exit 1 }
28 { fp $m; pm_charged }
- 9[0-7] { fp $m; pm_maydetect 0 [lindex $m 1] }
- 9? { fp $m; pm_detect [lindex $m 1]; pm_maydetect 1 [lindex $m 1] }
+ 9[0-7] { fp $m; pm_maydetect 0 $v }
+ 9? { fp $m; pm_maydetect 1 $v }
0a - [234567]? { puts "pic debug $m" }
* { fp $m; fail "pic unknown $m" }
}