STREAMER(9)
π 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 thatstreamerexports and later writes data to. you have to supply one string per FIFO, comma-separated.streamerexports 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.Moutput β 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 yourcfgstring, iykyk)streamer.N.curr-depths32 output β current number of samples in the FIFO. when this hits zero, new data will no longer be written to the pins. π«’streamer.N.emptybit output βTRUEwhen FIFO N is empty,FALSEwhen valid data is available.streamer.N.enablebit input β whenTRUE, data from FIFO N gets written to the HAL pins. when false, no data is transferred. defaults toTRUE.streamer.N.underrunss32 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 wheneveremptyis true, and you can reset it with thesetpcommand. πstreamer.N.*clockbit input β clock for data, as specified by the clock-mode pin.streamer.N.*clock-modes32 input β defines the behavior of the clock pin:0(default) free run at every iteration1clock on falling edge of clock pin2clock on rising edge of clock pin3clock 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 β
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
- ubuntu resolute: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- ubuntu stonking: linuxcnc-uspace 1:2.9.4-2ubuntu4 Β· GFDL-1.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms