diff --git a/ems_c/clib/clib.tar.gz b/ems_c/clib/clib.tar.gz index 8c812e2..c44c292 100644 Binary files a/ems_c/clib/clib.tar.gz and b/ems_c/clib/clib.tar.gz differ diff --git a/ems_c/clib/readme.txt b/ems_c/clib/readme.txt index 4f43392..d9a1ac4 100644 --- a/ems_c/clib/readme.txt +++ b/ems_c/clib/readme.txt @@ -1,3 +1,7 @@ 1.使用clib文件步骤如下: - cd到clib + cd到/opt/ems/clib 然后解压 tar -xzvf clib.tar.gz +2.同时将aarch64中文件cp到系统位置 + cd /opt/ems/clib/aarch64/ + cp * /usr/lib/aarch64-linux-gnu/ -rf +3.再次执行c程序、web程序即可 diff --git a/ems_c/kernel/kit_data.h b/ems_c/kernel/kit_data.h index b6ad106..140f027 100644 --- a/ems_c/kernel/kit_data.h +++ b/ems_c/kernel/kit_data.h @@ -543,7 +543,7 @@ typedef struct uint8_t bitNum; // 位数量 uint8_t isPersisted; // 是否持久化(0否,1是) float_t precision; // 精度 - float_t ratio; // 比例,使用 float 以表示小数 + double ratio; // 比例,使用 float 以表示小数 float_t offset; // 偏移量,使用 float 以表示小数 float_t mutateBound; // 变更边界 double_t value; // 采集值 diff --git a/python-demo/demoso.py b/python-demo/demoso.py new file mode 100644 index 0000000..c357cd6 --- /dev/null +++ b/python-demo/demoso.py @@ -0,0 +1,34 @@ +import ctypes +import time +import os + +# 加载当前目录下的 so 文件 +so_path = os.path.abspath("/usr/lib/aarch64-linux-gnu/libcrtdb.so") +mylib = ctypes.CDLL(so_path) + +# 声明函数原型(如果有参数和返回值的话需要详细定义) +mylib.initRtdb(0, 0, 1); # 返回值为 void + +# 设置函数返回值类型为 double(ctypes.c_double) +mylib.getRtdbPointValue.restype = ctypes.c_double + +# 定义参数类型(函数没有返回值,所以 restype 可以不写) +mylib.setRtdbPointValue.argtypes = [ + ctypes.c_int, # rtdb_type_e -> int + ctypes.c_uint16, # devType + ctypes.c_uint16, # devId + ctypes.c_uint16, # pointId + ctypes.c_double # value +] + +# 每隔1秒调用一次 +while True: + value = mylib.getRtdbPointValue(0, 0, 0, 7); + print(f"Double value: {value}") + i_val = int(value) + print(f" 心跳 Int value: {i_val}") + + mylib.setRtdbPointValue(0, 0, 0, 1, 7.0); + val = mylib.getRtdbPointValue(0, 0, 0, 1); + print(f"读取写入的值为: {val}") + time.sleep(1) diff --git a/release/ems/clib/clib.tar.gz b/release/ems/clib/clib.tar.gz index d44f21e..c44c292 100644 Binary files a/release/ems/clib/clib.tar.gz and b/release/ems/clib/clib.tar.gz differ diff --git a/release/ems/clib/readme.txt b/release/ems/clib/readme.txt index 4f43392..d9a1ac4 100644 --- a/release/ems/clib/readme.txt +++ b/release/ems/clib/readme.txt @@ -1,3 +1,7 @@ 1.使用clib文件步骤如下: - cd到clib + cd到/opt/ems/clib 然后解压 tar -xzvf clib.tar.gz +2.同时将aarch64中文件cp到系统位置 + cd /opt/ems/clib/aarch64/ + cp * /usr/lib/aarch64-linux-gnu/ -rf +3.再次执行c程序、web程序即可