/*
 * @Description: 公共模块-svc层
 * @Author: yangsw
 * @Date: 2021-04-21 09:41:26
 * @LastEditTime: 2024-01-10 14:45:08
 * @LastEditors: LiDa
 * @Reference: 
 */

#ifndef H_SVC_COM_H
#define H_SVC_COM_H

#include "../bsp/bsp_com.h"
#include "svc_com_core.h"


/*项目型号*/
#define PRJ_NAME    			("L-SWMMA01-00303")			
/*硬件版本*/
#define HW_VERSION				(20)		//<<<<<<<<22.8.16yess
/*软件版本*/
#define SOFT_VERSION			(30)		//<<<<<<<<22.8.16yess
/*软件主版本*/
#define SOFT_MAIN_VERSION			(1)		//<<<<<<<<23.5.15lida
/*软件子版本*/
#define SOFT_SUB_VERSION			(0)		//<<<<<<<<23.5.15lida
/*软件修订版本*/
#define SOFT_REVISE_VERSION			(0)		//<<<<<<<<23.5.15lida
/*malloc允许的最大值*/
#define MALLOC_BUFF_MAX_SIZE    1250    //一定要大于1024，TEA加密算法里需要用到1024字节的buf

/*堆的设置值一定要大于0x0250，保存用量信息的比较数据时会占用大量栈空间，不够的话栈会溢出*/

typedef enum{
	E_NormalMode=0,	
	E_FactoryWholeMode=1,
    E_FactoryTestMode=2
}E_WorkMode;

typedef struct{
    gw_u8 pu8Buf[MALLOC_BUFF_MAX_SIZE];
    gw_u16 u16Len;
    E_WorkMode e_workMode;    
}S_Com;



void Svc_Com_Project_Info_Out(void);
void Svc_Com_Delay_Us(gw_u32 u32Cnt);
void Svc_Com_Delay_Ms(gw_u32 u32Cyc,gw_u8 u8MHZ);
gw_u8* Svc_Com_Get_Buf(void);
E_WorkMode Svc_Com_Work_Mode_Choose(void);
void Svc_Com_Sys_Set_Work_Mode(E_WorkMode e_workMode);
E_WorkMode Svc_Com_Sys_Get_Work_Mode(void);
#endif
