if {$::isLaptop} return if {$::thisNode eq "folk-interact"} { namespace eval ::Camera { variable WIDTH 1920 variable HEIGHT 1080 } } else { namespace eval ::Camera { variable WIDTH 1280 variable HEIGHT 720 } } set width $::Camera::WIDTH set height $::Camera::HEIGHT Start process "camera" { Wish $::thisProcess shares statements like \ [list /someone/ claims the camera /...anything/] source pi/Camera.tcl Camera::init $width $height puts "Camera tid: [getTid] booted at [clock milliseconds]" set ::oldFrames [list] When $::thisProcess has step count /c/ { set frame [Camera::grayFrame] Commit { Claim the camera time is $::stepTime Claim the camera frame is $frame at [clock milliseconds] } lappend ::oldFrames $frame if {[llength $::oldFrames] >= 10} { set ::oldFrames [lassign $::oldFrames oldestFrame] Camera::freeImage $oldestFrame } } } set ::cameraTime none When the camera time is /cameraTime/ { set ::cameraTime $cameraTime } # For backward compatibility. When the camera frame is /grayFrame/ at /timestamp/ { Claim the camera frame is $grayFrame }