DMCCOMH.docx

上传人:b****7 文档编号:11297126 上传时间:2023-02-26 格式:DOCX 页数:41 大小:23.90KB
下载 相关 举报
DMCCOMH.docx_第1页
第1页 / 共41页
DMCCOMH.docx_第2页
第2页 / 共41页
DMCCOMH.docx_第3页
第3页 / 共41页
DMCCOMH.docx_第4页
第4页 / 共41页
DMCCOMH.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

DMCCOMH.docx

《DMCCOMH.docx》由会员分享,可在线阅读,更多相关《DMCCOMH.docx(41页珍藏版)》请在冰豆网上搜索。

DMCCOMH.docx

DMCCOMH

//Note:

IncludethisfileaferWINDOWS.H

//WINDOWS.Hmustbeincludedinyourproject

#ifndefDMCCOM_H

#defineDMCCOM_H

#ifdef__cplusplus

extern"C"{

#endif

//Commondatatypes(seeWINDOWS.H)

#ifndefFAR

#defineFAR

#endif

#ifndefNEAR

#defineNEAR

#endif

typedefshortintSHORT;

typedefshortintNEAR*PSHORT;

typedefshortintFAR*LPSHORT;

typedefunsignedshortintUSHORT;

typedefunsignedshortintNEAR*PUSHORT;

typedefunsignedshortintFAR*LPUSHORT;

#ifdefined(_WIN32)||defined(__WIN32__)

typedeflongintLONG;

#endif

typedeflongintNEAR*PLONG;

typedeflongintFAR*LPLONG;

typedefunsignedlongintULONG;

typedefunsignedlongintNEAR*PULONG;

typedefunsignedlongintFAR*LPULONG;

typedefcharCHAR;

typedefcharNEAR*PCHAR;

typedefcharFAR*LPCHAR;

typedefunsignedcharUCHAR;

typedefunsignedcharNEAR*PUCHAR;

typedefunsignedcharFAR*LPUCHAR;

typedefunsignedcharBYTE;

typedefunsignedcharNEAR*PBYTE;

typedefunsignedcharFAR*LPBYTE;

typedefvoidNEAR*PVOID;

typedefvoidFAR*LPVOID;

typedefcharFAR*PSZ;

#ifdefined(_WIN32)||defined(__WIN32__)

#defineGALILCALL__stdcall

#else

#defineGALILCALLFARPASCAL__export

#endif

#if!

defined(_WIN32)&&!

defined(__WIN32__)

#ifndefTEXT

#defineTEXT

#endif

#endif

//Controllermodelconstants

#defineDMC400TEXT("DMC-400")

#defineDMC600TEXT("DMC-600")

#defineDMC700TEXT("DMC-700")

#defineDMC1000TEXT("DMC-1000")

#defineDMC1200TEXT("DMC-1200")

#defineDMC1300TEXT("DMC-1300")

#defineDMC1410TEXT("DMC-1410")

#defineDMC1411TEXT("DMC-1411")

#defineDMC1412TEXT("DMC-1412")

#defineDMC1413TEXT("DMC-1413")

#defineDMC1414TEXT("DMC-1414")

#defineDMC1415TEXT("DMC-1415")

#defineDMC1425TEXT("DMC-1425")

#defineDMC3425TEXT("DMC-3425")

#defineDMC1416TEXT("DMC-1416")

#defineDMC1417TEXT("DMC-14x7")

#defineDMC1500TEXT("DMC-1500")

#defineDMC1600TEXT("DMC-1600")

#defineDMC1700TEXT("DMC-1700")

#defineDMC1800TEXT("DMC-1800")

#defineDMC1802TEXT("DMC-1802")

#defineDMC2000TEXT("DMC-2000")

#defineDMC2100TEXT("DMC-2100")

#defineDMC2200TEXT("DMC-2200")

#defineDMC90064TEXT("IOC-90064")

#defineMODEL_UNKNOWN0

#defineMODEL_600600

#defineMODEL_700700

#defineMODEL_10001000

#defineMODEL_12001200

#defineMODEL_13001300

#defineMODEL_14101410

#defineMODEL_14111411

#defineMODEL_14121412

#defineMODEL_14131413

#defineMODEL_14141414

#defineMODEL_14151415

#defineMODEL_14161416

#defineMODEL_14171417

#defineMODEL_15001500

#defineMODEL_16001600

#defineMODEL_17001700

#defineMODEL_18001800

#defineMODEL_18021802

#defineMODEL_20002000

#defineMODEL_21002100

#defineMODEL_22002200

#defineMODEL_900649064

#defineMODEL_USERDEFINED9999

//Generaldefines

#defineCOMMAND_SIZE80

#defineMAX_CONTROLLERS64

//Userdefinedmessagetonotifyapplicationprogramofaninterrupt

//StatusbytefromthecontrollerispassedtouserviathewParamargument

#defineWM_DMCINTERRUPT(WM_USER+128)

#defineWM_MOTIONCOMPLETE(WM_USER+129)

#defineWM_MESSAGEPENDING(WM_USER+130)

//Errors

#defineDMCNOERROR0

#defineDMCWARNING_MONITOR1

#defineDMCERROR_TIMEOUT-1

#defineDMCERROR_COMMAND-2

#defineDMCERROR_CONTROLLER-3

#defineDMCERROR_FILE-4

#defineDMCERROR_DRIVER-5

#defineDMCERROR_HANDLE-6

#defineDMCERROR_HMODULE-7

#defineDMCERROR_MEMORY-8

#defineDMCERROR_BUFFERFULL-9

#defineDMCERROR_RESPONSEDATA-10

#defineDMCERROR_DMA-11

#defineDMCERROR_ARGUMENT-12

#defineDMCERROR_DATARECORD-13

#defineDMCERROR_DOWNLOAD-14

#defineDMCERROR_FIRMWARE-15

#defineDMCERROR_CONVERSION-16

#defineDMCERROR_RESOURCE-17

#defineDMCERROR_REGISTRY-18

#defineDMCERROR_BUSY-19

#defineDMCERROR_DEVICE_DISCONNECTED-20

#defineDMCERROR_TIMEING_ERROR-21

#defineDMCERROR_WRITEBUFFER_TOO_LARGE-22

//Datatypes

typedefLONGHANDLEDMC;

typedefHANDLEDMCFAR*PHANDLEDMC;

//Constantvalues

//Constantvaluesfordatarecordaccess

#include"dmcdrc.h"

//Constantvaluesforregistrystructures

enumDMCControllerTypes

{

ControllerTypeISABus=0,//ISAorPC-104buscontroller

ControllerTypeSerial=1,//RS-232serialcontroller

ControllerTypePCIBus=2,//PCIorCompactPCIbuscontroller

ControllerTypeUSB=3,//Universalserialbuscontroller

ControllerTypeEthernet=4,//Ethernetcontroller

ControllerTypeVMEBus=5//VMEbuscontroller

};

enumDMCDeviceDrivers

{

DeviceDriverWinRT=0,//UseWinRTdevicedriver

DeviceDriverGalil=1//UseGalildevicedriver

};

enumDMCSerialHandshake

{

SerialHandshakeHardware=0,//Hardwarehandshake(RTS/CTS)

SerialHandshakeSoftware=1,//Softwarehandshake(XOn/XOff)

SerialHandshakeBoth=2//RESERVEDFORGALILUSEONLY

};

enumDMCBusIOStyle

{

DMC600IOStyle=0,//ForDMC-600,DMC-1400

DMC1000IOStyle=1,//ForDMC-1000,DMC-1200,DMC-1700,DMC-1802

DMC1600IOStyle=2//ForDMC-1600,DMC-1800

};

enumDMCInterruptStyle

{

DMC1000InterruptStyle=0,//ForDMC-1000

DMC1400InterruptStyle=1,//ForDMC-1400

DMC1700InterruptStyle=2,//ForDMC-1200,DMC-1700,DMC-1802

DMC1600InterruptStyle=3//ForDMC-1600,DMC-1800

};

enumDMCDataRecordAccess

{

DataRecordAccessNone=0,//Nodatarecordaccesscapabilityordatarecordaccessisoff

DataRecordAccessDMA=1,//UseDMAfordatarecordaccess

DataRecordAccessFIFO=2,//UseFIFOfordatarecordaccess

DataRecordAccessBoth=3,//RESERVEDFORGALILUSEONLY

DataRecordAccessQR=4//RESERVEDFORGALILUSEONLY

};

enumDMCEthernetProtocol

{

EthernetProtocolTCP=0,

EthernetProtocolUDP=1

};

enumDMCVMEBusInterface

{

VMEBusInterfaceBit3=0,

VMEBusInterfaceVMIC=1

};

//Ethernetflags

#defineETH_NO_MULTICAST0x0001//Donotopenamulti-castsession

#defineETH_UNSOLICITEDMESSAGES0x0002//Openanunsolicitedmessagesessiononsecondhandle

#defineETH_UNSOLICITEDMESSAGES_SAMEHANDLE0x0004//Openanunsolicitedmessagesessiononsamehandle

//Structures

//Structureusedtoadd/change/deleteregistryinformation

//Old-stylestructure

typedefstruct_GALILREGISTRY

{

#ifdefUNDER_CE

TCHARszModel[32];//Controllermodelstring

#else

CHARszModel[16];//Controllermodelstring

#endif

USHORTusDeviceNumber;//Devicenumber-forGaliluseonly

USHORTfDeviceDriver;//UseGalilorWinRTdevicedriver

ULONGulTimeout;//Time-outinmilliseconds

ULONGulDelay;//Delayinmicrosceonds

USHORTfControllerType;//Controllertype(ISAbus,PCIbus,serial,etc.)

USHORTusCommPort;//Serialcommunicationsport

ULONGulCommSpeed;//SerialCommunicationsspeed

USHORTfHandshake;//Serialcommunicationshandshake

USHORTusAddress;//Busaddress

USHORTusInterrupt;//Interrupt

USHORTfDataRecordAccess;//Datarecordaccesstype

USHORTusDMAChannel;//DMAchannel

USHORTusDataRecordSize;//Datarecordsize(fordatarecordaccess)

USHORTusRefreshRate;//Datarecordrefreshratein2^usRefreshRatems

USHORTusSerialNumber;//ControllerSerialNumber

#ifdefUNDER_CE

TCHARszPNPHardwareKey[128];//HardwareregistrykeyforPNPcontrollers-forGaliluseonly

#else

CHARszPNPHardwareKey[64];//HardwareregistrykeyforPNPcontrollers-forGaliluseonly

#endif

}GALILREGISTRY,FAR*PGALILREGISTRY;

//Hardwareinfo-ISAandPCIbuscommunications

typedefstruct_BUSINFO

{

USHORTusDeviceNumber;//Devicenumber-forGaliluseonly

USHORTfDeviceDriver;//UseGalilorWinRTdevicedriver

USHORTfIOStyle;//Styleofaddressingstatusregisteroncontroller

USHORTusAddress;//I/Oportaddress

USHORTfInterruptStyle;//Styleofhandlinginterruptsfromcontroller

USHORTusInterrupt;//Interrupt

USHORTfDataRecordAccess;//Datarecordaccesstype

USHORTusDMAChannel;//DMAchannel

USHORTusDataRecordSize;//Datarecordsize(fordatarecordaccess)

USHORTusRefreshRate;//Datarecordrefreshratein2^usRefreshRatems

USHORTbPNP;//Plugandplay?

(TRUE|FALSE)

USHORTusAddress2;//AlternateI/OportaddressforPCIcontrollers

USHORTusReserved1;//Reservedforfutureuse

#ifdefUNDER_CE

TCHARszPNPHardwareKey[128];//HardwareregistrykeyforPNPcontrollers-forGaliluseonly

#else

CHARszPNPHardwareKey[64];//HardwareregistrykeyforPNPcontrollers-forGaliluseonly

#endif

}BUSINFO;

//Hardwareinfo-serialcommunications

typedefstruct_SERIALINFO

{

USHORTusCommPort;//Communicationsport

ULONGulCommSpeed;//Communicationsspeed

USHORTfHandshake;//Communicationshandshake

USHORTusDeviceNumber;//Devicenumber-forGaliluseonly

USHORTusReserved1;//Reservedforfutureuse

}SERIALINFO;

//Hardwareinfo-serialcommunications

typedefstruct_WINSOCKINFO

{

ULONGulPort;//Hostportnumber-forGaliluseonly

#ifdefUNDER_CE

TCHARszIPAddress[64];//Hostnamestring

#else

CHARszIPAddress[32];//Hostnamestring

#endif

USHORTfProtocol;//UDPorTCP

ULONGfFlags;//Controlsautoopeningofmulti-castandunsolicitedmessagesessions

ULONGulReserved1;//Reservedforfutureuse

ULONGulReserved2;//Reservedforfutureuse

ULONGulReserved3;//Reservedforfutureuse

}WINSOCKINFO;

//Hardwareinfo-ISAandPCIbuscommunications

typedefstruct_VMEBUSINFO

{

USHORTusDeviceNumber;//Devicenumber-forGaliluseonly

USHORTfDeviceDriver;//UseGalilorWinRTdevicedriver

USHORTfInterface;//WhichVMEtoPCinterface

ULONGulMemoryAddress;//PhysicalmemoryaddressofVMEinterfacecard

ULONGulMemoryOffset;//OffsetinmemorytoGalilcontroller

USHORTusAddress;//I/OportaddressforVMEinterfacecard

USHORTfIOStyle;//Styleofaddressingstatusregisteroncontroller

USHORTfInterruptStyle;//Styleofhandlinginterruptsfromcontroller

USHORTus

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1