Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 56 → Rev 57

/ICFA/uklon/uklon.cdb
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: uklon/usb.h
===================================================================
--- uklon/usb.h (nonexistent)
+++ uklon/usb.h (revision 57)
@@ -0,0 +1,373 @@
+#ifndef __USB_H__
+#define __USB_H__
+
+#include <stdlib.h>
+
+/*
+ * 'interface' is defined somewhere in the Windows header files. This macro
+ * is deleted here to avoid conflicts and compile errors.
+ */
+
+#ifdef interface
+#undef interface
+#endif
+
+/*
+ * PATH_MAX from limits.h can't be used on Windows if the dll and
+ * import libraries are build/used by different compilers
+ */
+
+#define LIBUSB_PATH_MAX 512
+
+
+/*
+ * USB spec information
+ *
+ * This is all stuff grabbed from various USB specs and is pretty much
+ * not subject to change
+ */
+
+/*
+ * Device and/or Interface Class codes
+ */
+#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */
+#define USB_CLASS_AUDIO 1
+#define USB_CLASS_COMM 2
+#define USB_CLASS_HID 3
+#define USB_CLASS_PRINTER 7
+#define USB_CLASS_MASS_STORAGE 8
+#define USB_CLASS_HUB 9
+#define USB_CLASS_DATA 10
+#define USB_CLASS_VENDOR_SPEC 0xff
+
+/*
+ * Descriptor types
+ */
+#define USB_DT_DEVICE 0x01
+#define USB_DT_CONFIG 0x02
+#define USB_DT_STRING 0x03
+#define USB_DT_INTERFACE 0x04
+#define USB_DT_ENDPOINT 0x05
+
+#define USB_DT_HID 0x21
+#define USB_DT_REPORT 0x22
+#define USB_DT_PHYSICAL 0x23
+#define USB_DT_HUB 0x29
+
+/*
+ * Descriptor sizes per descriptor type
+ */
+#define USB_DT_DEVICE_SIZE 18
+#define USB_DT_CONFIG_SIZE 9
+#define USB_DT_INTERFACE_SIZE 9
+#define USB_DT_ENDPOINT_SIZE 7
+#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */
+#define USB_DT_HUB_NONVAR_SIZE 7
+
+
+/* ensure byte-packed structures */
+#include <pshpack1.h>
+
+
+/* All standard descriptors have these 2 fields in common */
+struct usb_descriptor_header {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+};
+
+/* String descriptor */
+struct usb_string_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned short wData[1];
+};
+
+/* HID descriptor */
+struct usb_hid_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned short bcdHID;
+ unsigned char bCountryCode;
+ unsigned char bNumDescriptors;
+};
+
+/* Endpoint descriptor */
+#define USB_MAXENDPOINTS 32
+struct usb_endpoint_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned char bEndpointAddress;
+ unsigned char bmAttributes;
+ unsigned short wMaxPacketSize;
+ unsigned char bInterval;
+ unsigned char bRefresh;
+ unsigned char bSynchAddress;
+
+ unsigned char *extra; /* Extra descriptors */
+ int extralen;
+};
+
+#define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */
+#define USB_ENDPOINT_DIR_MASK 0x80
+
+#define USB_ENDPOINT_TYPE_MASK 0x03 /* in bmAttributes */
+#define USB_ENDPOINT_TYPE_CONTROL 0
+#define USB_ENDPOINT_TYPE_ISOCHRONOUS 1
+#define USB_ENDPOINT_TYPE_BULK 2
+#define USB_ENDPOINT_TYPE_INTERRUPT 3
+
+/* Interface descriptor */
+#define USB_MAXINTERFACES 32
+struct usb_interface_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned char bInterfaceNumber;
+ unsigned char bAlternateSetting;
+ unsigned char bNumEndpoints;
+ unsigned char bInterfaceClass;
+ unsigned char bInterfaceSubClass;
+ unsigned char bInterfaceProtocol;
+ unsigned char iInterface;
+
+ struct usb_endpoint_descriptor *endpoint;
+
+ unsigned char *extra; /* Extra descriptors */
+ int extralen;
+};
+
+#define USB_MAXALTSETTING 128 /* Hard limit */
+
+struct usb_interface {
+ struct usb_interface_descriptor *altsetting;
+
+ int num_altsetting;
+};
+
+/* Configuration descriptor information.. */
+#define USB_MAXCONFIG 8
+struct usb_config_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned short wTotalLength;
+ unsigned char bNumInterfaces;
+ unsigned char bConfigurationValue;
+ unsigned char iConfiguration;
+ unsigned char bmAttributes;
+ unsigned char MaxPower;
+
+ struct usb_interface *interface;
+
+ unsigned char *extra; /* Extra descriptors */
+ int extralen;
+};
+
+/* Device descriptor */
+struct usb_device_descriptor {
+ unsigned char bLength;
+ unsigned char bDescriptorType;
+ unsigned short bcdUSB;
+ unsigned char bDeviceClass;
+ unsigned char bDeviceSubClass;
+ unsigned char bDeviceProtocol;
+ unsigned char bMaxPacketSize0;
+ unsigned short idVendor;
+ unsigned short idProduct;
+ unsigned short bcdDevice;
+ unsigned char iManufacturer;
+ unsigned char iProduct;
+ unsigned char iSerialNumber;
+ unsigned char bNumConfigurations;
+};
+
+struct usb_ctrl_setup {
+ unsigned char bRequestType;
+ unsigned char bRequest;
+ unsigned short wValue;
+ unsigned short wIndex;
+ unsigned short wLength;
+};
+
+/*
+ * Standard requests
+ */
+#define USB_REQ_GET_STATUS 0x00
+#define USB_REQ_CLEAR_FEATURE 0x01
+/* 0x02 is reserved */
+#define USB_REQ_SET_FEATURE 0x03
+/* 0x04 is reserved */
+#define USB_REQ_SET_ADDRESS 0x05
+#define USB_REQ_GET_DESCRIPTOR 0x06
+#define USB_REQ_SET_DESCRIPTOR 0x07
+#define USB_REQ_GET_CONFIGURATION 0x08
+#define USB_REQ_SET_CONFIGURATION 0x09
+#define USB_REQ_GET_INTERFACE 0x0A
+#define USB_REQ_SET_INTERFACE 0x0B
+#define USB_REQ_SYNCH_FRAME 0x0C
+
+#define USB_TYPE_STANDARD (0x00 << 5)
+#define USB_TYPE_CLASS (0x01 << 5)
+#define USB_TYPE_VENDOR (0x02 << 5)
+#define USB_TYPE_RESERVED (0x03 << 5)
+
+#define USB_RECIP_DEVICE 0x00
+#define USB_RECIP_INTERFACE 0x01
+#define USB_RECIP_ENDPOINT 0x02
+#define USB_RECIP_OTHER 0x03
+
+/*
+ * Various libusb API related stuff
+ */
+
+#define USB_ENDPOINT_IN 0x80
+#define USB_ENDPOINT_OUT 0x00
+
+/* Error codes */
+#define USB_ERROR_BEGIN 500000
+
+/*
+ * This is supposed to look weird. This file is generated from autoconf
+ * and I didn't want to make this too complicated.
+ */
+#define USB_LE16_TO_CPU(x)
+
+/* Data types */
+/* struct usb_device; */
+/* struct usb_bus; */
+
+struct usb_device {
+ struct usb_device *next, *prev;
+
+ char filename[LIBUSB_PATH_MAX];
+
+ struct usb_bus *bus;
+
+ struct usb_device_descriptor descriptor;
+ struct usb_config_descriptor *config;
+
+ void *dev; /* Darwin support */
+
+ unsigned char devnum;
+
+ unsigned char num_children;
+ struct usb_device **children;
+};
+
+struct usb_bus {
+ struct usb_bus *next, *prev;
+
+ char dirname[LIBUSB_PATH_MAX];
+
+ struct usb_device *devices;
+ unsigned long location;
+
+ struct usb_device *root_dev;
+};
+
+/* Version information, Windows specific */
+struct usb_version {
+ struct {
+ int major;
+ int minor;
+ int micro;
+ int nano;
+ } dll;
+ struct {
+ int major;
+ int minor;
+ int micro;
+ int nano;
+ } driver;
+};
+
+
+struct usb_dev_handle;
+typedef struct usb_dev_handle usb_dev_handle;
+
+/* Variables */
+struct usb_bus *usb_busses;
+
+#include <poppack.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Function prototypes */
+
+ /* usb.c */
+ usb_dev_handle *usb_open(struct usb_device *dev);
+ int usb_close(usb_dev_handle *dev);
+ int usb_get_string(usb_dev_handle *dev, int index, int langid, char *buf,
+ size_t buflen);
+ int usb_get_string_simple(usb_dev_handle *dev, int index, char *buf,
+ size_t buflen);
+
+ /* descriptors.c */
+ int usb_get_descriptor_by_endpoint(usb_dev_handle *udev, int ep,
+ unsigned char type, unsigned char index,
+ void *buf, int size);
+ int usb_get_descriptor(usb_dev_handle *udev, unsigned char type,
+ unsigned char index, void *buf, int size);
+
+ /* <arch>.c */
+ int usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, int size,
+ int timeout);
+ int usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size,
+ int timeout);
+ int usb_interrupt_write(usb_dev_handle *dev, int ep, char *bytes, int size,
+ int timeout);
+ int usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes, int size,
+ int timeout);
+ int usb_control_msg(usb_dev_handle *dev, int requesttype, int request,
+ int value, int index, char *bytes, int size,
+ int timeout);
+ int usb_set_configuration(usb_dev_handle *dev, int configuration);
+ int usb_claim_interface(usb_dev_handle *dev, int interface);
+ int usb_release_interface(usb_dev_handle *dev, int interface);
+ int usb_set_altinterface(usb_dev_handle *dev, int alternate);
+ int usb_resetep(usb_dev_handle *dev, unsigned int ep);
+ int usb_clear_halt(usb_dev_handle *dev, unsigned int ep);
+ int usb_reset(usb_dev_handle *dev);
+
+ char *usb_strerror(void);
+
+ void usb_init(void);
+ void usb_set_debug(int level);
+ int usb_find_busses(void);
+ int usb_find_devices(void);
+ struct usb_device *usb_device(usb_dev_handle *dev);
+ struct usb_bus *usb_get_busses(void);
+
+
+ /* Windows specific functions */
+
+ #define LIBUSB_HAS_INSTALL_SERVICE_NP 1
+ int usb_install_service_np(void);
+
+ #define LIBUSB_HAS_UNINSTALL_SERVICE_NP 1
+ int usb_uninstall_service_np(void);
+
+ #define LIBUSB_HAS_INSTALL_DRIVER_NP 1
+ int usb_install_driver_np(const char *inf_file);
+
+ const struct usb_version *usb_get_version(void);
+
+ int usb_isochronous_setup_async(usb_dev_handle *dev, void **context,
+ unsigned char ep, int pktsize);
+ int usb_bulk_setup_async(usb_dev_handle *dev, void **context,
+ unsigned char ep);
+ int usb_interrupt_setup_async(usb_dev_handle *dev, void **context,
+ unsigned char ep);
+
+ int usb_submit_async(void *context, char *bytes, int size);
+ int usb_reap_async(void *context, int timeout);
+ int usb_free_async(void **context);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USB_H__ */
+
Index: uklon/uklon.prj
===================================================================
--- uklon/uklon.prj (nonexistent)
+++ uklon/uklon.prj (revision 57)
@@ -0,0 +1,214 @@
+[Project Header]
+Version = 551
+Platform Code = 4
+Pathname = "/c/ICFA/2014/uklon/uklon.prj"
+CVI Dir = "/c/measurementstudio/cvi"
+VXIplug&play Framework Dir = "/C/VXIPNP/winnt"
+Number of Files = 5
+Sort Type = "No Sort"
+Target Type = "Executable"
+Build Configuration = "Debug"
+Warn User If Debugging Release = 1
+Flags = 17
+Drag Bar Left = 351
+Window Top = 351
+Window Left = 452
+Window Bottom = 733
+Window Right = 1090
+
+[File 0001]
+File Type = "User Interface Resource"
+Path = "/c/ICFA/2014/uklon/uklon_ui.uir"
+Res Id = 1
+Exclude = False
+Disk Date = 3493093712
+Project Flags = 0
+Window Top = 124
+Window Left = 151
+Window Height = 854
+Window Width = 951
+
+[File 0002]
+File Type = "CSource"
+Path = "/c/ICFA/2014/uklon/uklon.c"
+Res Id = 2
+Exclude = False
+Disk Date = 3493185577
+Project Flags = 0
+Compile Into Object File = False
+Object Format = "Win32-MSVC"
+ForceCompile_Debug = False
+ForceCompile_Release = True
+Window Top = 244
+Window Left = 358
+Window Height = 0
+Window Width = 0
+Source Window State = "1,278,278,278,9,12,13,0,0,107,0,3,0,3,0,41,171,0,207,92,"
+Header Dependencies Line0001 = "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,3"
+Header Dependencies Line0002 = "1,32,33,34,35,36,37,38,39,40,41,42,49,50,51,52,53,54,"
+
+[File 0003]
+File Type = "Include"
+Path = "/c/ICFA/2014/uklon/xxusbdll.h"
+Res Id = 3
+Exclude = False
+Disk Date = 3309558690
+Project Flags = 0
+Window Top = 478
+Window Left = 497
+Window Height = 0
+Window Width = 0
+Source Window State = "1,105,105,105,22,25,26,0,0,80,0,0,0,0,0,29,84,0,103,72,"
+
+[File 0004]
+File Type = "Include"
+Path = "/c/ICFA/2014/uklon/usb.h"
+Res Id = 4
+Exclude = False
+Disk Date = 3201897964
+Project Flags = 0
+Window Top = 602
+Window Left = 310
+Window Height = 0
+Window Width = 0
+Source Window State = "1,0,0,0,0,0,0,0,0,80,0,0,0,0,0,25,0,0,0,0,"
+
+[File 0005]
+File Type = "Library"
+Path = "/c/ICFA/2014/uklon/libxxusb.lib"
+Res Id = 5
+Exclude = False
+Disk Date = 3428770810
+Project Flags = 0
+Window Top = 0
+Window Left = 0
+Window Height = 0
+Window Width = 0
+
+[SCC Options]
+Use global settings = True
+SCC Provider = ""
+SCC Project = ""
+Local Path = ""
+Auxiliary Path = ""
+Perform Same Action For .h File As For .uir File = "Ask"
+Comment = ""
+Username = ""
+Use Default Comment = False
+Use Default Username = False
+Do Not Include PRJ File in Actions = True
+Suppress CVI Error Messages = False
+
+[Compiler Options]
+Default Calling Convention = "cdecl"
+Max Number Of Errors = 10
+Require Prototypes = True
+Require Return Values = True
+Enable Pointer Mismatch Warning = False
+Enable Unreachable Code Warning = False
+Track Include File Dependencies = True
+Prompt For Missing Includes = True
+Stop On First Error File = False
+Bring Up Err Win For Warnings = True
+Show Build Dialog = False
+O Option Compatible With 5.0 = False
+
+[Run Options]
+Stack Size = 250000
+Debugging Level = "Standard"
+Save Changes Before Running = "Ask"
+Break On Library Errors = True
+Break On First Chance Exceptions = False
+Hide Windows = False
+Break At First Statement = False
+
+[Compiler Defines]
+Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
+
+[Command Line Args]
+Command Line Args = ""
+
+[Included Headers]
+Header 0054 = "/c/ICFA/2014/uklon/xxusbdll.h"
+Header 0052 = "/c/ICFA/2014/uklon/usb.h"
+Header 0002 = "/c/MeasurementStudio/cvi/include/ansi_c.h"
+Header 0003 = "/c/MeasurementStudio/cvi/include/ansi/assert.h"
+Header 0004 = "/c/MeasurementStudio/cvi/include/cvidef.h"
+Header 0005 = "/c/MeasurementStudio/cvi/include/cvirte.h"
+Header 0006 = "/c/MeasurementStudio/cvi/include/ansi/ctype.h"
+Header 0007 = "/c/MeasurementStudio/cvi/include/ansi/errno.h"
+Header 0008 = "/c/MeasurementStudio/cvi/include/ansi/float.h"
+Header 0009 = "/c/MeasurementStudio/cvi/include/ansi/limits.h"
+Header 0010 = "/c/MeasurementStudio/cvi/include/ansi/locale.h"
+Header 0011 = "/c/MeasurementStudio/cvi/include/ansi/math.h"
+Header 0012 = "/c/MeasurementStudio/cvi/include/ansi/setjmp.h"
+Header 0013 = "/c/MeasurementStudio/cvi/include/ansi/signal.h"
+Header 0014 = "/c/MeasurementStudio/cvi/include/ansi/stdarg.h"
+Header 0015 = "/c/MeasurementStudio/cvi/include/ansi/stddef.h"
+Header 0016 = "/c/MeasurementStudio/cvi/include/ansi/stdio.h"
+Header 0017 = "/c/MeasurementStudio/cvi/include/ansi/stdlib.h"
+Header 0018 = "/c/MeasurementStudio/cvi/include/ansi/string.h"
+Header 0019 = "/c/MeasurementStudio/cvi/include/ansi/time.h"
+Header 0020 = "/c/MeasurementStudio/cvi/sdk/include/windows.h"
+Header 0021 = "/c/MeasurementStudio/cvi/sdk/include/windef.h"
+Header 0022 = "/c/MeasurementStudio/cvi/sdk/include/winnt.h"
+Header 0023 = "/c/MeasurementStudio/cvi/sdk/include/basetsd.h"
+Header 0024 = "/c/MeasurementStudio/cvi/sdk/include/Guiddef.h"
+Header 0025 = "/c/MeasurementStudio/cvi/sdk/include/pshpack4.h"
+Header 0026 = "/c/MeasurementStudio/cvi/sdk/include/poppack.h"
+Header 0027 = "/c/MeasurementStudio/cvi/sdk/include/pshpack2.h"
+Header 0028 = "/c/MeasurementStudio/cvi/sdk/include/pshpack8.h"
+Header 0029 = "/c/MeasurementStudio/cvi/sdk/include/winbase.h"
+Header 0030 = "/c/MeasurementStudio/cvi/sdk/include/winerror.h"
+Header 0031 = "/c/MeasurementStudio/cvi/sdk/include/wingdi.h"
+Header 0032 = "/c/MeasurementStudio/cvi/sdk/include/pshpack1.h"
+Header 0033 = "/c/MeasurementStudio/cvi/sdk/include/winuser.h"
+Header 0034 = "/c/MeasurementStudio/cvi/sdk/include/tvout.h"
+Header 0035 = "/c/MeasurementStudio/cvi/sdk/include/winnls.h"
+Header 0036 = "/c/MeasurementStudio/cvi/sdk/include/wincon.h"
+Header 0037 = "/c/MeasurementStudio/cvi/sdk/include/winver.h"
+Header 0038 = "/c/MeasurementStudio/cvi/sdk/include/winreg.h"
+Header 0039 = "/c/MeasurementStudio/cvi/sdk/include/winnetwk.h"
+Header 0040 = "/c/MeasurementStudio/cvi/sdk/include/winsvc.h"
+Header 0041 = "/c/MeasurementStudio/cvi/sdk/include/mcx.h"
+Header 0042 = "/c/MeasurementStudio/cvi/sdk/include/imm.h"
+Header 0049 = "/c/MeasurementStudio/cvi/include/formatio.h"
+Header 0050 = "/c/MeasurementStudio/cvi/include/userint.h"
+Header 0051 = "/c/MeasurementStudio/cvi/include/utility.h"
+Header 0053 = "/c/ICFA/2014/uklon/uklon_ui.h"
+Max Header Number = 54
+
+[Create Executable]
+Executable File_Debug = "/c/ICFA/2014/uklon/uklon.exe"
+Target Creation Date_Debug = 3493185581
+Force Creation of Target_Debug = False
+Executable File_Release = "/c/ICFA/2014/uklon/histo.exe"
+Target Creation Date_Release = 3106641546
+Force Creation of Target_Release = True
+Icon File = ""
+Application Title = "PMT histo"
+DLL Exports = "Include File Symbols"
+DLL Import Library Choice = "Gen Lib For Current Mode"
+Use VXIPNP Subdirectories for Import Libraries = False
+Use Dflt Import Lib Base Name = True
+Where to Copy DLL = "Do not copy"
+Add Type Lib To DLL = False
+Include Type Lib Help Links = False
+Type Lib FP File = ""
+Type Lib Guid = ""
+Uses DataSocket = 0
+Uses NIReports = 0
+Uses DCom95 = 0
+Instrument Driver Support Only = False
+
+[External Compiler Support]
+UIR Callbacks File Option = 0
+Using LoadExternalModule = False
+Create Project Symbols File = True
+UIR Callbacks Obj File = ""
+Project Symbols H File = ""
+Project Symbols Obj File = ""
+
+[DLL Debugging Support]
+External Process Path = ""
+
Index: uklon/uklon_ui.uir
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/uklon/uklon_ui.uir
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: uklon/libxxusb.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/uklon/libxxusb.lib
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: uklon/uklon.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/uklon/uklon.exe
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: uklon/uklon.c
===================================================================
--- uklon/uklon.c (nonexistent)
+++ uklon/uklon.c (revision 57)
@@ -0,0 +1,424 @@
+#include <windows.h>
+#include <userint.h>
+#include <utility.h>
+#include <formatio.h>
+#include <ansi_c.h>
+#include "usb.h"
+#include "xxusbdll.h"
+
+#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */
+#include "uklon_ui.h"
+
+
+#define NDIS 21
+#define NSCA 22
+#define NTGG 23
+
+int nc[]={P1_NC0, P1_NC1, P1_NC2, P1_NC3,
+ P1_NC4, P1_NC5, P1_NC6, P1_NC7,
+ P1_NC8, P1_NC9, P1_NC10,P1_NC11,
+ P1_NC12,P1_NC13,P1_NC14,P1_NC15 } ;
+
+
+#define C_I CAMAC_I
+#define C_Z CAMAC_Z
+#define C_C CAMAC_C
+//#define C_write WUSBXX_CAMAC_write
+//#define C_read WUSBXX_CAMAC_read
+#define C_write CAMAC_write
+#define C_read CAMAC_read
+
+//********************************************************************
+usb_dev_handle *udev;
+ int Q;
+ int X;
+static HINSTANCE DLLHandle;
+
+int WUSBXX_load (char* module_path)
+{
+
+
+ if (module_path == NULL)
+ DLLHandle = LoadLibrary("libxxusb.dll");
+ else
+ DLLHandle = LoadLibrary(module_path);
+
+ if (!(xxusb_register_read_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_register_read"))) return __LINE__;
+ if (!(xxusb_stack_read_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_stack_read"))) return __LINE__;
+ if (!(xxusb_stack_write_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_stack_write"))) return __LINE__;
+ if (!(xxusb_stack_execute_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_stack_execute"))) return __LINE__;
+ if (!(xxusb_register_write_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_register_write"))) return __LINE__;
+ if (!(xxusb_usbfifo_read_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_usbfifo_read"))) return __LINE__;
+ if (!(xxusb_bulk_read_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_bulk_read"))) return __LINE__;
+ if (!(xxusb_bulk_write_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_bulk_write"))) return __LINE__;
+ if (!(xxusb_reset_toggle_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_reset_toggle"))) return __LINE__;
+
+ if (!(xxusb_devices_find_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_devices_find"))) return __LINE__;
+ if (!(xxusb_device_close_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_device_close"))) return __LINE__;
+ if (!(xxusb_device_open_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_device_open"))) return __LINE__;
+ if (!(xxusb_flash_program_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_flash_program"))) return __LINE__;
+ if (!(xxusb_flashblock_program_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_flashblock_program"))) return __LINE__;
+ if (!(xxusb_serial_open_Ptr = (void*) GetProcAddress(DLLHandle,"xxusb_serial_open"))) return __LINE__;
+
+ if (!(VME_register_write_Ptr = (void*) GetProcAddress(DLLHandle,"VME_register_write"))) return __LINE__;
+ if (!(VME_register_read_Ptr = (void*) GetProcAddress(DLLHandle,"VME_register_read"))) return __LINE__;
+ if (!(VME_LED_settings_Ptr = (void*) GetProcAddress(DLLHandle,"VME_LED_settings"))) return __LINE__;
+ if (!(VME_DGG_Ptr = (void*) GetProcAddress(DLLHandle,"VME_DGG"))) return __LINE__;
+ if (!(VME_Output_settings_Ptr = (void*) GetProcAddress(DLLHandle,"VME_Output_settings"))) return __LINE__;
+ if (!(VME_read_16_Ptr = (void*) GetProcAddress(DLLHandle,"VME_read_16"))) return __LINE__;
+ if (!(VME_read_32_Ptr = (void*) GetProcAddress(DLLHandle,"VME_read_32"))) return __LINE__;
+ if (!(VME_BLT_read_32_Ptr = (void*) GetProcAddress(DLLHandle,"VME_BLT_read_32"))) return __LINE__;
+ if (!(VME_write_16_Ptr = (void*) GetProcAddress(DLLHandle,"VME_write_16"))) return __LINE__;
+ if (!(VME_write_32_Ptr = (void*) GetProcAddress(DLLHandle,"VME_write_32"))) return __LINE__;
+
+ if (!(CAMAC_DGG_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_DGG"))) return __LINE__;
+ if (!(CAMAC_register_read_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_register_read"))) return __LINE__;
+ if (!(CAMAC_register_write_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_register_write"))) return __LINE__;
+ if (!(CAMAC_LED_settings_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_LED_settings"))) return __LINE__;
+ if (!(CAMAC_Output_settings_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_Output_settings"))) return __LINE__;
+ if (!(CAMAC_read_LAM_mask_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_read_LAM_mask"))) return __LINE__;
+ if (!(CAMAC_write_LAM_mask_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_write_LAM_mask"))) return __LINE__;
+ if (!(CAMAC_write_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_write"))) return __LINE__;
+ if (!(CAMAC_read_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_read"))) return __LINE__;
+ if (!(CAMAC_Z_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_Z"))) return __LINE__;
+ if (!(CAMAC_C_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_C"))) return __LINE__;
+ if (!(CAMAC_I_Ptr = (void*) GetProcAddress(DLLHandle,"CAMAC_I"))) return __LINE__;
+ return 0;
+}
+
+
+void WUSBXX_open (char *serial)
+{
+ if (serial != NULL)
+ udev = xxusb_serial_open(serial);
+ if (!udev)
+ MessagePopup ("Error", "Cannot connect to USB. ! Check the connection!");
+}
+
+void WUSBXX_close (void)
+{
+ if (udev) xxusb_device_close(udev);
+}
+
+int WUSBXX_CAMAC_write( usb_dev_handle *udev, int N, int A, int F, long Data, int *Q, int *X);
+int WUSBXX_CAMAC_read( usb_dev_handle *udev,int N, int A, int F, long *Data, int *Q, int *X);
+int WUSBXX_CAMAC_Z( usb_dev_handle *udev );
+int WUSBXX_CAMAC_C( usb_dev_handle *udev );
+int WUSBXX_CAMAC_I(usb_dev_handle *udev, int inhibit);
+
+int WUSBXX_CAMAC_write( usb_dev_handle *udev,int N, int A, int F, long Data, int *Q, int *X)
+{
+ long intbuf[4];
+ int ret;
+// CAMAC direct write function
+ intbuf[0]=1;
+ intbuf[1]=(long)(F+A*32+N*512 + 0x4000);
+ if ((F > 15) && (F < 24)) // orig controla
+ //if ((F > 15) && (F < 28)) // orig controla
+ {
+ intbuf[0]=3;
+ intbuf[2]=(Data & 0xffff);
+ intbuf[3]=((Data >>16) & 255);
+ ret = xxusb_stack_execute(udev, intbuf);
+ *Q = (intbuf[0] & 1);
+ *X = ((intbuf[0] >> 1) & 1);
+ } else {
+ printf("Error N%d A%d F%d",N,A,F);
+ }
+ return ret;
+}
+
+int WUSBXX_CAMAC_read( usb_dev_handle *udev,int N, int A, int F, long *Data, int *Q, int *X)
+{
+ long intbuf[4];
+ int ret;
+ // CAMAC direct read function
+ intbuf[0]=1;
+ intbuf[1]=(long)(F+A*32+N*512 + 0x4000);
+// intbuf[1]=(long)(F+A*32+N*512);
+ ret = xxusb_stack_execute(udev, intbuf);
+// printf ("ret = %d\n",ret);
+ if (F < 16) // orig controla
+ {
+// *Data = intbuf[0]; //16-bit word
+ *Data = intbuf[0] + (intbuf[1] & 0xFF) * 0x10000; //24-bit word
+ *Q = ((intbuf[1] >> 8) & 1);
+ *X = ((intbuf[1] >> 9) & 1);
+ }
+// else {
+// printf("Error N%d A%d F%d",N,A,F);
+// }
+ return ret;
+}
+
+int WUSBXX_CAMAC_Z(usb_dev_handle *udev)
+{
+ long intbuf[4];
+ int ret;
+// CAMAC Z = N(28) A(8) F(29)
+ intbuf[0]=1;
+ intbuf[1]=(long)(29+8*32+28*512 + 0x4000);
+ ret = xxusb_stack_execute(udev, intbuf);
+ return ret;
+}
+
+int WUSBXX_CAMAC_C(usb_dev_handle *udev)
+{
+ long intbuf[4];
+ int ret;
+// CAMAC C = N(28) A(9) F(29)
+ intbuf[0]=1;
+ intbuf[1]=(long)(29+9*32+28*512 + 0x4000);
+ ret = xxusb_stack_execute( udev, intbuf);
+ return ret;
+}
+
+int WUSBXX_CAMAC_I(usb_dev_handle *udev, int inhibit)
+{
+ long intbuf[4];
+ int ret;
+// Set Inhibit = N(29) A(9) F(24)
+// Clear Inhibit = N(29) A(9) F(26)
+ intbuf[0]=1;
+ if (inhibit) intbuf[1]=(long)(24+9*32+29*512 + 0x4000);
+ else intbuf[1]=(long)(26+9*32+29*512 + 0x4000);
+ ret = xxusb_stack_execute(udev, intbuf);
+ return ret;
+}
+
+int init_CAMAC () {
+
+ long dum;
+ C_Z(udev);
+ C_C(udev);
+ C_I(udev,1);
+
+ C_read ( udev,NTGG, 0 , 9, &dum, &Q,&X); /* init TGG */
+ C_write ( udev,NTGG, 0, 16, 1000, &Q,&X); /* Set preset counting value */
+ C_write ( udev,NTGG, 0 ,17, 0x2, &Q,&X); /* Set Load&Clock Modes */
+ C_write ( udev,NDIS, 0, 16, 0xffff, &Q,&X); /* enable all ch. */
+ C_read ( udev,NDIS, 0, 26, &dum, &Q, &X);
+
+ C_I(udev, 0);
+
+ return 0 ;
+}
+
+//********************************************************************
+
+int plot_graph ( int p1h, int logsc, int data[16] ) {
+ int max, max_I2 ;
+ double plot_data[16], plot_max ;
+ int ch ;
+
+ max = 100 ;
+ for ( ch=0 ; ch<16 ; ch ++ ) {
+ if ( data[ch]>max ) max=data[ch] ;
+ }
+
+ DeleteGraphPlot (p1h, P1_HISTO, -1, VAL_IMMEDIATE_DRAW);
+
+ max = ((max*1.2)/1000)*1000 ;
+ GetCtrlVal (p1h, P1_I2, &max_I2 ) ;
+ if ( max_I2>0 ) max=max_I2 ;
+
+ if ( logsc ) {
+
+ for ( ch=0 ; ch<16 ; ch ++ ) {
+ plot_data[ch] = log10((double)data[ch]) ;
+ plot_max = log10((double)max) ;
+ }
+
+ SetAxisScalingMode (p1h, P1_HISTO, VAL_LEFT_YAXIS, VAL_MANUAL, 0.0, plot_max);
+ PlotY (p1h, P1_HISTO, plot_data, 16, VAL_DOUBLE, VAL_VERTICAL_BAR,
+ VAL_NO_POINT, VAL_SOLID, 1, VAL_DK_BLUE);
+
+
+ } else {
+ SetAxisScalingMode (p1h, P1_HISTO, VAL_LEFT_YAXIS, VAL_MANUAL, 0.0, max);
+ PlotY (p1h, P1_HISTO, data, 16, VAL_INTEGER, VAL_VERTICAL_BAR,
+ VAL_NO_POINT, VAL_SOLID, 1, VAL_DK_BLUE);
+
+ for ( ch=0; ch<16; ch++ ) {
+ SetCtrlVal (p1h, nc[ch], data[ch] ) ;
+ }
+ }
+
+
+ return 0 ;
+}
+
+
+//********************************************************************
+//********************************************************************
+
+int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
+ LPSTR lpszCmdLine, int nCmdShow)
+{
+ int rph, rID, p1h, p2h ;
+ int data[16], sum, max, max_I2=0 ;
+ long val, dum;
+ double plot_data[16], splot_data[10][32], plot_max ;
+ int thr_set, time_set;
+ int ch, i, j,ii;
+
+ FILE *fp ;
+ char filename[256] ;
+ int logscale ;
+ int os[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1} ;
+
+ logscale = 0 ;
+
+ if (InitCVIRTE (hInstance, 0, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */
+ return -1; /* out of memory */
+
+ for ( i=0; i<16; data[i++]=0 ) ;
+
+
+
+ dum=WUSBXX_load (NULL);
+ if (dum) MessagePopup ("Error", "Cannot load dll!");
+ WUSBXX_open ("CC0130");
+
+ //ii=80000000/i-40;
+ //if (ii<72) ii=72;
+ //CAMAC_DGG(udev,0,7,0,ii,40,0,0);
+ //CAMAC_DGG(udev,1,1,1,12,8,0,0);
+
+
+ init_CAMAC();
+
+ p1h = LoadPanel (0, "uklon_ui.uir", P1);
+// p2h = LoadPanel (0, "uklon_ui.uir", P2);
+ DisplayPanel (p1h);
+// DisplayPanel (p2h);
+
+ GetUserEvent (1, &rph, &rID);
+
+
+ while ((rID!=P1_QUIT)||(rph!=p1h))
+ {
+ if ( rph == p1h ) {
+ if ( rID==P1_START ) {
+ GetCtrlVal (p1h, P1_THR, &thr_set ) ; /* read desired thr. */
+ C_write ( udev, NDIS, 0, 17, thr_set, &Q, &X); /* set the threshold */
+ C_write ( udev, NDIS, 1, 17, 0, &Q,&X); /* */
+
+ C_read ( udev, NSCA,0,9,&dum, &Q,&X);
+
+ GetCtrlVal (p1h, P1_TIME, &time_set ) ; /* read time (ms) */
+
+ SetCtrlAttribute (p1h, P1_TIMER, ATTR_ENABLED, 0);
+ C_write ( udev, NTGG, 0, 16, time_set, &Q,&X);
+ C_read ( udev, NTGG, 0, 15, &dum, &Q,&X);
+
+ SetCtrlVal (p1h, P1_LEDON,1);
+ SetCtrlAttribute (p1h, P1_TIMER, ATTR_INTERVAL,time_set*0.001 );
+ SetCtrlAttribute (p1h, P1_TIMER, ATTR_ENABLED, 1);
+ ResetTimer (p1h, P1_TIMER);
+ Delay (0.1+(time_set/1000.));
+ }
+
+ if ( rID==P1_COUNT ) {
+ sum = 0 ;
+ max = 100 ;
+ C_I(udev, 1);
+ for ( ch=0 ; ch<16 ; ch ++ ) {
+ Delay(0.01);
+ C_read ( udev, NSCA, ch, 0, &val, &Q,&X);
+ C_read ( udev, NSCA, ch, 0, &val, &Q,&X);
+ data[ch]=val;
+
+ if (data[ch] > 0) data[ch]--;
+ // if (data[ch] && 0x80000000) {
+ // data[ch] &= 0x00FFFFFF;
+
+ //}
+
+ sum += data[ch] ;
+ }
+ C_I(udev, 0);
+ SetCtrlVal (p1h, P1_I1, sum ) ;
+ plot_graph ( p1h, logscale, data ) ;
+ }
+ if ( rID==P1_INIT ) {
+ init_CAMAC ( ) ;
+ }
+
+ if ( rID==P1_SAVE ) {
+ if ( ( fp = fopen ( "scaler.txt", "w+" ) ) == NULL ) printf ( "ERROR" ) ;
+ for ( ch=0; ch<16 ; ch++ ) {
+ fprintf ( fp, "%d\t%d\n", ch, data[ch] ) ;
+ }
+ fclose ( fp ) ;
+ }
+
+ if ( rID==P1_APPEND ) {
+ GetCtrlVal (p1h, P1_APFILE, filename);
+
+ if ( ( fp = fopen ( filename, "a" ) ) == NULL ) printf ( "ERROR" ) ;
+ for ( ch=0; ch<16 ; ch++ ) {
+ fprintf ( fp, "%d\t", data[ch] ) ;
+ }
+ fprintf ( fp, "\n" ) ;
+ fclose ( fp ) ;
+ }
+
+ if ( rID==P1_REPLOT ) {
+ plot_graph ( p1h, logscale, data ) ;
+ }
+
+
+ if ( rID == P1_PRINT ) {
+ SetCtrlVal (p1h, P1_L1,1);
+ PrintPanel (p1h, "", 1, VAL_VISIBLE_AREA, 1);
+ SetCtrlVal (p1h, P1_L1,0);
+ }
+
+
+ if ( rID == P1_LOG_SCALE ) {
+ GetCtrlVal (p1h, P1_LOG_SCALE, &logscale) ;
+
+ plot_graph ( p1h, logscale, data ) ;
+ }
+ }
+
+ if ( rph == p2h ) {
+ switch ( rID ) {
+ case P2_OFS1: GetCtrlVal (p2h, P2_OFS1, &os[0] ) ; i=0 ; break ;
+ case P2_OFS2: GetCtrlVal (p2h, P2_OFS2, &os[1] ) ; i=1 ; break ;
+ case P2_OFS3: GetCtrlVal (p2h, P2_OFS3, &os[2] ) ; i=2 ; break ;
+ case P2_OFS4: GetCtrlVal (p2h, P2_OFS4, &os[3] ) ; i=3 ; break ;
+ case P2_OFS5: GetCtrlVal (p2h, P2_OFS5, &os[4] ) ; i=4 ; break ;
+ case P2_OFS6: GetCtrlVal (p2h, P2_OFS6, &os[5] ) ; i=5 ; break ;
+ case P2_OFS7: GetCtrlVal (p2h, P2_OFS7, &os[6] ) ; i=6 ; break ;
+ case P2_OFS8: GetCtrlVal (p2h, P2_OFS8, &os[7] ) ; i=7 ; break ;
+ case P2_OFS9: GetCtrlVal (p2h, P2_OFS9, &os[8] ) ; i=8 ; break ;
+ case P2_OFS10: GetCtrlVal (p2h, P2_OFS10, &os[9] ) ; i=9 ; break ;
+ }
+
+
+ }
+
+ GetUserEvent (1, &rph, &rID);
+ }
+
+
+ WUSBXX_close ();
+ //lc8901a_close (hdev);
+ return 0;
+}
+
+int CVICALLBACK TimerCB (int panel, int control, int event,
+ void *callbackData, int eventData1, int eventData2)
+{
+ switch (event)
+ {
+ case EVENT_TIMER_TICK:
+
+ SetCtrlVal (panel, P1_LEDON,0);
+ SetCtrlAttribute (panel, P1_TIMER, ATTR_ENABLED, 0);
+ break;
+ }
+ return 0;
+}
Index: uklon/libxxusb.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/uklon/libxxusb.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: uklon/uklon_ui.h
===================================================================
--- uklon/uklon_ui.h (nonexistent)
+++ uklon/uklon_ui.h (revision 57)
@@ -0,0 +1,79 @@
+/**************************************************************************/
+/* LabWindows/CVI User Interface Resource (UIR) Include File */
+/* Copyright (c) National Instruments 2014. All Rights Reserved. */
+/* */
+/* WARNING: Do not add to, delete from, or otherwise modify the contents */
+/* of this include file. */
+/**************************************************************************/
+
+#include <userint.h>
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+ /* Panels and Controls: */
+
+#define P1 1
+#define P1_SAVE 2
+#define P1_TIME 3
+#define P1_THR 4
+#define P1_I2 5
+#define P1_NC9 6
+#define P1_NC15 7
+#define P1_NC14 8
+#define P1_NC13 9
+#define P1_NC12 10
+#define P1_NC11 11
+#define P1_NC10 12
+#define P1_NC8 13
+#define P1_NC7 14
+#define P1_NC6 15
+#define P1_NC1 16
+#define P1_NC2 17
+#define P1_NC3 18
+#define P1_NC4 19
+#define P1_NC5 20
+#define P1_NC0 21
+#define P1_I1 22
+#define P1_HISTO 23
+#define P1_L1 24
+#define P1_LEDON 25
+#define P1_APFILE 26
+#define P1_LOG_SCALE 27
+#define P1_QUIT 28
+#define P1_PRINT 29
+#define P1_APPEND 30
+#define P1_REPLOT 31
+#define P1_COUNT 32
+#define P1_START 33
+#define P1_INIT 34
+#define P1_TIMER 35 /* callback function: TimerCB */
+
+#define P2 2
+#define P2_SUMMARY 2
+#define P2_OFS10 3
+#define P2_OFS9 4
+#define P2_OFS8 5
+#define P2_OFS7 6
+#define P2_OFS6 7
+#define P2_OFS5 8
+#define P2_OFS4 9
+#define P2_OFS3 10
+#define P2_OFS2 11
+#define P2_OFS1 12
+
+
+ /* Menu Bars, Menus, and Menu Items: */
+
+ /* (no menu bars in the resource file) */
+
+
+ /* Callback Prototypes: */
+
+int CVICALLBACK TimerCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);
+
+
+#ifdef __cplusplus
+ }
+#endif
Index: uklon/xxusbdll.h
===================================================================
--- uklon/xxusbdll.h (nonexistent)
+++ uklon/xxusbdll.h (revision 57)
@@ -0,0 +1,112 @@
+#ifndef _XXUSB_DLL_H
+#define _XXUSB_DLL_H
+
+typedef unsigned short ADDRESS_MODIFIER;
+
+#define Std_Sup_Data (ADDRESS_MODIFIER)0x3d
+#define Std_Sup_Prog (ADDRESS_MODIFIER)0x3e
+#define Std_NoPriv_Data (ADDRESS_MODIFIER)0x39
+#define Std_NoPriv_Prog (ADDRESS_MODIFIER)0x3a
+
+#define Short_Sup (ADDRESS_MODIFIER)0x2d
+#define Short_NoPriv (ADDRESS_MODIFIER)0x29
+
+#define Ext_Sup_Data (ADDRESS_MODIFIER)0x0d
+#define Ext_Sup_Prog (ADDRESS_MODIFIER)0x0e
+#define Ext_NoPriv_Data (ADDRESS_MODIFIER)0x09
+#define Ext_NoPriv_Prog (ADDRESS_MODIFIER)0x0a
+
+struct xxusb_device_typ
+{
+ struct usb_device *usbdev;
+ char SerialString[7];
+};
+
+
+typedef struct xxusb_device_typ xxusb_device_type;
+
+#define xxusb_register_read (*xxusb_register_read_Ptr)
+#define xxusb_stack_read (*xxusb_stack_read_Ptr)
+#define xxusb_stack_write (*xxusb_stack_write_Ptr)
+#define xxusb_stack_execute (*xxusb_stack_execute_Ptr)
+#define xxusb_register_write (*xxusb_register_write_Ptr)
+#define xxusb_usbfifo_read (*xxusb_usbfifo_read_Ptr)
+#define xxusb_bulk_read (*xxusb_bulk_read_Ptr)
+#define xxusb_bulk_write (*xxusb_bulk_write_Ptr)
+#define xxusb_reset_toggle (*xxusb_reset_toggle_Ptr)
+
+#define xxusb_devices_find (*xxusb_devices_find_Ptr)
+#define xxusb_device_close (*xxusb_device_close_Ptr)
+#define xxusb_device_open (*xxusb_device_open_Ptr)
+#define xxusb_flash_program (*xxusb_flash_program_Ptr)
+#define xxusb_flashblock_program (*xxusb_flashblock_program_Ptr)
+#define xxusb_serial_open (*xxusb_serial_open_Ptr)
+
+#define VME_register_write (*VME_register_write_Ptr)
+#define VME_register_read (*VME_register_read_Ptr)
+#define VME_LED_settings (*VME_LED_settings_Ptr)
+#define VME_DGG (*VME_DGG_Ptr)
+#define VME_Output_settings (*VME_Output_settings_Ptr)
+#define VME_read_16 (*VME_read_16_Ptr)
+#define VME_read_32 (*VME_read_32_Ptr)
+#define VME_BLT_read_32 (*VME_BLT_read_32_Ptr)
+#define VME_write_16 (*VME_write_16_Ptr)
+#define VME_write_32 (*VME_write_32_Ptr)
+
+#define CAMAC_DGG (*CAMAC_DGG_Ptr)
+#define CAMAC_register_read (*CAMAC_register_read_Ptr)
+#define CAMAC_register_write (*CAMAC_register_write_Ptr)
+#define CAMAC_LED_settings (*CAMAC_LED_settings_Ptr)
+#define CAMAC_Output_settings (*CAMAC_Output_settings_Ptr)
+#define CAMAC_read_LAM_mask (*CAMAC_read_LAM_mask_Ptr)
+#define CAMAC_write_LAM_mask (*CAMAC_write_LAM_mask_Ptr)
+#define CAMAC_write (*CAMAC_write_Ptr)
+#define CAMAC_read (*CAMAC_read_Ptr)
+#define CAMAC_Z (*CAMAC_Z_Ptr)
+#define CAMAC_C (*CAMAC_C_Ptr)
+#define CAMAC_I (*CAMAC_I_Ptr)
+
+short __stdcall xxusb_register_read(usb_dev_handle *hDev, short RegAddr, long *RegData);
+short __stdcall xxusb_stack_read(usb_dev_handle *hDev, short StackAddr, long *StackData);
+short __stdcall xxusb_stack_write(usb_dev_handle *hDev, short StackAddr, long *StackData);
+short __stdcall xxusb_stack_execute(usb_dev_handle *hDev, long *StackData);
+short __stdcall xxusb_register_write(usb_dev_handle *hDev, short RegAddr, long RegData);
+short __stdcall xxusb_usbfifo_read(usb_dev_handle *hDev, long *DataBuffer, short lDataLen, int timeout);
+short __stdcall xxusb_bulk_read(usb_dev_handle *hDev, char *DataBuffer, short lDataLen, int timeout);
+short __stdcall xxusb_bulk_write(usb_dev_handle *hDev, char *DataBuffer, short lDataLen, int timeout);
+short __stdcall xxusb_reset_toggle(usb_dev_handle *hDev);
+
+short __stdcall xxusb_devices_find(xxusb_device_type *xxusbDev);
+short __stdcall xxusb_device_close(usb_dev_handle *hDev);
+usb_dev_handle* __stdcall xxusb_device_open(struct usb_device *dev);
+short __stdcall xxusb_flash_program(usb_dev_handle *hDev, char *config, short nsect);
+short __stdcall xxusb_flashblock_program(usb_dev_handle *hDev, UCHAR *config);
+usb_dev_handle* __stdcall xxusb_serial_open(char *SerialString);
+
+short __stdcall VME_register_write(usb_dev_handle *hdev, long VME_Address, long Data);
+short __stdcall VME_register_read(usb_dev_handle *hdev, long VME_Address, long *Data);
+short __stdcall VME_LED_settings(usb_dev_handle *hdev, int LED, int code, int invert, int latch);
+short __stdcall VME_DGG(usb_dev_handle *hdev, unsigned short channel, unsigned short trigger,unsigned short output, long delay, unsigned short gate, unsigned short invert, unsigned short latch);
+short __stdcall VME_Output_settings(usb_dev_handle *hdev, int Channel, int code, int invert, int latch);
+
+short __stdcall VME_read_16(usb_dev_handle *hdev,short Address_Modifier, long VME_Address, long *Data);
+short __stdcall VME_read_32(usb_dev_handle *hdev, short Address_Modifier, long VME_Address, long *Data);
+short __stdcall VME_BLT_read_32(usb_dev_handle *hdev, short Address_Modifier, int count, long VME_Address, long Data[]);
+short __stdcall VME_write_16(usb_dev_handle *hdev, short Address_Modifier, long VME_Address, long Data);
+short __stdcall VME_write_32(usb_dev_handle *hdev, short Address_Modifier, long VME_Address, long Data);
+
+short __stdcall CAMAC_DGG(usb_dev_handle *hdev, short channel, short trigger, short output, int delay, int gate, short invert, short latch);
+short __stdcall CAMAC_register_read(usb_dev_handle *hdev, int A, long *Data);
+short __stdcall CAMAC_register_write(usb_dev_handle *hdev, int A, long Data);
+short __stdcall CAMAC_LED_settings(usb_dev_handle *hdev, int LED, int code, int invert, int latch);
+short __stdcall CAMAC_Output_settings(usb_dev_handle *hdev, int Channel, int code, int invert, int latch);
+short __stdcall CAMAC_read_LAM_mask(usb_dev_handle *hdev, long *Data);
+short __stdcall CAMAC_write_LAM_mask(usb_dev_handle *hdev, long Data);
+
+short __stdcall CAMAC_write(usb_dev_handle *hdev, int N, int A, int F, long Data, int *Q, int *X);
+short __stdcall CAMAC_read(usb_dev_handle *hdev, int N, int A, int F, long *Data, int *Q, int *X);
+short __stdcall CAMAC_Z(usb_dev_handle *hdev);
+short __stdcall CAMAC_C(usb_dev_handle *hdev);
+short __stdcall CAMAC_I(usb_dev_handle *hdev, int inhibit);
+
+#endif