STREAMER(9)

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

πŸ’– STREAMER(9) β€” the LinuxCNC docs, section 9, bestie πŸ’–

okay so. this is streamer, from the LinuxCNC manual (section 9, the realtime component girlies ✨). she streams your file data straight into HAL, in real time, no cap. let's get into it 🫢


✨ NAME ✨

streamer β€” stream file data into HAL in real time


🌸 SYNOPSIS 🌸

loadrt streamer depth=depth1[,depth2...] cfg=string1[,string2...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so streamer and halstreamer(1) are a duo, a package deal, they're doing this together πŸ’…. the whole mission is streaming data from a file into the HAL, in real time.

streamer is the realtime HAL component β€” she exports HAL pins and she creates a FIFO up in shared memory. hal_streamer (that's the program, non-realtime) copies data from stdin into that FIFO, so that streamer can write it out to the HAL pins. teamwork!! 🀝


πŸŽ€ OPTIONS πŸŽ€

  • depth=depth1[,depth2...] β€” sets how deep the FIFO is that the realtime streamer girl creates to receive data from the non-realtime hal-streamer. you can pass multiple depth values separated by commas if you need more than one FIFO (like, say, you wanna stream data to two different realtime threads). multi-FIFO icon behaviour 🌈
  • cfg=string1[,string2...] β€” defines the set of HAL pins that streamer exports and later writes data to. you have to supply one string per FIFO, comma-separated. streamer exports one pin for each character in the string. the legal characters are:
    • F, f (float pin)
    • B, b (bit pin)
    • S, s (s32 pin)
    • U, u (u32 pin)

πŸ”₯ FUNCTIONS πŸ”₯

  • streamer.N β€” one function gets created per FIFO, numbered from zero. so FIFO 0, FIFO 1, FIFO 2… you get the vibe πŸ’œ

πŸ‘‘ PINS πŸ‘‘

  • streamer.N.pin.M output β€” data from column M of the data in FIFO N shows up on this pin. the pin type depends on the config string. (yes, which type it is = all down to your cfg string, iykyk)
  • streamer.N.curr-depth s32 output β€” current number of samples in the FIFO. when this hits zero, new data will no longer be written to the pins. 🫒
  • streamer.N.empty bit output β€” TRUE when FIFO N is empty, FALSE when valid data is available.
  • streamer.N.enable bit input β€” when TRUE, data from FIFO N gets written to the HAL pins. when false, no data is transferred. defaults to TRUE.
  • streamer.N.underruns s32 read/write β€” the number of times that sampler has tried to write data to the HAL pins but found no fresh data in the FIFO. it increments whenever empty is true, and you can reset it with the setp command. πŸ’€
  • streamer.N.*clock bit input β€” clock for data, as specified by the clock-mode pin.
  • streamer.N.*clock-mode s32 input β€” defines the behavior of the clock pin:
    • 0 (default) free run at every iteration
    • 1 clock on falling edge of clock pin
    • 2 clock on rising edge of clock pin
    • 3 clock on any edge of clock pin

🌈 SEE ALSO 🌈

halstreamer(1), sampler(9), halsampler(1)


πŸ’€ BUGS πŸ’€

should an enable HAL pin be added, to allow streaming to be turned on and off? (genuinely asking, girl, it's a real question in the docs πŸ™ˆ)


🫢 AUTHOR 🫢

original version by John Kasunich, as part of the LinuxCNC project. improvements by several other members of the LinuxCNC development team. slay, collaborative king πŸ‘‘


πŸ“’ REPORTING BUGS πŸ“’

report bugs to jmkasunich AT users DOT sourceforge DOT net


Copyright Β© 2006 John Kasunich. this is free software; see the source for copying conditions. there is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. periodt. πŸ’…


and that's the whole page bestie β€” brought to you by the LinuxCNC docs, dated 03/17/2026. now go stream that data, main character πŸ¦‹πŸ’–βœ¨

πŸ“¦ where this page comes from