⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copy of runtime.cpp

📁 美国Delta Tau公司PMAC多轴运动控制卡的VC++示例程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*************************************************************************
  File: runtime.cpp - Dynamic link functions.

HISTORY

  02/02/1996  DES created.

**************************************************************************/

//#ifdef _MSC
  #include "stdafx.h"
//#endif

#pragma hdrstop

#define NO_EXTERN
#include "runtime.h"
#undef  NO_EXTERN

//************************************************************************
// Function instants for runtime linking
//************************************************************************
HINSTANCE hPmacLib = NULL;
BOOL DO_NC_FUNCTIONS = true;// TRUE by default

//----------------------------------------------------------------------------
void DoNCFunctions(BOOL yesno)
{
  DO_NC_FUNCTIONS = yesno;
}
//----------------------------------------------------------------------------
FARPROC GetFuncAddress(HMODULE hModule,LPCSTR lpProcName)
{
 char tmp[256];
 FARPROC adr;

 adr = GetProcAddress(hModule,lpProcName);
 if (adr == NULL)
   {
    sprintf(tmp,"Error in loading library function: %s",lpProcName);
    MessageBox(NULL,tmp,"",MB_ICONSTOP | MB_OK);
   }
 return adr;
}

//----------------------------------------------------------------------------
void CloseRuntimeLink()
{
 if (hPmacLib != NULL)
   {
    FreeLibrary(hPmacLib);
    hPmacLib = NULL;
   }
}

// Macro to make things consistant and easier
#define DLL_LINK(var,type,name)  var=(type)GetFuncAddress(hPmacLib,name); \
                                 if (var==NULL) goto load_err

//----------------------------------------------------------------------------
HINSTANCE OpenRuntimeLink()
{
  // Get handle to PComm32.DLL
  hPmacLib = LoadLibrary(DRIVERNAME);

  if (hPmacLib == NULL)
  {
    MessageBox(NULL,"Error in loading PMAC library.","PMAC",MB_ICONSTOP | MB_OK | MB_TOPMOST);
    return NULL;
  }
  else
  {
// Get all COMM the function handles required
DLL_LINK(DeviceDPRPCITest              ,PMACDPRPCITEST           ,"PmacDPRPCITest");
DLL_LINK(DeviceOpen                    ,OPENPMACDEVICE           ,"OpenPmacDevice");
DLL_LINK(DeviceSelect                  ,SELECTPMACDEVICE         ,"PmacSelect");
DLL_LINK(DeviceNumberOfDevices         ,NUMBEROFDEVICES          ,"DrvNumberOfDevices");
DLL_LINK(DeviceClose                   ,CLOSEPMACDEVICE          ,"ClosePmacDevice");
DLL_LINK(DeviceSetLanguage             ,PMACSETLANGUAGE          ,"PmacSetLanguage");
DLL_LINK(DeviceLMH                     ,PMACLMH                  ,"PmacLMH");
DLL_LINK(DeviceSetWindow               ,PMACSETWINDOW            ,"PmacSetWindow");
DLL_LINK(DeviceSetLanguageModule       ,SETLANGUAGEMODULE        ,"SetLanguageModule");
DLL_LINK(DeviceConfigure               ,CONFIGURE                ,"PmacConfigure");
DLL_LINK(DeviceLoadString              ,SZLOADSTRINGA            ,"szLoadStringA");
DLL_LINK(DeviceReadReady               ,READREADY                ,"PmacReadReady");
DLL_LINK(DeviceSendLine                ,SENDLINEA                ,"PmacSendLineA");
DLL_LINK(DeviceGetLine                 ,GETLINEA                 ,"PmacGetLineA");
DLL_LINK(DeviceGetLineEx               ,GETLINEEXA               ,"PmacGetLineExA");
DLL_LINK(DeviceSendChar                ,SENDCHARA                ,"PmacSendCharA");
DLL_LINK(DeviceGetResponse             ,GETRESPONSEA             ,"PmacGetResponseA");
DLL_LINK(DeviceGetResponseEx           ,GETRESPONSEEXA           ,"PmacGetResponseExA");
DLL_LINK(DeviceGetControlResponse      ,GETCONTROLRESPONSEA      ,"PmacGetControlResponseA");
DLL_LINK(DeviceGetControlResponseEx    ,GETCONTROLRESPONSEEXA    ,"PmacGetControlResponseExA");
DLL_LINK(DeviceGetAsciiComm            ,GETASCIICOMM             ,"PmacGetAsciiComm");
DLL_LINK(DeviceSetAsciiComm            ,SETASCIICOMM             ,"PmacSetAsciiComm");
DLL_LINK(DeviceGetPmacLocation         ,GETLOCATION              ,"PmacGetLocation");
DLL_LINK(DeviceGetPmacEnumeration      ,GETENUMERATION           ,"PmacGetEnumeration");
DLL_LINK(DeviceGetError                ,GETERROR                 ,"PmacGetError");
DLL_LINK(DeviceDownload                ,DOWNLOADA                ,"PmacDownloadA");
DLL_LINK(DeviceDownloadThread          ,DOWNLOADTHREADA          ,"PmacThreadDownloadA");
DLL_LINK(DeviceDownloadProgress        ,DOWNLOAD_SHOWPROGRESS    ,"PmacDownloadProgress");
DLL_LINK(DeviceINTRTerminate           ,INTRTERMINATE            ,"PmacINTRTerminate");
DLL_LINK(DeviceINTRWndMsgInit          ,INTRWNDMSGINIT           ,"PmacINTRWndMsgInit");
DLL_LINK(DeviceINTRSetupMask           ,INTRSETUPMASK            ,"PmacINTRSetupMask");
DLL_LINK(DeviceINTRFuncCallInit        ,INTRFUNCCALLINIT         ,"PmacINTRFuncCallInit");
DLL_LINK(DeviceLock                    ,LOCKPMAC                 ,"LockPmac");
DLL_LINK(DeviceRelease                 ,RELEASEPMAC              ,"ReleasePmac");
DLL_LINK(DeviceSetCriticalIVars        ,SETCRITICALIVARS         ,"PmacSetCriticalIVars");
DLL_LINK(DeviceGetRomDate              ,GETROMDATEA              ,"PmacGetRomDateA");
DLL_LINK(DeviceGetRomVersion           ,GETROMVERSIONA           ,"PmacGetRomVersionA");
DLL_LINK(DeviceGetErrorStr             ,GETERRORSTRA             ,"PmacGetErrorStrA");
DLL_LINK(DeviceMultiDownload           ,MULTIDOWNLOADA           ,"PmacMultiDownloadA");
DLL_LINK(DeviceAddDownloadFile         ,ADDDOWNLOADFILEA         ,"PmacAddDownloadFileA");
DLL_LINK(DeviceRemoveDownloadFile      ,REMOVEDOWNLOADFILEA      ,"PmacRemoveDownloadFileA");
DLL_LINK(DeviceRenumberFiles           ,RENUMBERFILESA           ,"PmacRenumberFilesA");
DLL_LINK(DeviceRemoveDownloadFile      ,REMOVEDOWNLOADFILEA      ,"PmacRemoveDownloadFileA");
DLL_LINK(DeviceInBootStrapMode         ,INBOOTSTRAP              ,"PmacInBootStrapMode");
DLL_LINK(DeviceGetBuffer               ,GETBUFFERA               ,"PmacGetBufferA");
DLL_LINK(DevicePmacConfigure           ,PMACCONFIGURE            ,"PmacConfigure");
DLL_LINK(DeviceTestDPRAM               ,TESTDPRAM                ,"PmacDPRTest");
DLL_LINK(DeviceTestDPRAMAbort          ,TESTDPRABORT             ,"PmacAbortDPRTest");
DLL_LINK(DeviceDPRAvailable            ,DPRAVAILABLE             ,"PmacGetDpramAvailable");
//DLL_LINK(DeviceDPRGetPtr               ,DPRGETPTR                ,"PmacDPRGetPtr");

DLL_LINK(DeviceRestoreLinkList         ,RESTORELINKLIST           ,"RestoreLinkList");
DLL_LINK(DeviceDoChecksums             ,DOCHECKSUMS               ,"PmacDoChecksums");

DLL_LINK(DeviceStoreUSResponse         ,STOREUSRESPONSE           ,"StoreUSResponse");
DLL_LINK(DeviceGetUSResponse           ,GETUSRESPONSE             ,"GetUSResponse");
DLL_LINK(DeviceUSReadReady             ,USREADREADY               ,"USReadReady");

DLL_LINK(DeviceChangeGet           ,CHANGEGET                 ,"ChangeGet");
DLL_LINK(DeviceChangeStore         ,CHANGESTORE               ,"ChangeStore");
DLL_LINK(DeviceChangeReadReady     ,CHANGEREADREADY           ,"ChangeReadReady");

DLL_LINK(DeviceMapDeviceNumToEnumAndLocation  ,MAPDEVICENUMTOENUANDLOC  ,"MapDeviceNumToEnumAndLocation");
DLL_LINK(DeviceMapLocAndEnumFromDeviceNum  ,MAPLOCANDENUMFROMDEVICENUM,"MapLocAndEnumFromDeviceNum");
DLL_LINK(DeviceShutdownPmac,DEVICESHUTDOWNPMAC,"ShutdownPmacDevice");



// Checksum communication rouitnes
DLL_LINK(DeviceSERDoChecksums          ,SERDOCHECKSUMS           ,"PmacSERDoChecksums");
DLL_LINK(DeviceSERCheckSendLineA       ,SERCHECKSENDLINEA        ,"PmacSERCheckSendLineA");
DLL_LINK(DeviceSERCheckGetLineA        ,SERCHECKGETLINEA         ,"PmacSERCheckGetLineA");
DLL_LINK(DeviceSERCheckResponseA       ,SERCHECKRESPONSEA        ,"PmacSERCheckResponseA");
DLL_LINK(DeviceSERCheckAllWentWell     ,SERCHECKALLWENTWELL      ,"PmacSerCheckAllWentWell");

DLL_LINK(DeviceAbortDownload           ,ABORTDOWNLOAD            ,"PmacAbortDownload");
DLL_LINK(DeviceSetMaxDownloadErrors    ,SETMAXDOWNLOADERRORS     ,"PmacSetMaxDownloadErrors");
DLL_LINK(DeviceDPRRotBufClear          ,DPRROTBUFCLEAR           ,"PmacDPRRotBufClr");
DLL_LINK(DeviceDPRRotBufPut            ,DPRROTBUFPUT             ,"PmacDPRrotput");

DLL_LINK(DevicePmacIsTurbo             ,PMACISTURBO              ,"bPMACIsTurbo");

// Turbo Setup
DLL_LINK(DeviceAmpEnabled              ,AMPENABLED               ,"PmacAmpEnabled");
DLL_LINK(DeviceAmpFault                ,AMPFAULT                 ,"PmacAmpFault");
DLL_LINK(DeviceOnNegativeLimit         ,ONNEGATIVELIMIT          ,"PmacOnNegativeLimit");
DLL_LINK(DeviceOnPositiveLimit         ,ONPOSITIVELIMIT          ,"PmacOnPositiveLimit");
DLL_LINK(DeviceFatalFError             ,FATALFERROR              ,"PmacFatalFError");
DLL_LINK(DeviceFollowError             ,FOLLOWERROR              ,"PmacFollowError");
DLL_LINK(DevicePhasedMotor             ,PHASEDMOTOR              ,"PmacPhasedMotor");
DLL_LINK(DeviceGetMotorStatus          ,GETMOTORSTATUS           ,"PmacGetMotorStatus");
// Data Gathering
DLL_LINK(DeviceGetGatherPeriod         ,GETGATHERPERIOD          ,"PmacGetGatherPeriod");
DLL_LINK(DeviceGetGatherSampleTime     ,GETGATHERSAMPLETIME      ,"PmacGetGatherSampleTime");
DLL_LINK(DeviceSetGatherSampleTime     ,SETGATHERSAMPLETIME      ,"PmacSetGatherSampleTime");
DLL_LINK(DeviceGetNumGatherSources     ,GETNUMGATHERSOURCES      ,"PmacGetNumGatherSources");
DLL_LINK(DeviceGetNumGatherSamples     ,GETNUMGATHERSAMPLES      ,"PmacGetNumGatherSamples");
DLL_LINK(DeviceSetGatherPeriod         ,SETGATHERPERIOD          ,"PmacSetGatherPeriod");
DLL_LINK(DeviceSetGatherEnable         ,SETGATHERENABLE          ,"PmacSetGatherEnable");
DLL_LINK(DeviceGetGatherEnable         ,GETGATHERENABLE          ,"PmacGetGatherEnable");
DLL_LINK(DeviceSetCurrentGather        ,SETCURRENTGATHER         ,"PmacSetCurrentGather");
DLL_LINK(DeviceSetGather               ,SETGATHER                ,"PmacSetGather");
DLL_LINK(DeviceSetQuickGather          ,SETQUICKGATHER           ,"PmacSetQuickGather");
DLL_LINK(DeviceSetQuickGatherEx        ,SETQUICKGATHEREX         ,"PmacSetQuickGatherEx");
DLL_LINK(DeviceSetQGWithDirectCur      ,SETQGWITHDIRECTCUR       ,"PmacSetQuickGatherWithDirectCurrent");
DLL_LINK(DeviceSetQGWithDirectCurEx    ,SETQGWITHDIRECTCUREX     ,"PmacSetQuickGatherWithDirectCurrentEx");
DLL_LINK(DeviceGetGather               ,GETGATHER                ,"PmacGetGather");
DLL_LINK(DeviceClearGather             ,CLEARGATHER              ,"PmacClearGather");
DLL_LINK(DeviceInitGather              ,INITGATHER               ,"PmacInitGather");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -