
#ifndef SYSDEF_H
#define SYSDEF_H

#pragma pack(1) // 结构体1字节对齐

#ifndef TRUE
#define TRUE 1
#endif

#ifndef FALSE
#define FALSE 0
#endif

#define ON 1
#define OFF 0

#define HIGH 1
#define LOW 0

typedef char CHAR;
typedef signed char int8, SBYTE;
typedef unsigned char uint8, BYTE, BOOL;

typedef short int16, SWORD;
typedef unsigned short uint16, WORD;

typedef int int32, SDWORD;
typedef unsigned int uint32, DWORD;

typedef float FLOAT, flt32;
typedef double DOUBLE, flt64;

typedef long long int64;
typedef unsigned long long uint64;

#define STATIC static

#define SYS_MEMSET memset
#define SYS_MEMCPY memcpy
#define SYS_MEMCMP memcmp
#define SYS_MEMMOVE memmove

#define SYS_STRCAT strcat
#define SYS_STRNCAT strncat
#define SYS_STRSTR strstr
#define SYS_STRCPY strcpy
#define SYS_STRCMP strcmp
#define SYS_STRLEN strlen

#define ntohs(x) (x)
#define ntohl(x) (x)
#define htons(x) (x)
#define htonl(x) (x)

#define BIT0 0x0001
#define BIT1 0x0002
#define BIT2 0x0004
#define BIT3 0x0008
#define BIT4 0x0010
#define BIT5 0x0020
#define BIT6 0x0040
#define BIT7 0x0080
#define BIT8 0x0100
#define BIT9 0x0200
#define BIT10 0x0400
#define BIT11 0x0800
#define BIT12 0x1000
#define BIT13 0x2000
#define BIT14 0x4000
#define BIT15 0x8000
#define BIT16 0x10000

#define SYS_RET_OK 0
#define SYS_RET_FAIL 1

// 同步信号最大跳跃次数
#define SYS_SYNC_WORD_MAX_ID 4 // 同步字最大编号（最大延展3级）

#define APP_WMM_STORE_FLAG 0xBBCCDDEE  // flash保存标识符
#define APP_WMM_STORE_VERSION 0x030201 // 软件版本

#define DEVICE_TYPE 1         // 设备类型，1：声波基站，2：同步基站，3：同步中继
#define DEVICE_MODE "IPS8000" // 设备型号

// 将载波频率修改为18K - 22.8K(by zt 2024/6/4)
// V3.0.05:修改信号滤波器，修改信号生成时规避浮点数累计误差的代码
// V3.0.06:信号中只发1，不发0
// V3.0.07:把信号长度调整为10秒(by zt 2024/7/22)
// V3.0.08:把信号长度调整为3秒(by zt 2024/9/10)
// V3.0.09:配合集中网管修改项目编号为4字节(by zt 2024/9/21)
// V3.0.10:根据网管协议修改监控对象命令标号，修改串口接收模块（不管理接收中断）(by zt 2024/10/22)
// V3.0.11:解决升级经常失败的问题，包括本地网管和集中网管(by zt 2024/10/28)
// V3.1.00:硬件改板(by zt 2024/11/27)
// V3.1.01:外部中断管脚映射错误(by zt 2024/12/10)
// V3.1.02:增加基站同步信号3级转发功能，将MCP-A的数据包长度从32修改为64(by zt 2024/12/17)
// V3.2.00:增加参数重置功能，正式发布基站版本(by zt 2024/12/20)
// V3.2.01:去掉重置参数后自动保存参数的功能(by zt 2024/12/24)
// V4.0.01:修改基站频率，避开高频的两个频点(by zt 2025/5/27)
#define SOFTWARE_VERSION "V4.0.01"

#endif
