Subversion Repositories NaviCtrl

Rev

Rev 238 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
110 killagreg 1
#ifndef _MKPROTOCOL_H
2
#define _MKPROTOCOL_H
3
 
4
// slave addresses
190 killagreg 5
#define ANY_ADDRESS 0
110 killagreg 6
#define FC_ADDRESS 1
7
#define NC_ADDRESS 2
8
#define MK3MAG_ADDRESS 3
116 killagreg 9
#define MKOSD_ADDRESS 4
220 killagreg 10
#define BL_ADDRESS 5
110 killagreg 11
 
12
typedef struct
13
{
14
        u8* pData;
15
        u16 Size;
112 killagreg 16
        u16 DataBytes;
110 killagreg 17
        u16 Position;
18
        u8  Locked;
19
} __attribute__((packed)) Buffer_t;
20
 
112 killagreg 21
extern void Buffer_Init(Buffer_t* pBuffer, u8* pDataBuffer, u16 DataBufferSize);
22
extern void Buffer_Clear(Buffer_t* pBuffer);
190 killagreg 23
extern u8 Buffer_Copy(Buffer_t* pSrcBuffer, Buffer_t* pDstBuffer);
112 killagreg 24
 
110 killagreg 25
typedef struct
26
{
190 killagreg 27
        u8 Address;
28
        u8 CmdID;
110 killagreg 29
        u8* pData;
220 killagreg 30
        u16 DataLen;
110 killagreg 31
} __attribute__((packed)) SerialMsg_t;
32
 
153 killagreg 33
extern u8 MKProtocol_CollectSerialFrame(Buffer_t* pRxBuff, u8 c);
110 killagreg 34
extern void MKProtocol_CreateSerialFrame(Buffer_t* pTxBuff, u8 CmdID, u8 Address, u8 numofbuffers , ...); //u8 *data, u8 len, ....;
190 killagreg 35
extern void MKProtocol_DecodeSerialFrameHeader(Buffer_t* pRxBuff, SerialMsg_t* pSerialMsg);
36
extern void MKProtocol_DecodeSerialFrameData(Buffer_t* pRxBuff, SerialMsg_t* pSerialMsg);
110 killagreg 37
 
38
#endif // _MKPROTOCOL_H