//---------------------------------------------------------------------------

#ifndef COMMAND_H
#define COMMAND_H
//---------------------------------------------------------------------------

#define extern_int_stdcall extern "C" __declspec(dllimport) int __stdcall

#define CXK_RTN_OK                  1
#define CXK_RTN_FAIL                0
#define CXK_RTN_PASS_ERROR          -2

typedef struct _ST_tm {
    int tm_sec; /* 秒–取值区间为[0,59] */
    int tm_min; /* 分 - 取值区间为[0,59] */
    int tm_hour; /* 时 - 取值区间为[0,23] */
    int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
    int tm_mon; /* 月份（从一月开始，0代表一月） - 取值区间为[0,11] */
    int tm_year; /* 年份，其值等于实际年份如:2010 */
    int tm_wday; /* 星期–取值区间为[0,6]，其中0代表星期天，1代表星期一，以此类推 */
    int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365]，其中0代表1月1日，1代表1月2日，以此类推, 可设置为0*/
    int tm_isdst; /* 可设置为0*/
}DV_TM,*pDV_TM;


typedef struct
{
	char cSerial[8];	//执法记录仪产品序号，不可为空
	char userNo[7];		//执法记录仪使用者警号，不可为空
	char userName[33];	//执法记录仪使用者姓名，管理平台使用警号关联时可为空
	char unitNo[13];	//执法记录仪使用者单位编号，管理平台使用警号关联时可为空
	char unitName[33];	//执法记录仪使用者单位名称，管理平台使用警号关联时可为空
} ZFY_INFO;

typedef enum _RESULT_FLAG
{
	CONNECT_SUCCESS = 0x01,	//执法记录仪连接成功
	CONNECT_FAILED,			//执法记录仪连接失败
	CHECK_PWD_SUCCESS,		//执法记录仪管理员密码校验成功
	CHECK_PWD_FAILED,		//执法记录仪管理员密码校验失败
	SET_SYSTEMTIME_SUCCESS,	//执法记录仪系统时间同步成功
	SET_SYSTEMTIME_FAILED,	//执法记录仪系统时间同步失败
	MSDC_SUCCESS,			//执法记录仪转换移动磁盘模式成功
	MSDC_FAILED				//执法记录仪转换移动磁盘模式失败
} RESULT_FLAG;

extern_int_stdcall CXK_ConnectDV();								//连接设备
extern_int_stdcall CXK_DisconnectDV();							//断开设备
extern_int_stdcall CXK_Login(char *Password);					//登录设备（管理员）
extern_int_stdcall CXK_SetTime(DV_TM *ptm);						//设置时间
extern_int_stdcall CXK_GetID(char *ID);							//获取设备编号
extern_int_stdcall CXK_SetID(char *ID);							//设置设备编号
extern_int_stdcall CXK_IntoUDiskMode();							//进入U盘模式
extern_int_stdcall CXK_GetTime(DV_TM *ptm);						//获取时间
extern_int_stdcall CXK_SetPassword(char *pwd);					//设置密码
extern_int_stdcall CXK_GetPerson(char *person);					//获取人员编号（警员号）
extern_int_stdcall CXK_SetPerson(char *person);					//设置人员编号（警员号）
extern_int_stdcall CXK_GetUnit(char *unit);						//获取单位编号
extern_int_stdcall CXK_SetUnit(char *unit);						//设置单位编号
extern_int_stdcall CXK_LoginGuest(char *Password);				//登录设备（访客）
extern_int_stdcall CXK_GetModel(char *model);					//获取设备型号
extern_int_stdcall CXK_GetResolution(int *width, int *height);	//获取录像分辨率
extern_int_stdcall CXK_GetBattery(int *battery);				//获取电量
extern_int_stdcall CXK_GetPersonName(char *name);				//获取人员姓名
extern_int_stdcall CXK_SetPersonName(char *name);				//设置人员姓名
extern_int_stdcall CXK_GetUnitName(char *name);					//获取单位名称
extern_int_stdcall CXK_SetUnitName(char *name);					//设置单位名称

//---------------------------------------------------------------------------
#endif
