All of lore.kernel.org
 help / color / mirror / Atom feed
* libgpiod - bufor problem
@ 2022-08-26 15:04 Adam Tofilski
  2022-08-27  1:37 ` Kent Gibson
  0 siblings, 1 reply; 2+ messages in thread
From: Adam Tofilski @ 2022-08-26 15:04 UTC (permalink / raw)
  To: linux-gpio

Dear Bartosz
First of all thank you for gpiomon software.

I try to use if for data acquisition from an optical sensor. It works fine
from command line but when I try to run it as QProcess in QT (GUI) there is
a problem with buffering. The output is transferred occasionally in large
pieces. What I need is to get output immediately after each line. I plan to
distribute my software as open source.

As I understand this problem can be solved by adding to your code 
setbuf(stdout, NULL);
or 
fflush(stdout) 
after each line.

I hope you will be able to help me with this.
Best wishes
Adam

Adam Tofilski
Department of Zoology and Animal Welfare
Agricultural University
29 Listopada 56
31-425 Krakow
Poland
rotofils@cyf-kr.edu.pl
tel: +48 12 6625069



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: libgpiod - bufor problem
  2022-08-26 15:04 libgpiod - bufor problem Adam Tofilski
@ 2022-08-27  1:37 ` Kent Gibson
  0 siblings, 0 replies; 2+ messages in thread
From: Kent Gibson @ 2022-08-27  1:37 UTC (permalink / raw)
  To: Bartosz Golaszewski; +Cc: linux-gpio, Adam Tofilski

On Fri, Aug 26, 2022 at 05:04:58PM +0200, Adam Tofilski wrote:
> Dear Bartosz
> First of all thank you for gpiomon software.
> 
> I try to use if for data acquisition from an optical sensor. It works fine
> from command line but when I try to run it as QProcess in QT (GUI) there is
> a problem with buffering. The output is transferred occasionally in large
> pieces. What I need is to get output immediately after each line. I plan to
> distribute my software as open source.
> 
> As I understand this problem can be solved by adding to your code 
> setbuf(stdout, NULL);
> or 
> fflush(stdout) 
> after each line.
> 

My proposed tool changes for libgpiod v2[1] include the fflush after
each line for the same reason.  I had issues with the setbuf approach,
though I don't recall the specifics, so went with the fflush.

Maybe do the same for v1?

Though I note that the target audience for that is cheap and cheerful
scripts, not apps.

Adam, the appropriate solution for you would be to use libgpiod directly
rather than wrapping gpiomon.  The tools like gpiomon are just that -
tools. The output of gpiomon is not part of the stable ABI, so
getting the events directly from libgpiod is the way to go.
Apps should use the C library directly, or the C++ or Python bindings
as appropriate.

Cheers,
Kent.

[1] https://lore.kernel.org/linux-gpio/20220708120626.89844-1-warthog618@gmail.com/

> I hope you will be able to help me with this.
> Best wishes
> Adam
> 
> Adam Tofilski
> Department of Zoology and Animal Welfare
> Agricultural University
> 29 Listopada 56
> 31-425 Krakow
> Poland
> rotofils@cyf-kr.edu.pl
> tel: +48 12 6625069
> 
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-08-27  1:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-26 15:04 libgpiod - bufor problem Adam Tofilski
2022-08-27  1:37 ` Kent Gibson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.