Subversion Repositories f9daq

Rev

Rev 307 | 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. short WIENER_VMUSB_VME_DGG(unsigned short channel, unsigned short trigger,unsigned short output,
  65.                     long delay, unsigned short gate, unsigned short invert, unsigned short latch);
  66. short WIENER_VMUSB_VME_Output_settings( unsigned short channel, unsigned short code, unsigned short invert, unsigned short latch );
  67. short  WIENER_VMUSB_register_write( short RegAddr, long RegData);
  68.  
  69.  
  70. void _VI_FUNC WIENER_VMUSB_load (const char *module_path);
  71. void _VI_FUNC WIENER_VMUSB_open (const char *serial);
  72. void _VI_FUNC WIENER_VMUSB_close (void);
  73. extern usb_dev_handle *WUSB_udev;
  74.  
  75. #define WIENER_VMUSB_VME_START(NODE) WIENER_VMUSB_load(NULL);WIENER_VMUSB_open((NODE));
  76. #define WIENER_VMUSB_VME_STOP() WIENER_VMUSB_close()
  77. //#define VME_RESET() WIENVME_reset()
  78. //#define VME_A24D8_R(VME,DATA) WIENVME_read8(hHandle24, 1, (VME), (DATA))
  79. #define WIENER_VMUSB_VME_A24D16_R(VME,DATA) VME_read_16(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  80. #define WIENER_VMUSB_VME_A24D32_R(VME,DATA) VME_read_32(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  81. //#define VME_A24D8_W(VME,DATA) WIENVME_write8(hHandle24, 1, (VME), (DATA))
  82. #define WIENER_VMUSB_VME_A24D16_W(VME,DATA) VME_write_16(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  83. #define WIENER_VMUSB_VME_A24D32_W(VME,DATA) VME_write_32(WUSB_udev, Std_NoPriv_Data, (VME), (DATA))
  84. //#define VME_A32D8_R(VME,DATA) WIENVME_read8(hHandle32, 1, (VME), (DATA))
  85. #define WIENER_VMUSB_VME_A32D16_R(VME,DATA) VME_read_16(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  86. #define WIENER_VMUSB_VME_A32D32_R(VME,DATA) VME_read_32(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  87. //#define VME_A32D8_W(VME,DATA) WIENVME_write8(hHandle32, 1, (VME), (DATA))
  88. #define WIENER_VMUSB_VME_A32D16_W(VME,DATA) VME_write_16(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  89. #define WIENER_VMUSB_VME_A32D32_W(VME,DATA) VME_write_32(WUSB_udev, Ext_NoPriv_Data, (VME), (DATA))
  90.  
  91.  
  92. extern short __stdcall WIENER_VMUSB_VME_R( uint16_t AM, uint16_t DW,  uint32_t VME_Address, uint32_t *Data);
  93.  
  94. extern short __stdcall WIENER_VMUSB_VME_W( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
  95.  
  96. extern short __stdcall WIENER_VMUSB_VME_MW( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
  97. extern short __stdcall WIENER_VMUSB_VME_MWRST( void );
  98. extern short __stdcall WIENER_VMUSB_VME_MWEXEC( void );
  99.  
  100. extern short __stdcall WIENER_VMUSB_VME_MR( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data);
  101. extern short __stdcall WIENER_VMUSB_VME_MRRST( void );
  102. extern short __stdcall WIENER_VMUSB_VME_MREXEC(  uint32_t *Data  );
  103.  
  104. #endif
  105.  
  106.