172 lines
3.6 KiB
C
172 lines
3.6 KiB
C
|
|
|
|||
|
|
|
|||
|
|
#ifndef _TRANSDATA_H_
|
|||
|
|
#define _TRANSDATA_H_
|
|||
|
|
|
|||
|
|
#include "config.h"
|
|||
|
|
|
|||
|
|
#if (TRANS_APP_FILE == 1)
|
|||
|
|
#include "stapp.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|
|||
|
|
#if (TRANS_DATA_FILE == 1)
|
|||
|
|
#include "datafile.h"
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#define LEN_RSV_BMP 1024 // <20><><EFBFBD><EFBFBD>λͼ<CEBB><CDBC><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define FILE_HEAD_ID 0xFFFF // <20><>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ID
|
|||
|
|
|
|||
|
|
#define TRANS_NONE 0x00
|
|||
|
|
#define TRANS_ACTIVE 0x5A
|
|||
|
|
|
|||
|
|
#define TRANS_NOT_BEG 0x00 // û<><C3BB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define TRANS_READY 0x01 // <><D7BC><EFBFBD><EFBFBD>
|
|||
|
|
#define TRANS_DOING 0x02 // <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>
|
|||
|
|
#define TRANS_DONE 0x03 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define TRANS_REQUEST 0x04 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
|
|
|||
|
|
#define FILE_TYPE_DAT 0x00 // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
#define FILE_TYPE_PGM 0x02 // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|||
|
|
#define FILE_TYPE_BOARD 0x03 // <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD>
|
|||
|
|
#define FILE_TYPE_FRAME 0x04 // <20>߿<EFBFBD><DFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5>ļ<EFBFBD>(<28><>Ҫ<EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA>Զ<EFBFBD><D4B6>л<EFBFBD><D0BB><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD>,<2C>Ҳ<EFBFBD><D2B2><EFBFBD>Ҫ<EFBFBD><D2AA>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
|
|||
|
|
// <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD>ͷ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
// 0x00
|
|||
|
|
char fileName[32]; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// 0x20
|
|||
|
|
u32 dataSize; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
|
u32 dataChecksum; // <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
u8 protocol; // <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 nodeid; // <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ľڵ<C4BD>ID,0Ϊ<30>㲥
|
|||
|
|
u8 fileType; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 nodeType; // 20220608 <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ľڵ<C4BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// 0x2C
|
|||
|
|
u8 reserved1[0x30-0x2C]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|||
|
|
|
|||
|
|
// 0x30
|
|||
|
|
u8 reserved2[0x64-0x30]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2
|
|||
|
|
|
|||
|
|
// 0x64
|
|||
|
|
u8 reserved3[0x80-0x64]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3
|
|||
|
|
|
|||
|
|
// 0x80
|
|||
|
|
u8 reserved4[0x100-0x80]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4
|
|||
|
|
}__attribute__ ((packed)) BoardFileHead;
|
|||
|
|
|
|||
|
|
// <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD>CAN<41><4E><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD>ƽṹ
|
|||
|
|
typedef union
|
|||
|
|
{
|
|||
|
|
u8 data[8];
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u8 sync[3];
|
|||
|
|
u16 pktId; // <20><>ID
|
|||
|
|
u8 fnum; // ֡<><D6A1><EFBFBD><EFBFBD>
|
|||
|
|
u16 crc;
|
|||
|
|
} __attribute__ ((packed)) head;
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u32 datasize; // <20><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
|||
|
|
u32 dataChecksum; // <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
|
} __attribute__ ((packed)) check;
|
|||
|
|
|
|||
|
|
struct
|
|||
|
|
{
|
|||
|
|
u8 protocol; // <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 nodeid; // <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ľڵ<C4BD>ID,0Ϊ<30>㲥
|
|||
|
|
u8 fileType; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 nodeType; // <20>ļ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ľڵ<C4BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
u8 rev[4];
|
|||
|
|
} __attribute__ ((packed)) info;
|
|||
|
|
|
|||
|
|
}BoardFileCanCtrl;
|
|||
|
|
|
|||
|
|
// <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD>ƽṹ
|
|||
|
|
// һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>129<32><39>CAN<41><4E><EFBFBD><EFBFBD>֡
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
BoardFileCanCtrl pktHead;
|
|||
|
|
BoardFileCanCtrl pktData[128];
|
|||
|
|
|
|||
|
|
}BoardFilePacketCtrl;
|
|||
|
|
|
|||
|
|
// <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ƽṹ
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
BoardFileHead fileHead; // <20>ļ<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>
|
|||
|
|
BoardFilePacketCtrl filepkt; // <20><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
|
|
|||
|
|
}BoardFileCtrl;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ݽ<EFBFBD><DDBD>տ<EFBFBD><D5BF><EFBFBD>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
u8 transActive; // <20><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>Ч
|
|||
|
|
u8 transflag; // <20><><EFBFBD>ս<EFBFBD><D5BD>ȱ<EFBFBD>־ = 0, <20><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>ʼ; = 1, <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>; = 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//---------------<2D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>--------------------
|
|||
|
|
u8 fileType; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 fileIdx; // Ϊ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>16<31><36><EFBFBD>ļ<EFBFBD>
|
|||
|
|
u16 fileId; // <20>ļ<EFBFBD>ID
|
|||
|
|
|
|||
|
|
#if (TRANS_DATA_FILE == 1)
|
|||
|
|
DatFileCtrl * pDatFile;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if (TRANS_APP_FILE == 1)
|
|||
|
|
AppFileCtrl * pAppFile;
|
|||
|
|
#endif
|
|||
|
|
//---------------<2D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>--------------------
|
|||
|
|
|
|||
|
|
//---------------<2D><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>--------------------
|
|||
|
|
u16 rsvPktCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
u8 rsvFrameCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
|
|||
|
|
u32 dataChecksum; // <20><><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
BoardFileCtrl * pBoardFile;
|
|||
|
|
//---------------<2D><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>--------------------
|
|||
|
|
|
|||
|
|
u32 packetNum; // <20><><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|||
|
|
|
|||
|
|
u16 lenBmp; // λͼ<CEBB><CDBC>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
|
|||
|
|
u8 rsvBitmap[LEN_RSV_BMP]; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ս<EFBFBD><D5BD>ȱ<EFBFBD>־λͼ
|
|||
|
|
|
|||
|
|
} __attribute__ ((packed)) FileTransCtrl;
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define CDPSYNC_LEN 3
|
|||
|
|
#ifdef _IN_TRANSDATA_C
|
|||
|
|
const u8 CDP_SYNC[CDPSYNC_LEN] =
|
|||
|
|
{
|
|||
|
|
'C','D','P',
|
|||
|
|
};
|
|||
|
|
#else
|
|||
|
|
extern const u8 CDP_SYNC[];
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
void InitFileTransCtrl(FileTransCtrl * pfileTransCtrl);
|
|||
|
|
|
|||
|
|
int WriteRsvBitmap(u32 idx, u8 sta, FileTransCtrl * pfileTransCtrl);
|
|||
|
|
int IsResvFinish(FileTransCtrl * pfileTransCtrl);
|
|||
|
|
|
|||
|
|
int TransDataProc(BoardFileCanCtrl filecan, FileTransCtrl * pfileTransCtrl, u8 nodetype); // <20><>Χ<EFBFBD><CEA7><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD>
|
|||
|
|
|
|||
|
|
int GetLenBmp(FileTransCtrl * pfileTransCtrl);
|
|||
|
|
|
|||
|
|
#ifdef _IN_TRANSDATA_C
|
|||
|
|
BoardFileCtrl g_boardFile;
|
|||
|
|
#else
|
|||
|
|
extern BoardFileCtrl g_boardFile;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#endif /* _TRANSDATA_H_ */
|