'-------------------------------------------------------------------------* ' Translated by Prof.Dr.Godfried-Willem Raes on Wednesday, May 15, 2002 * '-------------------------------------------------------------------------* ' note AWUSB.DLL must be installed under the Windows / system directory. ' this include file must be under \pb\winapi ' AWUSBAPI.H : header file - source ' AwUSBapi.inc : PowerBasic translation '$If !defined(%AFX_ACTIVEWIREUSB_H__C5F11600_F0F9_11D2_AC25_00104B306BEE__INCLUDED_) '%AFX_ACTIVEWIREUSB_H__C5F11600_F0F9_11D2_AC25_00104B306BEE__INCLUDED_ = 0 %AWUSB_MAX_NUMPIPE = 32 '$DEVROOTNAME = "Awusb-" '$AWUSB_DLL_NAME = "awusb.dll" ' typedefs TYPE AWUSB_INTELHEX count AS BYTE adr AS WORD ' was: addr As WORD typ AS BYTE dat(256) AS BYTE ' was:data(256) as byte crc AS BYTE END TYPE TYPE AWUSB_PIPEINFO numpipe AS BYTE typ(%AWUSB_MAX_NUMPIPE) AS BYTE endpoint(%AWUSB_MAX_NUMPIPE) AS BYTE dir(%AWUSB_MAX_NUMPIPE) AS BYTE siz(%AWUSB_MAX_NUMPIPE) AS WORD END TYPE ' Function prototype ' High level Application interface 'DECLARE FUNCTION AwusbOutPort LIB "awusb.dll" ALIAS "AwusbOutPort" (dat AS BYTE, BYVAL count AS DWORD) AS DWORD 'DECLARE FUNCTION AwusbInPort LIB "awusb.dll" ALIAS "AwusbInPort" (dat AS BYTE, BYVAL count AS DWORD)AS DWORD 'DECLARE FUNCTION AwusbEnablePort LIB "awusb.dll" ALIAS "AwusbEnablePort" (dat AS BYTE, BYVAL count AS DWORD) AS DWORD DECLARE FUNCTION AwusbOutPort LIB "awusb.dll" ALIAS "AwusbOutPort" (BYREF dat AS ANY, BYVAL count AS DWORD) AS DWORD DECLARE FUNCTION AwusbInPort LIB "awusb.dll" ALIAS "AwusbInPort" (BYREF dat AS ANY, BYVAL count AS DWORD)AS DWORD DECLARE FUNCTION AwusbEnablePort LIB "awusb.dll" ALIAS "AwusbEnablePort" (BYREF dat AS ANY, BYVAL count AS DWORD) AS DWORD ' Low level USB interface DECLARE FUNCTION AwusbOpen LIB "awusb.dll" ALIAS "AwusbOpen" (BYVAL devnum AS DWORD) AS DWORD DECLARE FUNCTION AwusbClose LIB "awusb.dll" ALIAS "AwusbClose" () AS DWORD DECLARE FUNCTION AwusbSetInterface LIB "awusb.dll" ALIAS "AwusbSetInterface" (BYVAL intfc AS DWORD, BYVAL altset AS DWORD) AS DWORD DECLARE FUNCTION AwusbRead LIB "awusb.dll" ALIAS "AwusbRead" (BYVAL pipenum AS DWORD, buf AS BYTE, BYVAL count AS DWORD) AS DWORD DECLARE FUNCTION AwusbWrite LIB "awusb.dll" ALIAS "AwusbWrite" (BYVAL pipenum AS DWORD, buf AS BYTE , BYVAL count AS DWORD)AS DWORD DECLARE FUNCTION AwusbCancelIo LIB "awusb.dll" ALIAS "AwusbCancelIo" (BYVAL pipenum AS DWORD) AS DWORD DECLARE FUNCTION AwusbGetPipeInfo LIB "awusb.dll" ALIAS "AwusbGetPipeInfo" (pipeinfo AS AWUSB_PIPEINFO)AS DWORD DECLARE FUNCTION AwusbResetPipe LIB "awusb.dll" ALIAS "AwusbResetPipe" (BYVAL pipenum AS DWORD)AS DWORD DECLARE FUNCTION AwusbDownload LIB "awusb.dll" ALIAS "AwusbDownload" (hexrec AS AWUSB_INTELHEX) AS DWORD DECLARE FUNCTION AwusbReadIntelHexLine LIB "awusb.dll" ALIAS "AwusbReadIntelHexLine" (buf AS STRING, hexrec AS AWUSB_INTELHEX)AS DWORD DECLARE FUNCTION AwusbDownloadIntelHexFile LIB "awusb.dll" ALIAS "AwusbDownloadIntelHexFile" (filename AS STRING) AS DWORD DECLARE FUNCTION Awusb8051Reset LIB "awusb.dll" ALIAS "Awusb8051Reset" (BYVAL hold AS BYTE) AS DWORD ' hold was BOOL ' Error handling DECLARE FUNCTION AwUsbErrorMessage LIB "awusb.dll" ALIAS "AwusbErrorMessage" (BYVAL errcode AS DWORD) AS STRING ' Error Code 'enum AWUSB_ERROR_CODE_T { ' translated by just numbering the messages %AWUSB_OK = 0 ' success %AWUSB_ERROR_FATAL = 1 ' Fatal error, cannot continue %AWUSB_ERROR_SYSTEM = 2 ' System error, use WIN32 GetLastError() for further error code %AWUSB_ERROR_MEMORY = 3 ' Run out of memory %AWUSB_ERROR_FILEOPEN = 4 ' File open failure %AWUSB_ERROR_FILEWRITE = 5 ' File write failure %AWUSB_ERROR_FILEREAD = 6 ' File read failure %AWUSB_ERROR_FILECLOSE = 7 ' File close failure %AWUSB_ERROR_FILEFORMAT = 8 ' File format error %AWUSB_ERROR_FILECHECKSUM = 9 ' File checksum error %AWUSB_ERROR_FILEEOF = 10 ' Unexpected end of file %AWUSB_ERROR_HARDWARE = 11 ' Hardware error, such as the device unplugged %AWUSB_ERROR_SOFTWARE = 12 ' Software error, possibly a bug... %AWUSB_ERROR_NOTIMPLEMENTED = 13 ' Not implemented yet... %AWUSB_ERROR_NOSUPPORT = 14 ' Not supported %AWUSB_ERROR_USBNOTOPEN = 15 ' Not opened yet %AWUSB_ERROR_USBNOTCLOSE = 16 ' Not closed yet %AWUSB_ERROR_USBBADPIPE = 17 ' Bad USB pipe %AWUSB_ERROR_USBBADOPCODE = 18 ' Bad USB Command/Status Opcode %AWUSB_ERROR_USBZEROPACKET = 19 ' Zero length USB data packet %AWUSB_ERROR_USBSHORTPACKET = 20 ' Short USB data packet %AWUSB_ERROR_USBLONGPACKET = 21 ' Longer USB data packet %AWUSB_ERROR_TIMEOUT = 22 ' Time out, may or may not a problem... %AWUSB_ERROR_TRYAGAIN = 23 ' Don't get too serious, try again, may work next time %AWUSB_ERROR_UNKNOWN = 24 ' Unknown... Truth is out there... :)