mingw_controlcan.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifdef IV_WIN
  2. #include <QLibrary>
  3. #include "mingw_controlcan.h"
  4. /*
  5. EXTERNC DWORD (*pVCI_OpenDevice)(DWORD DeviceType,DWORD DeviceInd,DWORD Reserved);
  6. EXTERNC DWORD (*pVCI_CloseDevice)(DWORD DeviceType,DWORD DeviceInd);
  7. EXTERNC DWORD (*pVCI_InitCAN)(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_INIT_CONFIG pInitConfig);
  8. EXTERNC DWORD (*pVCI_ReadBoardInfo)(DWORD DeviceType,DWORD DeviceInd,PVCI_BOARD_INFO pInfo);
  9. EXTERNC DWORD (*pVCI_SetReference)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,PVOID pData);
  10. //QT中请定义:
  11. //EXTERNC DWORD __stdcall VCI_SetReference(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,DWORD RefType,void *pData);
  12. EXTERNC ULONG (*pVCI_GetReceiveNum)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  13. EXTERNC DWORD (*pVCI_ClearBuffer)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  14. EXTERNC DWORD (*pVCI_StartCAN)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  15. EXTERNC DWORD (*pVCI_ResetCAN)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd);
  16. EXTERNC ULONG (*pVCI_Transmit)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,ULONG Len);
  17. EXTERNC ULONG (*pVCI_Receive)(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pReceive,ULONG Len,INT WaitTime);
  18. EXTERNC DWORD (*pVCI_UsbDeviceReset)(DWORD DevType,DWORD DevIndex,DWORD Reserved);
  19. EXTERNC DWORD (*VCI_FindUsbDevice2)(PVCI_BOARD_INFO pInfo);
  20. */
  21. pVCI_OpenDevice VCI_OpenDevice;
  22. pVCI_CloseDevice VCI_CloseDevice;
  23. pVCI_InitCAN VCI_InitCAN;
  24. pVCI_ReadBoardInfo VCI_ReadBoardInfo;
  25. pVCI_SetReference VCI_SetReference;
  26. pVCI_GetReceiveNum VCI_GetReceiveNum;
  27. pVCI_ClearBuffer VCI_ClearBuffer;
  28. pVCI_StartCAN VCI_StartCAN;
  29. pVCI_ResetCAN VCI_ResetCAN;
  30. pVCI_Transmit VCI_Transmit;
  31. pVCI_Receive VCI_Receive;
  32. pVCI_UsbDeviceReset VCI_UsbDeviceReset;
  33. pVCI_FindUsbDevice2 VCI_FindUsbDevice2;
  34. void LoadVCILibrary()
  35. {
  36. QLibrary lib("ControlCAN");
  37. if(!lib.load())
  38. {
  39. qDebug("Load ControlCAN Fail.");
  40. qDebug("error is %s",lib.errorString().toLatin1().data());
  41. return;
  42. }
  43. VCI_OpenDevice = (pVCI_OpenDevice)lib.resolve("VCI_OpenDevice");
  44. if(VCI_OpenDevice == 0)
  45. {
  46. qDebug("Load VCI Fail");
  47. }
  48. VCI_CloseDevice = (pVCI_CloseDevice)lib.resolve("VCI_CloseDevice");
  49. VCI_InitCAN = (pVCI_InitCAN)lib.resolve("VCI_InitCAN");
  50. VCI_ReadBoardInfo = (pVCI_ReadBoardInfo)lib.resolve("VCI_ReadBoardInfo");
  51. VCI_SetReference = (pVCI_SetReference)lib.resolve("VCI_SetReference");
  52. VCI_GetReceiveNum = (pVCI_GetReceiveNum)lib.resolve("VCI_GetReceiveNum");
  53. VCI_ClearBuffer = (pVCI_ClearBuffer)lib.resolve("VCI_ClearBuffer");
  54. VCI_StartCAN = (pVCI_StartCAN)lib.resolve("VCI_StartCAN");
  55. VCI_ResetCAN = (pVCI_ResetCAN)lib.resolve("VCI_ResetCAN");
  56. VCI_Transmit = (pVCI_Transmit)lib.resolve("VCI_Transmit");
  57. VCI_Receive = (pVCI_Receive)lib.resolve("VCI_Receive");
  58. VCI_UsbDeviceReset = (pVCI_UsbDeviceReset)lib.resolve("VCI_UsbDeviceReset");
  59. VCI_FindUsbDevice2 = (pVCI_FindUsbDevice2)lib.resolve("VCI_FindUsbDevice2");
  60. }
  61. #endif