阅读( 238 ) 我要纠错

一.步骤: 

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。

×