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 | } |