#coding=gbk
#---------------------------------------说明---------------------------------------------------
#1、该程序为Ginkgo测试程序,使用该程序需要在当前目录下包含Ginkgo_Driver.dll文件。
#2、本程序所用到Ginkgo_Driver.dll中的函数使用方法可以产考《Ginkgo 2适配器底层驱动库函数说明》。
#3、要正确运行本程序需要有相应的硬件支持,更多详细信息请访问纬图官网(www.viewtool.com)。
#----------------------------------------------------------------------------------------------
from ctypes import *
from time import sleep
#导入dll
objdll = windll.LoadLibrary( "Ginkgo_Driver.dll" )
#申请一个10240字节的缓冲区
outString = create_string_buffer(b"\0"*10240)
#查看和电脑连接的设备数
nRet = objdll.VTIF_USB_EnumBoard(b"100",outString)
if(nRet == 0):
print("No device connect!")
exit()
else:
print("Connected device number is:"+repr(nRet))
#打开设备0(必须调用)
nRet = objdll.VTIF_OpenDevice(b"0",outString)
if(nRet != 0):
print("Open device error!")
exit()
#选择设备0(必须调用)
nRet = objdll.VTIF_I2C_SelectDevice(b"0",outString)
if(nRet != 0):
print("Select device error!")
exit()
#初始化I2C控制器
#初始化数据格式:控制模式|读写速度|子地址模式|子地址宽度|设备地址模式|通道号
nRet = objdll.VTIF_I2C_Init(b"0x01|400000|1|1|7|0",outString)
if (nRet!=0):
print("Initialize device error!")
exit()
#写数据
#写数据格式:设备地址|子地址|通道号|数据0|数据1|...|数据n
nRet = objdll.VTIF_I2C_WriteData(b"0xA0|0x00|0x00|0x11|0x22|0x33|0x44|0x55|0x66|0x77|0x88",outString)
if (nRet!=0):
print("Write data error!")
exit()
sleep(0.01)
#读数据
#读数据格式:设备地址|子地址|通道号|读数据字节数
nRet = objdll.VTIF_I2C_ReadData(b"0xA0|0x00|0x00|8",outString)
if (nRet!=0):
print("Read data error!")
exit()
else:
print(outString.value)
#循环读数据
while(1):
#设备地址|子地址|通道号|读数据字节数
nRet = objdll.VTIF_I2C_ReadData(b"0xA0|0x00|0x00|256",outString)
if (nRet!=0):
print("Read data error!")
exit()
else:
print(outString.value)