一.步骤:
1.调用 JHCreateInst/JHCreateRelativeInst/JHCreateAbsoluteInst 函数创建实例句 柄;
2.调用 JHMountTransportLayer 函数配置传输层;
3.调用各种功能 APIs 函数,如 JHGetGID,JHSetGID 等;
4.调用 JHDeleteInst 函数删除实例句柄;
提示:开发时一定要根据步骤调用,否则可能会存在未知的风险,内存泄露等。
二.特别说明:
1. JHCreateInst(),JHCreateRelativeInst(),JHCreateAbsoluteInst()的区别是:
JHCreateInst():在不知道卡的控制卡屏号的时候创建实例句柄;
JHCreateRelativeInst()在知道控制卡屏号的时候创建实例句柄;
JHCreateAbsoluteInst():在不知道控制卡屏号,但知道控制卡产品 ID 的时候创建 实例句柄;
提示:上诉三种创建方式中最好运用 JHCreateInst()来创建。
2.JHMountTransportLayer 参数ptl:
串口通讯用&transportlayer_serialport(JHComm.h中),
广域网通讯用&transportlayer_wan(JHComm.h中);
参数argstruct:
串口通讯用LPINFO_SERIALPORT(&INFO_SERIALPORT)(JHComm.h),
广域网通讯用LPINFO_WAN(&INFO_WAN)(JHComm.h中);
提示:参数ptl和参数argstruct也可以有用户自己编写代码
3.INFO_SERIALPORT
typedef struct tagInfo_SerialPort{
unsigned long size;
char serialport[64];
unsigned long baudrate;
unsigned char databits;
unsigned char parity;
unsigned char stopbits;
unsigned char flowctrl;
unsigned long timeout;
}INFO_SERIALPORT, *LPINFO_SERIALPORT;
参数:
size:大小。取值sizeof(INFO_SERIALPORT);
serialport:串口。 取值如‘Com1’,‘Com2’。
baudrate:波特率。取值9600,14400,19200,38400,56000,57600,115200。
databits:数据位。取值8,9。
parity:校验位。取值0,1,2。
stopbits:停止位。取值0,1,2。
reserved:保留位。取值0。
timeout:超时。取值5000。
4.INFO_WAN typedef struct tagInfo_Wan{
unsigned long size;
unsigned char usedomain;
unsigned char addr[67];
unsigned short port;
unsigned short reserved;
unsigned long timeout; }INFO_WAN, *LPINFO_WAN;
参数:
size:大小。取值sizeof(INFO_WAN);
usedomain:域名。取值0,1。
addr:控制卡IP。取值如“192.168.16.254”。
port:端口。取值如30000。
reserved:保留位。取值0。
timeout:超时。取值5000。