MULTICLICK(9)

πŸ“¦
version 2.9.4 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’… MULTICLICK β€” the HAL component, lovingly presented (manual page MULTICLICK(9), section 9) πŸŽ€

okay bestie, sit down, hydrate, because we're about to talk about the single most extra click detector in LinuxCNC: multiclick. she counts your clicks. single, double, triple, quadruple. she's giving wrist-tracking, she's giving "did you just tap me four times". iconic. ✨


✨ NAME ✨

multiclick β€” a Single-, double-, triple-, and quadruple-click detector πŸ–±οΈπŸ’₯


πŸ¦‹ SYNOPSIS πŸ¦‹

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

that's it. that's the whole summoning ritual. πŸ•―οΈ


🌸 DESCRIPTION 🌸

so, what even is a click, fr fr? a click is defined as a rising edge on the in pin, followed by the in pin being True for at most max-hold-ns nanoseconds, followed by a falling edge. ⏱️ like... press, hold (briefly, don't make it weird), release.

a double-click? that's defined as two clicks, separated by at most max-space-ns nanoseconds with the in pin in the False state. two clicks, cozy together, not too far apart. 🫢

and honestly? I bet you can guess the definition of triple- and quadruple-click. go on. guess. I'll wait. πŸ’…

πŸ’€ real talk warning: you probably want to run the input signal through a debounce component before feeding it to the multiclick detector, if the input is at all noisy. noisy input + click detector = chaos. protect her peace.

the *-click pins go high as soon as the input detects the correct number of clicks. instant. immediate. main character energy. πŸ”₯

the *-click-only pins go high a short while after the click β€” after the click separator space timeout has expired β€” to show that no further click is coming. basically she's like "okay nobody else is showing up, this party's over" πŸŽ‰. this is useful for triggering halui MDI commands. noted. write that down. πŸ“


πŸ‘‘ FUNCTIONS πŸ‘‘

  • multiclick.N β€” Detect single-, double-, triple-, and quadruple-clicks. the whole job. she does the whole job. πŸ‘‘

πŸŽ€ PINS πŸŽ€

  • multiclick.N.in bit in β€” The input line, this is where we look for clicks. πŸ‘€ this is the one and only thing you're feeding her.
  • multiclick.N.single-click bit out β€” Goes high briefly when a single-click is detected on the in pin. πŸ–±οΈ
  • multiclick.N.single-click-only bit out β€” Goes high briefly when a single-click is detected on the in pin and no second click followed it. πŸ–±οΈβœ‹
  • multiclick.N.double-click bit out β€” Goes high briefly when a double-click is detected on the in pin. πŸ–±οΈπŸ–±οΈ
  • multiclick.N.double-click-only bit out β€” Goes high briefly when a double-click is detected on the in pin and no third click followed it. πŸ–±οΈπŸ–±οΈβœ‹
  • multiclick.N.triple-click bit out β€” Goes high briefly when a triple-click is detected on the in pin. πŸ–±οΈπŸ–±οΈπŸ–±οΈ
  • multiclick.N.triple-click-only bit out β€” Goes high briefly when a triple-click is detected on the in pin and no fourth click followed it. πŸ–±οΈπŸ–±οΈπŸ–±οΈβœ‹
  • multiclick.N.quadruple-click bit out β€” Goes high briefly when a quadruple-click is detected on the in pin. πŸ–±οΈπŸ–±οΈπŸ–±οΈπŸ–±οΈ (yes bestie, four. the limit does exist.)
  • multiclick.N.quadruple-click-only bit out β€” Goes high briefly when a quadruple-click is detected on the in pin and no fifth click followed it. πŸ–±οΈπŸ–±οΈπŸ–±οΈπŸ–±οΈβœ‹ (there is no fifth click. this is the end of the road.)
  • multiclick.N.state s32 out β€” (no further description in the original, she's mysterious like that 🀫)

πŸ’– PARAMETERS πŸ’–

  • multiclick.N.invert-input bit rw (default: FALSE) β€” If FALSE (the default), clicks start with rising edges. If TRUE, clicks start with falling edges. flip the vibe. πŸ”„
  • multiclick.N.max-hold-ns u32 rw (default: 250000000) β€” If the input is held down longer than this, it's not part of a multi-click. (Default 250,000,000 ns, 250 ms.) so like, hold it too long and she's like "okay that's just a hold, not a click, go sit down" πŸ’€
  • multiclick.N.max-space-ns u32 rw (default: 250000000) β€” If the input is released longer than this, it's not part of a multi-click. (Default 250,000,000 ns, 250 ms.) too much time apart and the clicks stop being a group. they're just... strangers. 😭
  • multiclick.N.output-hold-ns u32 rw (default: 100000000) β€” Positive pulses on the output pins last this long. (Default 100,000,000 ns, 100 ms.) short little pop of high, then she's back down. a blip. a moment. ⭐

🌈 AUTHOR 🌈

Sebastian Kuzminsky β€” the legend who built her. πŸ‘‘


πŸ“œ LICENSE πŸ“œ

GPL β€” free as in freedom, bestie. πŸ•ŠοΈ


and that's the whole page, no crumbs left. this was LinuxCNC Documentation, dated 2026-03-17, and you just read MULTICLICK(9) in full. go forth and count those clicks. slay. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from