Subversion Repositories f9daq

Rev

Rev 264 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #ifndef _WUSBVME_DLL_H
  2. #define _WUSBVME_DLL_H
  3.  
  4. #ifdef _CVI_
  5. #include <ansi_c.h>
  6. #include <windows.h>
  7. #include <cvidef.h>
  8. #include <ivi.h>
  9. #include "usb.h"
  10. #else
  11. #include "/usr/include/usb.h"
  12. #endif
  13.  
  14.  
  15. #ifdef XXDLL
  16. #include "xxusb_dll.h"
  17. #else
  18. #include "libxxusb.h"
  19. #endif
  20.  
  21. #define CMD_WRITE 0x000
  22. #define CMD_READ  0x100
  23. #define CMD_A24   0x039
  24. #define CMD_A32   0x009
  25. #define CMD_HM    0x80000
  26. #define CMD_HD    0x20000
  27. #define CMD_MRK   0x2000
  28. #define CMD_DLY   0x8000
  29. #define CMD_BLT   0xFF000000
  30.  
  31. #define CMD_D16   1
  32. #define CMD_D32   0
  33.  
  34.  
  35. #define MAXSTACKSIZE 100000
  36.  
  37. int WIENER_VMUSB_StackInit();
  38. void WIENER_VMUSB_StackClear();
  39.  
  40.  
  41. #define  WIENER_VMUSB_StackReadA24D16( ADDR )        WIENER_VMUSB_StackAppend(CMD_READ | CMD_A24 , CMD_D16 | (ADDR) )
  42. #define  WIENER_VMUSB_StackReadA24D32( ADDR )        WIENER_VMUSB_StackAppend(CMD_READ | CMD_A24 , CMD_D32 | (ADDR) )
  43. #define  WIENER_VMUSB_StackReadA32D16( ADDR )        WIENER_VMUSB_StackAppend(CMD_READ | CMD_A32 , CMD_D16 | (ADDR) )
  44. #define  WIENER_VMUSB_StackReadA32D32( ADDR )        WIENER_VMUSB_StackAppend(CMD_READ | CMD_A32 , CMD_D32 | (ADDR) )
  45.  
  46. #define  WIENER_VMUSB_StackWriteA24D16( ADDR, DATA)  WIENER_VMUSB_StackAppendData(CMD_WRITE | CMD_A24,CMD_D16 | (ADDR), (DATA))
  47. #define  WIENER_VMUSB_StackWriteA24D32( ADDR, DATA)  WIENER_VMUSB_StackAppendData(CMD_WRITE | CMD_A24,CMD_D32 | (ADDR), (DATA))
  48. #define  WIENER_VMUSB_StackWriteA32D16( ADDR, DATA)  WIENER_VMUSB_StackAppendData(CMD_WRITE | CMD_A32,CMD_D16 | (ADDR), (DATA))
  49. #define  WIENER_VMUSB_StackWriteA32D32( ADDR, DATA)  WIENER_VMUSB_StackAppendData(CMD_WRITE | CMD_A32,CMD_D32 | (ADDR), (DATA))
  50.  
  51. #define WIENER_VMUSB_StackMarker(MRK) WIENER_VMUSB_StackAppend(CMD_MRK, (MRK))
  52.  
  53.   int WIENER_VMUSB_StackAppend(int cmd, uint32_t addr);
  54.   int WIENER_VMUSB_StackAppendData(int cmd, uint32_t addr, uint32_t data);
  55.  
  56.   void WIENER_VMUSB_StackConditionalRead(int am ,int d16d32,uint32_t addr, uint32_t data);
  57.   void WIENER_VMUSB_StackMultiRead(int addr_modifier,int d16d32, uint32_t baseaddr, int n,uint32_t increment);
  58.   void WIENER_VMUSB_StackMultiWrite(int addr_modifier,int d16d32,uint32_t baseaddr, int n, uint32_t increment, uint32_t data);
  59.  
  60.   int WIENER_VMUSB_StackGetUInt32(int maxn, uint32_t *stack);
  61.     int WIENER_VMUSB_StackGetUInt16(int maxn, uint16_t *stack);  
  62.   void WIENER_VMUSB_StackPrint();
  63.  
  64.  
  65. void _VI_FUNC WIENER_VMUSB_load (const char *module_path);
  66. void _VI_FUNC WIENER_VMUSB_open (const char *serial);
  67. void _VI_FUNC WIENER_VMUSB_close (void);
  68. extern usb_dev_handle *WUSB_udev;
  69.  
  70. #define WIENER_VMUSB_VME_START(NODE) WIENER_VMUSB_load(NULL);WIENER_VMUSB_open((NODE));
  71. #define WIENER_VMUSB_VME_STOP() WIENER_VMUSB_close()
  72. //#define VME_RESET() WIENVME_reset()
  73. //#define VME_A24D8_R(VME,DATA) WIENVME_read8(hHandle24, 1, (VME), (DATA))
  74. #define WIENER_VMUSB_VME_A24D16_R(VME,DATA) VME_read_16(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  75. #define WIENER_VMUSB_VME_A24D32_R(VME,DATA) VME_read_32(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  76. //#define VME_A24D8_W(VME,DATA) WIENVME_write8(hHandle24, 1, (VME), (DATA))
  77. #define WIENER_VMUSB_VME_A24D16_W(VME,DATA) VME_write_16(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  78. #define WIENER_VMUSB_VME_A24D32_W(VME,DATA) VME_write_32(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  79. //#define VME_A32D8_R(VME,DATA) WIENVME_read8(hHandle32, 1, (VME), (DATA))
  80. #define WIENER_VMUSB_VME_A32D16_R(VME,DATA) VME_read_16(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  81. #define WIENER_VMUSB_VME_A32D32_R(VME,DATA) VME_read_32(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  82. //#define VME_A32D8_W(VME,DATA) WIENVME_write8(hHandle32, 1, (VME), (DATA))
  83. #define WIENER_VMUSB_VME_A32D16_W(VME,DATA) VME_write_16(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  84. #define WIENER_VMUSB_VME_A32D32_W(VME,DATA) VME_write_32(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  85.  
  86.  
  87. extern short __stdcall WIENER_VMUSB_VME_R( uint16_t AM, uint16_t DW,  uint32_t VME_Address, uint32_t *Data);
  88.  
  89. extern short __stdcall WIENER_VMUSB_VME_W( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
  90.  
  91. extern short __stdcall WIENER_VMUSB_VME_MW( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
  92. extern short __stdcall WIENER_VMUSB_VME_MWRST( void );
  93. extern short __stdcall WIENER_VMUSB_VME_MWEXEC( void );
  94.  
  95. extern short __stdcall WIENER_VMUSB_VME_MR( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data);
  96. extern short __stdcall WIENER_VMUSB_VME_MRRST( void );
  97. extern short __stdcall WIENER_VMUSB_VME_MREXEC(  uint32_t *Data  );
  98.  
  99. #endif
  100.  
  101.