#if !defined(ZNE100DLL_H)
#define ZNE100DLL_H


typedef struct _tagCANETEINFO
{
	char desip[16];//目标IP地址
	USHORT desport;//目标端口号
	BYTE blisten;//工作模式,0表示正常模式,1表示只听模式
}CANETEINFO;//存储CANET-E的特定信息

typedef struct _tagZNE100INFO
{
	BYTE baud;//300,600,1200,2400,4800,9600,19200,38400,57600,115200
			  //对应关系，为0表示300Bps，9表示115200Bps
	BYTE databits;//范围05h～08h
	BYTE stopbits;//01h或02h
	BYTE checkbits;//00h表示无校验位，01h表示Even，02h表示Odd，3表示Mark，4表示Space
}ZNE100INFO;//存储ZNE100的串口信息

typedef struct _tagDEVINFO
{
	BYTE bmoduletype;//模块型号,0x01-ZNE100,0x11-CANETE

	char szname[11];//模块名称
	char szip[16];//IP地址
	char szmask[16];//子网掩码
	char szgateip[16];//网关
	char szmacaddr[18];//MAC地址
	BYTE bstaticip;//00h表示静态配置IP地址，01h表示使用DHCP动态获取IP地址
	int workport;//工作端口

	ZNE100INFO zne100info;
	CANETEINFO caneteinfo;
}DEVINFO;//存储设备相关信息

int __stdcall ZNET_Init();
int __stdcall ZNET_Uninit();
int __stdcall ZNET_SearchBroadcast();
int __stdcall ZNET_SearchIP(char* szip);
int __stdcall ZNET_GetDeviceInformation(char* szip,DEVINFO* pinfo);
int __stdcall ZNET_Stop();
int __stdcall ZNET_RecDevice(DEVINFO* pdevinfo,int *plen);
int __stdcall ZNET_ModifyDevice(char* szip,char *szpwd,DEVINFO &info);

void __stdcall ZNET_ModifyComCfg(char* szip,ZNE100INFO &info);

//适用于ZNE-100T
int __stdcall ZNET_ResetDevice(char* szip,char* szpwd);
int __stdcall ZNET_GetIOStat(char* szip,int port,BYTE* pdirection/*输入输出方向状态*/,
							 BYTE* pelevel/*电平状态*/);
int __stdcall ZNET_SetIOStat(char* szip,int port,BYTE type,
							 BYTE *pdirection,BYTE *pelevel);
//type=0,表示更改输入输出方向状态，elevel忽略
//type=1,表示更改电平状态，direction忽略
//type=2,表示全部更改

#endif

