Re: Question about GTK+ and timers



On Fri, 8 Apr 2011 15:43:17 -0700
Igor Korot <ikorot01 gmail com> wrote:
> Paul,
> 
> On Fri, Apr 8, 2011 at 3:28 PM, Paul Davis
> <paul linuxaudiosystems com> wrote:
> > On Fri, Apr 8, 2011 at 6:14 PM, Igor Korot <ikorot01 gmail com>
> > wrote:
> >> Mikhail,
> >>
> >> On Fri, Apr 8, 2011 at 2:33 PM, Mikhail Titov <mlt gmx us> wrote:
> >>> As far as I understand it is possible to use it with NULL for
> >>> encoding. It should just read bytes with no interpretation.
> >>>
> >>> http://www.mail-archive.com/gtk-list gnome org/msg29589.html
> >>>
> >>> Mikhail
> >>
> >> I understand this.
> >> However, what I want is to read data in:
> >>
> >> struct Data
> >> {
> >>      char m_header[2];
> >>      char m_code;
> >>      char m_voltageMask[2];
> >>     char m_highestVoltage[2];
> >>     char m_lowestVoltage[2];
> >>     char m_status;
> >> } m_data;
> >>
> >> I need to look at voltageMask, highestVoltage and lowestVoltage
> >> initially. Is it possible to use m_data with GIOChannel?
> >
> > of course.
> >
> > but you'd better hope that the compiler packs that data structure in
> > the same way the device is sending it. you'd be far better off not
> > using a struct for this, but just reading (in your case) 10 bytes.
> >
> > sending raw C structs over any kind of "wire protocol" almost always
> > turns out to be huge mistake unless its been very carefully thought
> > about.
> 
> 
> So best way is to use char m_data[10]?

Why do you have this idea you need to use an aggregate, which then
causes packing and layout issues to arise, leading to non-portability.
Why not send them as individual entities, since you are guaranteed that
they will be serialised? (I am not saying that you don't have a reason,
but you have not given it.)

Chris





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]