YHLIOT使用
一.文件说明
- YHIIOT.h 动态库头文件,包含数据结构与调用方法接口
- YHIIOT.dll Windows平台动态库
- YHIIOT.so Linux平台动态库
二.结构体与数据说明
重要:
char* id_name 设备名称是接口识别交互的关键,每次都需要传入,在配置参数以及数据读写都需要。
1.Device 设备结构体
设备结构体定义
typedef struct Device {
const char *id_name; // 设备名称,如"Mitsubishi-01"
enum YHAPI api; // key API接口,如"YHAPI.Mitsubishi"
const char *ip; // ip端口,如"192.168.99.10:8000"
enum YHSOCKET socket; // socket类型TCP、UDP,如"tcp"
int16_t option; // 选项参数,参考各API说明
int32_t args[5]; // 可选参数,参考各API说明
const char *argsc[5]; // 可选参数,参考各API说明
enum YHDATATP datatype; // 数据类型,YHDATATP.ABCD,YHDATATP.BADC,YHDATATP.CDAB,YHDATATP.DCBA
} Device;2.RWSt 读写结构体
读写结构体定义
typedef struct RWSt {
const char *id_name; // 设备名称 如"Mitsubishi-01",与设备结构体一致
enum YHFUN funcs; // API方法名 如YHFUN.int16
const char *vars; // 变量、参数或值 如"D100"
int16_t number; // 读取数量
int16_t option; // 选项参数,参考各API说明
int16_t types; //TCP功能 0 str / 1 hex 纯TCP时用到,是否以16进制发送显示
} RWSt;3.Data 切片结构
typedef Data { void *data; uintptr_t len; } Data;4.Ret 返回结构体
状态码请查看YHIIOT状态码章节
typedef Ret {
int32_t code; // 状态码
const char *msg; // 消息
} Ret;
// 如正常返回:
// Ret {
// code:1 ,
// msg:“ok”
// } ;5.YHAPI API枚举结构
typedef enum YHAPI {
/**
* TCP客户端 TcpC=1
* TCP服务端 TcpS=2
* UDP客户端 UdpC=3
* UDP服务端 UdpS=4
* 串口服务端 SerialC=5
* 串口服务端 SerialS=6
* ETHER CAT SerialS=7
*/
None = 0,
TcpC = 1,
TcpS = 2,
UdpC = 3,
UdpS = 4,
SerialC = 5,
SerialS = 6,
EtherCAT = 7,
/**
* ModbusTcp客户端 ModbusTcpC=20
* ModbusTcp服务端 ModbusTcpS=21
*/
ModbusTcpC = 20,
ModbusTcpS = 21,
} YHAPI;6.YHDATATP 数据类型枚举结构
typedef enum YHDATATP {
ABCD = 0,
BADC = 1,
CDAB = 2,
DCBA = 3,
} YHDATATP;7.YHFUN 方法枚举结构
typedef enum YHFUN {
/**
* 读写数据类型和方法
*/
None = 0,
I8 = 1,
I16 = 2,
I32 = 3,
I64 = 4,
U8 = 11,
U16 = 12,
U32 = 13,
U64 = 14,
F32 = 21,
F64 = 22,
STR = 31,
HEX = 32,
} YHFUN;3.YHSOCKET socke类型枚举结构
typedef enum YHSOCKET {
/**
* TCP类型 TcpC=1001
* UDP类型 UdpC=1003
*/
None = 0,
Tcp = 1001,
Udp = 1011,
} YHSOCKET;三.函数说明
1.NewNet 新建设备连接
传入参数 :
Device 设备结构体
返回 Ret结构
struct Ret NewNet(struct Device dev);2.Read 设备读取数据
传入参数:
RWSt 读写结构体定义
Data *value 传入切片指针、接收结果
返回 Ret结构
// 设备读取数据
//
struct Ret Read(struct RWSt wst, struct Data *value);3.Write 设备写入数据
传入参数:
RWSt 读写结构体定义
Data 传人Data结构
返回 Ret结构
// 设备写入数据
struct Ret Write(struct RWSt wst, struct Data value));4.SetConf 参数设置
传入参数:
RWStruct 读写结构体定义
char* data 传人字符串(暂未使用)
返回 Ret结构
// 参数设置
//
extern GoInt SetConf(struct RWStruct p, char* data);
RWSt 结构体参数说明
struct RWSt {
char* id_name; // 设备名称 如"Mitsubishi-01",与设备结构体一致
char* funcs; // 未使用
char* vars; // 需要设置的参数名 如"hex_str"
int number; // 读取数量
int option; // 选项参数,参考各API说明
int types; // 设置值
};
vars变量值说明
hex_str 代表设置TCP发送是以字符串还是二进制,仅纯TCP服务或端客户端起作用
types 值说明 0:字符串,1:16进制
type 设置数据类型
types值说明
0:ABCD,1:BADC,2:CDAB,3:DCBA5.NewServe 新建服务端
服务端使用
传入参数:
Device 设备结构体定义,参照结构体说明
返回状态码
// 新建服务端
struct Ret NewServe(struct Device dev);6.Listener监听IP连入
传入参数:
RWStruct 读写结构体定义
返回状态码和连接的IP
// 监听连入IP
struct Ret Listener(struct RWSt wst);
// 如正常返回:
// Ret {
// code:1 ,
// msg:“192.168.99.10:23456”
// } ; 7.NetClose 关闭接口
纯TCP服务端使用
传入参数:
DeviceStruct 设备结构体定义
返回状态码
// 服务端关闭
//
struct Ret NewServe(struct Device dev);作者:云恒物联 创建时间:2024-10-21 05:56
最后编辑:云恒物联 更新时间:2025-06-08 12:38
最后编辑:云恒物联 更新时间:2025-06-08 12:38