- Add FFI wrappers for all EskinDeviceFunc trait methods: eskin_read_hdw_version, eskin_read_matrix_row/col, eskin_read_device_config1/2, eskin_write_device_config1/2, eskin_write_matrix_row/col - Extract sdk_error_to_code() helper for SdkError -> SdkErrorCode conversion - Update C header (include/eskin_ffi.h) with new function declarations - Update Python FFI bindings (example/python/eskin_ffi.py) with new methods - Update README with Python usage instructions and full FFI interface table
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
from eskin_ffi import EskinDevice
|
|
|
|
def main():
|
|
dev = EskinDevice()
|
|
|
|
# SDK 版本
|
|
ver = dev.version()
|
|
print(f"ESkin SDK version: {ver[0]}.{ver[1]}.{ver[2]}")
|
|
|
|
# 打开设备
|
|
dev.open("/dev/ttyUSB0")
|
|
print("Device opened")
|
|
|
|
try:
|
|
# 读取硬件版本
|
|
hdw_ver = dev.read_hdw_version()
|
|
print(f"Hardware version: {hdw_ver}")
|
|
|
|
# 读取矩阵尺寸
|
|
row = dev.read_matrix_row()
|
|
col = dev.read_matrix_col()
|
|
print(f"Matrix size: {row} x {col}")
|
|
|
|
# 读取设备配置
|
|
cfg1 = dev.read_device_config1()
|
|
# cfg2 = dev.read_device_config2()
|
|
print(f"Device config1: 0x{cfg1:02X}")
|
|
# print(f"Device config2: 0x{cfg2:02X}")
|
|
|
|
# 写入矩阵尺寸示例
|
|
# ret = dev.write_matrix_row(16)
|
|
# print(f"Write matrix row: returned {ret} bytes")
|
|
# ret = dev.write_matrix_col(16)
|
|
# print(f"Write matrix col: returned {ret} bytes")
|
|
|
|
# 写入设备配置示例
|
|
# ret = dev.write_device_config1(True)
|
|
# print(f"Write device config1: returned {ret} bytes")
|
|
# ret = dev.write_device_config2(False)
|
|
# print(f"Write device config2: returned {ret} bytes")
|
|
|
|
# 原始寄存器读写
|
|
data = dev.read_register(0x1C00, 168)
|
|
print(f"Serial number: {data.hex().upper()}")
|
|
|
|
finally:
|
|
dev.close()
|
|
print("Device closed")
|
|
|
|
if __name__ == "__main__":
|
|
main() |