#ifndef __PARAS_H__ #define __PARAS_H__ #include "config.h" #ifndef USE_SMEC #define USE_SMEC 0 // 0:不使用加密芯片 // 1:使用加密芯片(使用加密芯片每次读写参数会增加30ms) #endif //--------------------------------- // FRAM地址划分 // 共8K字节 // 256字节 分期付款密码存储 // 256字节 nvpara // 512字节 预留 // 1K字节 机器参数 // 1K字节 工作参数 // 1K字节 动框角度 #define ENC_ADDR 0x0000 // 256字节 #define NVPARA_ADDR 0x0100 // 256字节 #define REV_ADDR 0x0200 // 512字节 #define MCPARA_ADDR 0x0400 // 机器参数,1K #define WKPARA_ADDR 0x0800 // 工作参数,1K #define ANGPARA_ADDR 0x0C00 // 动框起始角度 //--------------------------------- // 参数类型 #define PTYPE_U 0 // 无符号数 #define PTYPE_S 1 // 有符号数 #define PTYPE_B 2 // 位图 #define PARA_NUM 256 #define PARA_STR_LEN 30 #define PARA_MC_VALID 0x00005500 #define PARA_WK_VALID 0x000000AA #define PARA_VALID (PARA_MC_VALID|PARA_WK_VALID) //--------------------------------- // #define MAX_HOR 12 // 横,下标2最大值,针步 #define MAX_VER 21 // 竖,下标1最大值,转速 typedef struct { u32 buf[PARA_NUM]; } __attribute__ ((packed)) ParaStruct; //-------------------------------------------------------------- // 贴布绣(按针) typedef struct { u32 dataidx; // 数据索引 u16 mvmnt; // 移动位移量 } __attribute__ ((packed)) Patch; #define PATCH_DATA_NUM 10 // 支持设定的个数 typedef struct { Patch patch[PATCH_DATA_NUM]; } __attribute__ ((packed)) PatchData; //--------------------------------- #ifdef _IN_PARAS_C ParaStruct g_mcPara; ParaStruct g_wkPara; ParaStruct g_angPara; PatchData g_patchData; #else extern ParaStruct g_mcPara; // 机器参数 extern ParaStruct g_wkPara; // 工作参数 extern ParaStruct g_angPara; // 起始动框角度参数 extern PatchData g_patchData; // 贴布绣数据,按针 #endif //--------------------------------- void InitParas(void); //--------------------------------- void SaveMcPara(void); void SaveWkPara(void); void SaveAngPara(void); //--------------------------------- void CheckMcParaRange(void); void CheckAMcParaRange(int id); void CheckWkParaRange(void); void CheckAWkParaRange(int id); //--------------------------------- void WriteDefMcPara(void); void WriteDefWkPara(void); void WriteDefMvAngPara(void); //--------------------------------- void SetMcParaNameString(void* pDat); void SetWkParaNameString(void* pDat); void SetMcParaList(void * pDat); void SetWkParaList(void * pDat); void SetDefAngParaList(void * pDat); //--------------------------------- u32 GetAMcPara(int id); void SetAMcPara(int id, u32 val); u32 GetAWkPara(int id); void SetAWkPara(int id, u32 val); void SetAAnglePara(int id, u16 val); //--------------------------------- #endif