Rev 5 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line | 
|---|---|---|---|
| 5 | f9daq | 1 | #include <stdlib.h> | 
        
| 2 | #include <stdio.h> | 
        ||
| 3 | #include "pcivme_ni.h" | 
        ||
| 4 | #include "wienvme_dll.h" | 
        ||
| 5 | //----------- DEFINES ----------------------------------------------------- | 
        ||
| 6 | #define DEVICENAME_LINUX "/dev/vmemm_1"     // a device name 'template' for WINNT | 
        ||
| 7 | |||
| 8 | usb_dev_handle *udev;  | 
        ||
| 9 | |||
| 10 | |||
| 11 | |||
| 12 | |||
| 13 | int VME_start (char* serial)  | 
        ||
| 14 | { | 
        ||
| 15 | |||
| 16 | char serial_default[100];  | 
        ||
| 17 | sprintf(serial_default, "VM0120");  | 
        ||
| 18 | if (serial != NULL)  | 
        ||
| 19 | udev = xxusb_serial_open(serial);  | 
        ||
| 20 |  else | 
        ||
| 21 | udev = xxusb_serial_open(serial_default);  | 
        ||
| 22 | printf(" VME_start %s--->udev!=NULL ==>%d\n", serial, udev!=NULL);  | 
        ||
| 23 | if (!udev) {  | 
        ||
| 24 | printf(" Check usb udev permissions and restart! Exiting .....\n", serial, udev!=NULL);  | 
        ||
| 25 | exit(-1);  | 
        ||
| 26 |    } | 
        ||
| 27 | return 0;  | 
        ||
| 28 | } | 
        ||
| 29 | |||
| 30 | |||
| 31 | |||
| 32 | int VME_stop ()  | 
        ||
| 33 | { | 
        ||
| 34 | if (udev) xxusb_device_close(udev);  | 
        ||
| 35 | |||
| 36 | |||
| 37 | return 0;  | 
        ||
| 38 | } | 
        ||
| 39 | |||
| 40 | short Address_Modifier= Std_NoPriv_Data;  | 
        ||
| 41 | |||
| 42 | int VME_read16 (Uint32_t at, void* buff)  | 
        ||
| 43 | { | 
        ||
| 44 | int result;  | 
        ||
| 45 | |||
| 46 | /* D16 read */ | 
        ||
| 47 | |||
| 48 | result = VME_read_16(udev, Address_Modifier, at , (Uint32_t *) buff);  | 
        ||
| 49 | if (result <0) {  | 
        ||
| 50 | printf("D16 read at 0x%X failed! err=%d\n", at,result);  | 
        ||
| 51 |   } | 
        ||
| 52 | //  printf("0x%X, 0x%X, 0x%X, 0x%X\n", hHandle, at, n, * (unsigned short *) buff); | 
        ||
| 53 | return (result);  | 
        ||
| 54 | } | 
        ||
| 55 | |||
| 56 | int VME_read32 (Uint32_t at, void* buff)  | 
        ||
| 57 | { | 
        ||
| 58 | int result;  | 
        ||
| 59 | |||
| 60 | /* D32 read */ | 
        ||
| 61 | |||
| 62 | result = VME_read_32(udev, Address_Modifier, at , (Uint32_t *) buff);  | 
        ||
| 63 | if (result < 0) {  | 
        ||
| 64 | printf("D32 read at 0x%X failed err=%d!\n", at,result);  | 
        ||
| 65 |   } | 
        ||
| 66 |   //printf("0x%X, 0x%X, 0x%X, 0x%X\n", hHandle, at, n, * (unsigned short *) buff); | 
        ||
| 67 | return (result);  | 
        ||
| 68 | } | 
        ||
| 69 | |||
| 70 | int VME_write16 (Uint32_t at, void* buff)  | 
        ||
| 71 | { | 
        ||
| 72 | int result;  | 
        ||
| 73 | Uint32_t data= *((short *)buff);  | 
        ||
| 74 | |||
| 75 | /* D16 write */ | 
        ||
| 76 | |||
| 77 | result = VME_write_16(udev, Address_Modifier, at, data );  | 
        ||
| 78 | if (result<0) {  | 
        ||
| 79 | printf("D16 write at 0x%X failed! err=%d\n", at,result);  | 
        ||
| 80 |   } | 
        ||
| 81 | return (result);  | 
        ||
| 82 | } | 
        ||
| 83 | |||
| 84 | int VME_write32 ( Uint32_t at, void* buff)  | 
        ||
| 85 | { | 
        ||
| 86 | int result;  | 
        ||
| 87 | Uint32_t data= *((Uint32_t *)buff);  | 
        ||
| 88 | |||
| 89 | /* D32 write */ | 
        ||
| 90 | |||
| 91 | result = VME_write_32(udev, Address_Modifier, at, data );  | 
        ||
| 92 | |||
| 93 | if (result<0) {  | 
        ||
| 94 | printf("D32 write at 0x%X failed! err=%d\n", at,result);  | 
        ||
| 95 |   } | 
        ||
| 96 |   //printf("D32 write at 0x%lX buff=0x%X\n", at,((int*) buff)[0]); | 
        ||
| 97 | return (result);  | 
        ||
| 98 | } |