File: simulate_probe

package info (click to toggle)
linuxcnc 1%3A2.9.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 285,604 kB
  • sloc: python: 202,568; ansic: 109,036; cpp: 99,239; tcl: 16,054; xml: 10,631; sh: 10,303; makefile: 1,255; javascript: 138; sql: 72; asm: 15
file content (51 lines) | stat: -rwxr-xr-x 1,348 bytes parent folder | download | duplicates (3)
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
48
49
50
51
#!/usr/bin/wish

# simulate a probe
# You must disconnect hal connections to motion.probe-input

package require Hal
set this [file tail $::argv0]

if [catch {hal setp motion.probe-input 0} msg] {
  if {[string last connected $msg] >= 0} {
    puts "\nThe pin motion.probe-input is currently connected to a signal"
    puts "Remove the connection to use $this\n"
    exit
  } else {
    puts "\nIs LinuxCNC running? <$msg>"
    puts "Start LinuxCNC before starting $this\n"
  }
  exit
}

pack [label .l -width 20 -height 10 -bg lightgray -fg black \
     -relief raised -bd 5 \
     -text "Push to simulate\nProbe touch"] \
     -fill both -expand 1
bind .l <ButtonPress-1>   probetouch
bind .l <ButtonRelease-1> proberelease

set ::pulse 0
pack [checkbutton .c -text Pulse -variable ::pulse] \
     -fill x -expand 0

proc probetouch {} {
  .l configure -bg red -fg white -text ProbeON
  if [catch {hal setp motion.probe-input 1} msg] {
    puts stderr "Is LinuxCNC running? <$msg>"
    return
  }
  if $::pulse {
    after 100 proberelease
    if [catch {hal setp motion.probe-input 0} msg] {
      puts stderr "Is LinuxCNC running? <$msg>"
      return
    }
  }
}
proc proberelease {} {
  .l configure -bg lightgray -fg black -text ProbeOFF
  if [catch {hal setp motion.probe-input 0} msg] {
    puts stderr "Is LinuxCNC running? <$msg>"
  }
}