Manned.org

time

TIME(9)                           HAL Component                          TIME(9)

NAME
       time - Time on in Hours, Minutes, Seconds

SYNOPSIS


       loadrt time [count=N|names=name1[,name2...]]

DESCRIPTION
       Time

       When either the time.N.start or time.N.pause bits goes true the cycle
       timer resets and starts to time until time.N.start AND time.N.pause go
       false. When the time.N.pause bit goes true timing is paused until
       time.N.pause goes false. If you connect time.N.start to halui.program.is-
       running and leave time.N.pause unconnected the timer will reset during a
       pause. See the example connections below for more information.

       Time returns the hours, minutes, and seconds that time.N.start is true.

       Sample PyVCP code to display the hours:minutes:seconds.

       <pyvcp>
         <hbox>
         <label>
           <text>"Cycle Time"</text>
           <font>("Helvetica",14)</font>
         </label>
         <u32>
             <halpin>"time-hours"</halpin>
             <font>("Helvetica",14)</font>
             <format>"2d"</format>
         </u32>
         <label>
           <text>":"</text>
           <font>("Helvetica",14)</font>
         </label>
         <u32>
             <halpin>"time-minutes"</halpin>
             <font>("Helvetica",14)</font>
             <format>"2d"</format>
         </u32>
         <label>
           <text>":"</text>
           <font>("Helvetica",14)</font>
         </label>
         <u32>
             <halpin>"time-seconds"</halpin>
             <font>("Helvetica",14)</font>
             <format>"2d"</format>
         </u32>
         </hbox> </pyvcp>

       In your post-gui.hal file you might use one of the following to connect
       this timer:

        For a new config:

        loadrt time
        addf time.0 servo-thread
        net cycle-timer        time.0.start <= halui.program.is-running
        net cycle-timer-pause  time.0.pause <= halui.program.is-paused
        net cycle-seconds pyvcp.time-seconds <= time.0.seconds
        net cycle-minutes pyvcp.time-minutes <= time.0.minutes
        net cycle-hours pyvcp.time-hours <= time.0.hours


        Previous to this version if you wanted the timer to continue running
        during a pause instead of resetting, you had to use a HAL NOT component
        to invert the halui.program.is-idle pin and connect to time.N.start as
        shown below:

        loadrt time
        loadrt not
        addf time.0 servo-thread
        addf not.0 servo-thread
        net prog-running not.0.in <= halui.program.is-idle
        net cycle-timer time.0.start <= not.0.out
        net cycle-seconds pyvcp.time-seconds <= time.0.seconds
        net cycle-minutes pyvcp.time-minutes <= time.0.minutes
        net cycle-hours pyvcp.time-hours <= time.0.hours

        For those who have this setup already, you can simply add a net
       connecting
        time.N.pause to halui.program.is-paused:

        net cycle-timer-pause time.0.pause <= halui.program.is-paused




FUNCTIONS
       time.N (requires a floating-point thread)


PINS
       time.N.start bit in
              Timer On

       time.N.pause bit in (default: 0)
              Pause

       time.N.seconds u32 out
              Seconds

       time.N.minutes u32 out
              Minutes

       time.N.hours u32 out
              Hours

AUTHOR
       John Thornton, itaib, Moses McKnight

LICENSE
       GPL

LinuxCNC Documentation             2025-11-03                            TIME(9)