?? pmacu.h
字號(hào):
/* pmacu.h
*
* 32-bit Motion Control Device Driver
* Data structures and function entry-points for Pmac user-mode driver
HISTORY
*/
#ifndef _PMACU_H_
#define _PMACU_H_
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
//
// include needed headers
//
#ifndef __ATLBASE_H__
#include <windows.h>
#include <windowsx.h>
#endif
#include <winsock2.h>
#include "Include\mcstruct.h"
#include "Include\common.h"
#include "Include\mioctl.h"
#include "Include\private.h"
#ifndef _PMACSERVER
//////////////////////////////////////////////////////////////////////////////
// This section is included for the Pcomm32.dll and old server
#include "Include\dpr.h"
#include "Include\intr.h"
#include "Include\gather.h"
/****************************************************************************
* information needed to locate/initialise hardware. Set by user
* in ConfigDlgProc and written to registry to kernel driver.
****************************************************************************/
typedef struct _Config_Location
{
PMACDEVICETYPE PmacType; // 1 = DT_PMAC1, 2 = DT_PMAC2,3 = DT_TURBO
DWORD Location; // typedef enum {LT_UNKNOWN, LT_ISA, LT_SER, LT_ETH, LT_PCI, LT_USB, LT_LAST};
DWORD PCBusType; // ISA, PCI etc.
DWORD DPRRotSize[MAX_ROTBUF_PMAC]; // 16 originally
DWORD DPRVarAdr;
DWORD dwDPRRTimeout;
DWORD dwDPRBKTimeout;
DWORD dwDPRCharTimeout;
DWORD dwDPRFlushTimeout;
DWORD dwBUSFlushTimeout;
DWORD dwBUSCharTimeout;
DWORD dwSERPortNumber;
DWORD dwSERBaudrate;
DWORD dwSERParity; // 0 = no, 1 = odd, 2 = even
DWORD dwSERFlushTimeout;
DWORD dwSERCharTimeout;
DWORD dwSERWriteMultiplyerTimeout;
DWORD dwSERWriteConstantTimeout;
DWORD dwSERReadMultiplyerTimeout;
DWORD dwSERReadConstantTimeout;
DWORD dwSERReadIntervalTimeout;
DWORD dwDPRAutoActive;
DWORD dwDPRRealtActive;
DWORD dwDRPBackgActive;
DWORD dwDPRRealtPeriod;
DWORD dwDRPBackgPeriod;
DWORD dwEnableInterrupts;
DWORD dwIPAddress;
CHAR szNcTitle[256];
CHAR szSourceProfile[_MAX_PATH];
CHAR szToolProfile[_MAX_PATH];
CHAR szCoordProfile[_MAX_PATH];
DWORD MachineType;
DWORD NoOfTools;
DWORD NoOfBlocks;
DWORD NoOfCoordSys;
DWORD MetricDisplay;
double LeastHandleInc;
double MaxHandleInc;
double LeastJogInc;
CHAR szAxisMotorMap[15];
CHAR szAxisMotorSel[15];
CHAR szAxisDispMap[15];
double MaxRapidOvrd;
double MaxFeedOvrd;
// Axis stuff
DWORD IsSpindle;
DWORD HasSlave;
DWORD IsPhantom;
DWORD Display;
DWORD DisplaySlave;
DWORD HomeMode;
DWORD HomePrgNumber;
DWORD Precision;
DWORD AxisMetricDisplay;
DWORD MetricUnits;
DWORD ProbePrgNumber;
CHAR szPulsePerUnit[15];
CHAR szInPositionBand[15];
CHAR szMaxRapid[15];
CHAR szMaxFeed[15];
CHAR szFatalFError[15];
CHAR szWarnFError[15];
CHAR szJogSpeedLow[15];
CHAR szJogSpeedMedLow[15];
CHAR szJogSpeedMed[15];
CHAR szJogSpeedMedHigh[15];
CHAR szJogSpeedHigh[15];
CHAR szFormatInch[15];
CHAR szFormatMM[15];
} CONFIG_LOCATION, *PCONFIG_LOCATION;
#else
//////////////////////////////////////////////////////////////////////////////
// This section is included for the new server
/****************************************************************************
* information needed to locate/initialise hardware. Set by user
* in ConfigDlgProc and written to registry to kernel driver.
****************************************************************************/
typedef struct _Config_Location
{
PMACDEVICETYPE PmacType; // 1 = DT_PMAC1, 2 = DT_PMAC2,3 = DT_TURBO
DWORD Location; // typedef enum {LT_UNKNOWN, LT_ISA, LT_SER, LT_ETH, LT_PCI, LT_USB, LT_LAST};
DWORD PCBusType; // ISA, PCI etc.
DWORD DPRRotSize[MAX_ROTBUF_PMAC]; // 16 originally
DWORD DPRVarAdr;
DWORD dwDPRRTimeout;
DWORD dwDPRBKTimeout;
DWORD dwDPRCharTimeout;
DWORD dwDPRFlushTimeout;
DWORD dwBUSFlushTimeout;
DWORD dwBUSCharTimeout;
DWORD dwSERPortNumber;
DWORD dwSERBaudrate;
DWORD dwSERParity; // 0 = no, 1 = odd, 2 = even
DWORD dwSERFlushTimeout;
DWORD dwSERCharTimeout;
DWORD dwSERWriteMultiplyerTimeout;
DWORD dwSERWriteConstantTimeout;
DWORD dwSERReadMultiplyerTimeout;
DWORD dwSERReadConstantTimeout;
DWORD dwSERReadIntervalTimeout;
DWORD dwDPRAutoActive;
DWORD dwDPRRealtActive;
DWORD dwDRPBackgActive;
DWORD dwDPRRealtPeriod;
DWORD dwDRPBackgPeriod;
DWORD dwEnableInterrupts;
DWORD dwIPAddress;
CHAR szNcTitle[256];
CHAR szSourceProfile[_MAX_PATH];
CHAR szToolProfile[_MAX_PATH];
CHAR szCoordProfile[_MAX_PATH];
DWORD MachineType;
DWORD NoOfTools;
DWORD NoOfBlocks;
DWORD NoOfCoordSys;
DWORD MetricDisplay;
double LeastHandleInc;
double MaxHandleInc;
double LeastJogInc;
CHAR szAxisMotorMap[15];
CHAR szAxisMotorSel[15];
CHAR szAxisDispMap[15];
double MaxRapidOvrd;
double MaxFeedOvrd;
// Axis stuff
DWORD IsSpindle;
DWORD HasSlave;
DWORD IsPhantom;
DWORD Display;
DWORD DisplaySlave;
DWORD HomeMode;
DWORD HomePrgNumber;
DWORD Precision;
DWORD AxisMetricDisplay;
DWORD MetricUnits;
DWORD ProbePrgNumber;
CHAR szPulsePerUnit[15];
CHAR szInPositionBand[15];
CHAR szMaxRapid[15];
CHAR szMaxFeed[15];
CHAR szFatalFError[15];
CHAR szWarnFError[15];
CHAR szJogSpeedLow[15];
CHAR szJogSpeedMedLow[15];
CHAR szJogSpeedMed[15];
CHAR szJogSpeedMedHigh[15];
CHAR szJogSpeedHigh[15];
CHAR szFormatInch[15];
CHAR szFormatMM[15];
} CONFIG_LOCATION, *PCONFIG_LOCATION;
#include <intr.h>
#include "pmac.h"
#endif // _PMACSERVER
#ifdef _CUI_
#define _MAX_PATH MAX_PATHNAME_LEN
#endif
#define LINKLIST_FILE "PMAC_LINKLIST.INI"
#ifdef __cplusplus
extern "C" {
#endif
// forward declarations
typedef struct _USER_HANDLE USER_HANDLE, *PUSER_HANDLE;
typedef struct _GLOBAL_HANDLE GLOBAL_HANDLE, *PGLOBAL_HANDLE;
/////////////////////////////////////////////////////////////////////////////
// Process User Handle Sructure
/////////////////////////////////////////////////////////////////////////////
typedef struct _USER_HANDLE
{
DWORD dwSize; // Keep track of structure size
DWORD dwUser; // User No. for this device
HANDLE hDriver; // Handle to ring zero driver or COM
HANDLE hMutex; // Global mutex handle
WSAEVENT hPmacSockEvent; // Ethernet Event Object
HANDLE hEthMutex;
CHAR *szPmacData; // Buffered data on ethernet
CHAR *pData; // pointer to buffer next get line
CHAR *pDataStart;
DWORD dwPmacSockLastErr;
// Command logging stuff
BOOL dCommandLogging; // Command Logging Enabled
CHAR tcComandLoggingFilename[MAX_PATH]; // Command Logging File Name
UINT uMaxCommandLoggingFileSize; // Command Logging Max. file size
HANDLE hCommandLoggingFileHandle; // Command Logging File Handle
CHAR languageDll[_MAX_PATH]; // Language translation DLL name
// LT_COM - SERIAL
BOOL bDoChecksums; // This process wants checksums
char csum; // Used to retain Command Sum for Checksummed comm
// LT_ISA & LT_PCI - DPRAM
ASCIIMODE ascii_comm; // current mode of ascii comm
BOOL bDpramAvailable; // TRUE if DPRAM is available
HANDLE hDPRMutex; // Global DPRAM serialized access mutex handle
struct cpane DPRCPanel; // control panel (ofs = 0x000,size = 36)
struct cpane DPRCPanelTurbo; // ?? Turbo control panel (ofs = 0x000,size = 36)
struct backgvarbuf_status *bgv_status[MAX_VBGBUF_USERS ]; // Background variable data
DWORD DPRrotbuffer[16]; // DPR Binary Rotary Buffer Start
// Gather stuff
double *pGatherData[MAXGATHERS2 ]; // Pointers to gathered data
double *pRTGatherData; // Pointer to gathered data
// Interrupt Stuff
// inter-thread sync data
UINT ThreadId;
HANDLE hThread;
HANDLE hCompleteEvent;
BOOL bTerminateThread;
// worker thread data
MCCALLBACK Callback; // interrupt callback function
DWORD WaitResult;
INTRBUFFER Buffer;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -