You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
unit ControlCAN;
interface
uses WinTypes;
const DLL_NAME = 'ControlCAN.dll';//Dynamic library name
type
//--------------------------------------ZLG compatible functions and data types ----------------- //Declare each data structure
//USB-CAN bus adapter card data type information. VCI_BOARD_INFO = Record hw_Version : WORD; fw_Version : WORD; dr_Version : WORD; in_Version : WORD; irq_Num : WORD; can_Num : BYTE; str_Serial_Num : array[0..19] of CHAR; str_hw_Type : array[0..39] of CHAR; Reserved : array[0..3] of WORD; END;
PVCI_BOARD_INFO=^VCI_BOARD_INFO;
//Defined data types CAN message frame. VCI_CAN_OBJ = Record ID : UINT; TimeStamp : UINT; TimeFlag : BYTE; SendType : BYTE; RemoteFlag : BYTE; ExternFlag : BYTE; DataLen : BYTE; Data : array[0..7] of BYTE; Reserved : array[0..2] of BYTE; END;
PVCI_CAN_OBJ = ^VCI_CAN_OBJ;
//Defined data types CAN controller states. VCI_CAN_STATUS = Record ErrInterrupt : UCHAR; regMode : UCHAR; regStatus : UCHAR; regALCapture : UCHAR; regECCapture : UCHAR; regEWLimit : UCHAR; regRECounter : UCHAR; regTECounter : UCHAR; Reserved : DWORD; END;
PVCI_CAN_STATUS = ^VCI_CAN_STATUS;
//Definition of wrong data type information. VCI_ERR_INFO = Record ErrCode : UINT; Passive_ErrData : array[0..2] of BYTE; ArLost_ErrData : BYTE; END;
PVCI_ERR_INFO = ^VCI_ERR_INFO;
//CAN initialization data type definition VCI_INIT_CONFIG = Record AccCode : DWORD; AccMask : DWORD; Reserved : DWORD; Filter : UCHAR; Timing0 : UCHAR; Timing1 : UCHAR; Mode : UCHAR; END;
PVCI_INIT_CONFIG = ^VCI_INIT_CONFIG;
//Importing DLL function function VCI_OpenDevice ( DevType : DWORD; DevIndex : DWORD; Reserved : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_CloseDevice ( DevType : DWORD; DevIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_InitCAN ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; pInitConfig : PVCI_INIT_CONFIG) : DWORD; stdcall; external DLL_NAME;
function VCI_ReadBoardInfo ( DevType : DWORD; DevIndex : DWORD; pInfo : PVCI_BOARD_INFO) : DWORD; stdcall; external DLL_NAME;
function VCI_ReadErrInfo ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; pErrInfo : PVCI_ERR_INFO) : DWORD; stdcall; external DLL_NAME;
function VCI_ReadCANStatus ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; pCANStatus : PVCI_CAN_STATUS) : DWORD; stdcall; external DLL_NAME;
function VCI_GetReference ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; RefType : DWORD; pData : Pointer) : DWORD; stdcall; external DLL_NAME;
function VCI_SetReference ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; RefType : DWORD; pData : Pointer) : DWORD; stdcall; external DLL_NAME;
function VCI_GetReceiveNum ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD) : ULONG; stdcall; external DLL_NAME;
function VCI_ClearBuffer ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_StartCAN ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_ResetCAN ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_Transmit ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; pSend : PVCI_CAN_OBJ; Len : ULONG) : ULONG; stdcall; external DLL_NAME;
function VCI_Receive ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; pReceive : PVCI_CAN_OBJ; Len : ULONG; WaitTime : integer) : ULONG; stdcall; external DLL_NAME;
//------------------------�������������ݽṹ����-------------------------------- type //Data type USB-CAN bus adapter card information, a, of the type referred to in VCI_FindUsbDevice function VCI_BOARD_INFO1 = Record hw_Version : WORD; fw_Version : WORD; dr_Version : WORD; in_Version : WORD; irq_Num : WORD; can_Num : BYTE; reserved : BYTE; str_Serial_Num : array[0..7] of CHAR; str_hw_Type : array[0..15] of CHAR; str_USB_Serial : array[0..3,0..3] of CHAR; END;
PVCI_BOARD_INFO1=^VCI_BOARD_INFO1;
//Define the general parameters of type VCI_REF_NORMAL = Record Mode : UCHAR; Filter : UCHAR; AccCode : DWORD; AccMask : DWORD; kBaudRate : UCHAR; Timing0 : UCHAR; Timing1 : UCHAR; CANRX_EN : UCHAR; UARTBAUD : UCHAR; END;
PVCI_REF_NORMAL = ^VCI_REF_NORMAL;
// Define the baud rate setting parameter types) VCI_BAUD_TYPE = Record Baud : DWORD; SJW : UCHAR; BRP : UCHAR; SAM : UCHAR; PHSEG2_SEL : UCHAR; PRSEG : UCHAR; PHSEG1 : UCHAR; PHSEG2 : UCHAR; END;
PVCI_BAUD_TYPE = ^VCI_BAUD_TYPE;
//Reference parameter type definition VCI_REF_STRUCT = Record RefNormal : VCI_REF_NORMAL; Reserved : UCHAR; BaudType : VCI_BAUD_TYPE; END;
PVCI_REF_STRUCT = ^VCI_REF_STRUCT;
//Importing DLL function function VCI_GetReference2 ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; Reserved : DWORD; pRefStruct : PVCI_REF_STRUCT) : DWORD; stdcall; external DLL_NAME;
function VCI_SetReference2 ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD; RefType : DWORD; pRefStruct : Pointer) : DWORD; stdcall; external DLL_NAME;
function VCI_ResumeConfig ( DevType : DWORD; DevIndex : DWORD; CANIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_ConnectDevice ( DevType : DWORD; DevIndex : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_UsbDeviceReset ( DevType : DWORD; DevIndex : DWORD; Reserved : DWORD) : DWORD; stdcall; external DLL_NAME;
function VCI_FindUsbDevice ( pInfo : PVCI_BOARD_INFO1) : DWORD; stdcall; external DLL_NAME;
implementation
end.
|