unit ZNE100DLL;

interface

uses
  WinTypes;

const
  DLL_NAME  = 'ZNET100.dll';//动态库名称

type

//声明各个数据结构


CANETEINFO = Record
	desip : array[0..15] of CHAR;//目标IP地址
	desport : WORD;//目标端口号
	blisten : BYTE;//工作模式,0表示正常模式,1表示只听模式
END;//存储CANET-E的特定信息

PCANETEINFO=^CANETEINFO;

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

DEVINFO = Record
	bmoduletype : BYTE;//模块型号,0x01-ZNE100,0x11-CANETE
	szname : array[0..10] of CHAR;//模块名称
	szip : array[0..15] of CHAR;//IP地址
	szmask : array[0..15] of CHAR;//子网掩码
	szgateip : array[0..15] of CHAR;//网关
	szmacaddr : array[0..17] of CHAR;//MAC地址
	bstaticip : BYTE;//00h表示静态配置IP地址，01h表示使用DHCP动态获取IP地址
	workport : integer;//工作端口
	zne100info : ZNE100INFO;
	caneteinfo : CANETEINFO;
END;//存储设备相关信息

PDEVINFO=^DEVINFO;
PZNE100INFO=^ZNE100INFO;

PCHAR=^CHAR;
PINT=^integer;
PBYTE=^BYTE;

                  
//导入动态库函数

function ZNET_Init () : integer;
  stdcall;
  external DLL_NAME;

function ZNET_Uninit () : integer;
  stdcall;
  external DLL_NAME;
  
function ZNET_SearchBroadcast () : integer;
  stdcall;
  external DLL_NAME;

function ZNET_SearchIP (szip : PCHAR) : integer;
  stdcall;
  external DLL_NAME;

function ZNET_GetDeviceInformation ( szip : PCHAR;
                             pinfo : PDEVINFO) : integer;
  stdcall;
  external DLL_NAME;

function ZNET_Stop () : integer;
  stdcall;
  external DLL_NAME;

function ZNET_RecDevice ( pdevinfo : PDEVINFO;
                             plen : PINT) : integer;
  stdcall;
  external DLL_NAME;

function ZNET_ModifyDevice ( szip : PCHAR;
                  			     szpwd : PCHAR;
                             pinfo : PDEVINFO) : integer;
  stdcall;
  external DLL_NAME;

procedure ZNET_ModifyComCfg ( szip : PCHAR;
                           pinfo : PZNE100INFO);
stdcall;
external DLL_NAME;

function ZNET_ResetDevice ( szip : PCHAR;
                  			     szpwd : PCHAR) : integer;
stdcall;
external DLL_NAME;

function ZNET_GetIOStat ( szip : PCHAR;
                             port : integer;
                             pdirection : PBYTE;
                             pelevel : PBYTE) : integer;
stdcall;
external DLL_NAME;

function ZNET_SetIOStat ( szip : PCHAR;
                             port : integer;
                             btype : BYTE;
                             pdirection : PBYTE;
                             pelevel : PBYTE) : integer;
stdcall;
external DLL_NAME;
//type=0,表示更改输入输出方向状态，elevel忽略
//type=1,表示更改电平状态，direction忽略
//type=2,表示全部更改


implementation

end.
