#include "vme.h"
short __stdcall VME_R( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data);
short __stdcall VME_W( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
short __stdcall VME_MW( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data);
short __stdcall VME_MWRST( void );
short __stdcall VME_MWEXEC( void );
short __stdcall VME_MR( uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data);
short __stdcall VME_MRRST( void );
short __stdcall VME_MREXEC( uint32_t *Data );
/*
#ifdef _CVI_
#include "c:\home\CVI\instr\WIENVME_DLL\wienvme_dll.h"
#else
#include "wienvme_dll.h"
#endif
*/
#include "CAENV1718.h"
#include "wusbvme_dll.h"
#include "wienvme_dll.h"
#include "sis3153.h"
static int VME_interface= -1;
int VME_GetInterface() {
return VME_interface;
}
int VME_CONNECTED() {
return VME_interface;
}
short VME_START (int interface) {
//short __stdcall VME_START (int interface) {
VME_interface=interface;
switch (VME_interface) {
case CAEN_V1718:
CAEN_VME_START (NULL);
VME_R_Ptr = CAEN_VME_R;
VME_W_Ptr = CAEN_VME_W;
VME_MW_Ptr = CAEN_VME_MW;
VME_MR_Ptr = CAEN_VME_MR;
VME_MW_Ptr = CAEN_VME_MW;
VME_MR_Ptr = CAEN_VME_MR;
VME_MWEXEC_Ptr = CAEN_VME_MWEXEC;
VME_MREXEC_Ptr = CAEN_VME_MREXEC;
VME_MWRST_Ptr = CAEN_VME_MWRST;
VME_MRRST_Ptr = CAEN_VME_MRRST;
break;
case WIENER_VMEMM:
WIENVME_VME_START(NULL);
VME_R_Ptr = WIENVME_VME_R;
VME_W_Ptr = WIENVME_VME_W;
VME_MW_Ptr = WIENVME_VME_MW;
VME_MR_Ptr = WIENVME_VME_MR;
VME_MW_Ptr = WIENVME_VME_MW;
VME_MR_Ptr = WIENVME_VME_MR;
VME_MWEXEC_Ptr = WIENVME_VME_MWEXEC;
VME_MREXEC_Ptr = WIENVME_VME_MREXEC;
VME_MWRST_Ptr = WIENVME_VME_MWRST;
VME_MRRST_Ptr = WIENVME_VME_MRRST;
break;
case WIENER_VMUSB:
WIENER_VMUSB_VME_START("VM0120");
VME_R_Ptr = WIENER_VMUSB_VME_R;
VME_W_Ptr = WIENER_VMUSB_VME_W;
VME_MW_Ptr = WIENER_VMUSB_VME_MW;
VME_MR_Ptr = WIENER_VMUSB_VME_MR;
VME_MW_Ptr = WIENER_VMUSB_VME_MW;
VME_MR_Ptr = WIENER_VMUSB_VME_MR;
VME_MWEXEC_Ptr = WIENER_VMUSB_VME_MWEXEC;
VME_MREXEC_Ptr = WIENER_VMUSB_VME_MREXEC;
VME_MWRST_Ptr = WIENER_VMUSB_VME_MWRST;
VME_MRRST_Ptr = WIENER_VMUSB_VME_MRRST;
break;
case SIS3153_USB:
SIS3153_USB_VME_START(NULL);
VME_R_Ptr = SIS3153_USB_VME_R;
VME_W_Ptr = SIS3153_USB_VME_W;
VME_MWRST_Ptr = SIS3153_USB_VME_MWRST;
VME_MW_Ptr = SIS3153_USB_VME_MW;
VME_MWEXEC_Ptr = SIS3153_USB_VME_MWEXEC;
VME_MRRST_Ptr = SIS3153_USB_VME_MRRST;
VME_MR_Ptr = SIS3153_USB_VME_MR;
VME_MREXEC_Ptr = SIS3153_USB_VME_MREXEC;
break;
default:
break;
}
return 0;
}
short VME_STOP () {
//short __stdcall VME_STOP () {
switch (VME_interface) {
case CAEN_V1718:
CAEN_VME_STOP();
break;
case WIENER_VMEMM:
break;
case WIENER_VMUSB:
WIENER_VMUSB_VME_STOP();
break;
case SIS3153_USB:
SIS3153_USB_VME_STOP();
break;
default:
break;
}
VME_interface = -1;
return 0;
}