On Sat, Jan 31, 2009 at 02:02:53AM -0500, Josh Kropf wrote:
> To get log entries the command 7400 0200 is used. This time there is
> no JL_ACK response, but instead, another write occurs which just has
> a 16 bit integer value which increments and starts from zero.
> Following this is the JL_ACK and the log entry data.
>
> Now Barry seems to know when to send this 16 bit integer packet since I
> don't do any special handling for this. However the problem is that the
> value 2 is written instead of starting from zero (might not be an
> issue) but never increments.
>
> I use a loop to get the entries and inside the loop I have:
>
> packet.GetEventlogEntry();
> m_socket->Packet(packet);
> m_socket->Receive(response);
> MAKE_JLPACKET(jpack, response);
> uint16_t size = be_btohs(jpack->u.logentry.size);
It's a bit hard to tell without seeing your code, but note that
the packet object can build two kinds of packets: one with just a simple
command, or a packet with command + data. I'm assuming that GetEventlogEntry()
is creating a command + data packet.
If so, then you'll want to pass the argument to GetEventlogEntry() containing
the incrementing count.
For example, from a different function:
int JLPacket::GetSubDir(uint16_t id)
{
SimpleCmd(SB_COMMAND_JL_GET_SUBDIR, 0, 2);
return BigEndianData(id);
}
SimpleCmd() gives the command, and the amount of data to follow in the
next data packet (2). The data is given as a uint16_t big endian value.
The combination of the two, creates a JLPacket object with two chunks
of data to send.
Hopefully I'm answering the right question here. :-)
- Chris
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Barry-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/barry-devel