Re: Question about GTK+ and timers


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.
>>> 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]?

And then just get m_data[4], m_data[5], m_data[6], m_data[7],
m_data[8] and m_data[9]?

I am getting bytes over the wire thru the serial port and transfer is
performed on the client side.

read( handle, &m_data, 10 );

I am just getting 10 bytes which are represented on the client as
m_data members.

Am I wrong here? It's possible there will be a packing issue, but I'm
about to test this.

Thank you.


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