#ifndef _NRF24L0_MSG_H_
#define _NRF24L0_MSG_H_

#include "fire_ui_var.h"
#include "FIRE_NRF24L0.h"



#define COM_LEN     2   //com命令占用的字节



//控制命令COM执行函数返回结果
//COM命令，需要执行对应的函数
//MSG消息，发送方主动通知，不需要执行任何函数
typedef enum
{
    NRF_RESULT_FALSE = 0,                   //假、失败、事件没发生
    NRF_RESULT_TRUE = 1,                    //真、成功、事件发生了
    NRF_RESULT_QUIT,                    //退出

    NRF_RESULT_NULL,                    //不进行任何处理

    //接收数据
    NRF_RESULT_RX_NO,                   //没接收到数据
    NRF_RESULT_RX_VALID,                //接收有效数据
    NRF_RESULT_RX_NOVALID,              //接收到数据，但无效


    /*** EVENT 事件 ***/
    //  NRF_RESULT_EVENT_FALSE,             //没事件发生，或传输事件数据有误
    //  NRF_RESULT_EVENT_FINIST,            //事件传输完毕
    //  NRF_RESULT_EVENT_CONTINUE,          //事件继续传输（多个事件发送了，需要继续传输）

} nrf_result_e;

//控制命令消息类型
typedef enum
{
    ////////////////// COM命令 /////////////////////
    //需要校验接收的命令是否正确
    //发送的数据： XXX_COM ，~XXX_COM    后面继续发送需要发送的信息，由对应的执行函数进行处理

    //图像传输
    COM_IMG,

    //线性CCD
    COM_CCD,

    //变量传输控制
    COM_VAR,

    COM_RETRAN,//复位传输，丢弃之前接收到的数据

    /*  需要添加功能，请放入此位置  */


    COM_MAX     ,       //最大控制命令数目                                                  ********************************

} com_e;

extern void             nrf_msg_init();                                //初始化消息处理(并没有初始化 nrf 模块)
extern nrf_result_e     nrf_msg_tx(com_e   com, uint8 *sendbuf);       //发送数据，发送长度由com决定
extern nrf_result_e     nrf_msg_rx(com_e  *com, uint8 *rebuf);         //接收数据,并进行处理








#endif  //_NRF24L0_MSG_H_