Re: Question about GTK+ and timers



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

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]