#ifndef     _GEN_LGPKT_INTF_H_
#define     _GEN_LGPKT_INTF_H_

#include    "base_config.h"

#if MD_GEN_LGPKT_CH
struct gen_lgpkt_intf_STR{
    void (*rx_pc)(const unsigned char *rxpc);
//    unsigned char (*fetch_data)( unsigned char *);
};
extern struct gen_lgpkt_intf_STR core__gen_lgpkt_intf;


typedef struct{
    const unsigned char first_pkt_len;
    const unsigned char gen_pkt_len; 

      
}pkt_info;



//获取发送数包个数
#define     GET_PKT_CNT(data_len,first_pkt_len,gen_pkt_len)             ( (data_len <= first_pkt_len)?1:(1 + (data_len-first_pkt_len)/gen_pkt_len + (((data_len-first_pkt_len)%gen_pkt_len)?1:0) ) )
//获取数据包的长度
#define     GET_PKT_LEN(data_len,first_pkt_len,gen_pkt_len,seq,pkt_total)     ( (seq==0)?first_pkt_len:((pkt_total-1 == seq)?((data_len-first_pkt_len)%gen_pkt_len):gen_pkt_len ) )
//获取数据包的起始位置
#define     GET_PKT_INDEX(first_pkt_len,gen_pkt_len,seq)                ( (seq==0)?0:(first_pkt_len+ (seq-1)*gen_pkt_len) )
//获取crc数据长度，为整包数据长度
#define     GET_CRC_DATA_LEN(pkt_total,first_pkt_len,gen_pkt_len)       (first_pkt_len + (pkt_total-1)*gen_pkt_len)

#endif

#endif
