embkernel
Main Page
Modules
Classes
Files
File List
All
Classes
Functions
Variables
Typedefs
Groups
Pages
LIB
LibPktHandler.hpp
1
//------------------------------------------------------------------------------
2
//This file is part of embKernel.
3
//See license.txt for the full license governing this code.
4
//------------------------------------------------------------------------------
5
6
#ifndef LIB_PKT_HANDLER_HPP_
7
#define LIB_PKT_HANDLER_HPP_
8
9
#include "LibStreamIn.hpp"
10
#include "LibStreamOut.hpp"
11
12
class
LibPktHandler {
13
public
:
14
typedef
struct
{
15
uint16_t cmd;
16
uint16_t dataLen;
17
} PKT_HDR;
18
19
typedef
struct
{
20
PKT_HDR hdr;
21
uint8_t data[1024];
22
} PKT;
23
24
typedef
enum
{
25
RES_SUCCESS = 0,
26
RES_PKT_DROPPED = 1,
27
RES_TIMEOUT = 2,
28
} RESULT;
29
30
private
:
31
PKT* mCurrentPkt;
32
uint16_t mCmd;
33
uint16_t mDataLen;
34
int
mCurrentPosition;
35
bool
mIsError;
36
37
public
:
38
LibPktHandler();
39
40
RESULT recvPkt(LibStreamIn& stream, PKT** pkt,
Rtos::TICK
timeout =
Rtos::TICK_INFINITE
);
41
void
freePkt(PKT** pkt);
42
RESULT sendPkt(LibStreamOut& stream, uint16_t cmd, uint16_t dataLen,
const
void
* data,
Rtos::TICK
timeout =
Rtos::TICK_INFINITE
);
43
void
reset();
44
inline
bool
isError() {
45
return
mIsError;
46
}
47
};
48
49
#endif
/* LIB_PKT_HANDLER_HPP_ */
Generated on Sun May 12 2013 23:28:50 for embkernel by
1.8.3.1