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

📄 download.h

📁 美国Delta Tau公司PMAC多轴运动控制卡的VC++示例程序
💻 H
字号:
/***************************************************************************

  Title:    download.h

  Version:  1.00

  Date:   12/05/1995

  Author(s):  Dennis Smith

  Header for Download function for PMAC Communications Library.

  Note(s):

----------------------------------------------------------------------------

  Change log:

    Date     Rev   Who      Description
  --------- ----- ----- --------------------------------------------

  05Dec95         DS    created file
***************************************************************************/

#if !defined( _DOWNLOAD_H )
  #define _DOWNLOAD_H

  #include "common.h"
  #include <stdio.h>

  #define MAXKEYSIZE    32
  #define MAXMACROSIZE  128
  #define MAXWORDSIZE   32
  #define MAXTEXTSIZE   81
  #define MAXNESTDEPTH  10
  #define MAXPARAMETERS 5
  #define MAXINCLUDE    10

  #ifdef __cplusplus
extern "C" {
  #endif

typedef struct tagMacro {
  long line;
  char *key, *macro;
  struct tagMacro *left, *right;
} MACRO, *PMACRO;

typedef void (FAR WINAPI * DOWNLOADMSGPROC) 
  ( LPTSTR str, BOOL newline );

typedef int  (FAR WINAPI * DOWNLOADGETPROC) 
  ( int nIndex, LPTSTR lpszBuffer, int nMaxLength );

typedef void (FAR WINAPI * DOWNLOADPROGRESS) 
  ( int nPercent );

typedef void (FAR WINAPI * DOWNLOADERRORPROC) 
  ( LPSTR fname, LONG err, LONG line, LPSTR szLine );



// Globals *******************************************************************
typedef struct tagDownload {

  ULONG     TotalLines;
  UINT      TotalWarnings;
  UINT      TotalErrors;
  UINT      TotalMessages;
  BOOL      bMacro, bMap, bLog, bDnld, bTable;
  ULONG     hThread;
  BOOL      bThreadRunning;
  BOOL      bAbortThread;
  BOOL      bCompileError;
  BOOL      bDoChecksums;
  DWORD     dwDevice;
  DWORD     iTimeout;
  DWORD     dwEnum;
  LOCATIONTYPE location;

  PMACRO    macroTable;
  PMACRO    keyTable;
  PMACRO    messages;
  char      fileName[MAX_PATH ]; // original input path
  char      mapName[MAX_PATH ];  // map file name
  char      msgName[MAX_PATH ];  // message/log file name
  char      tblName[MAX_PATH ];  // label table file name
  char      outName[MAX_PATH ];  // output file name
  char      plccName[MAX_PATH ]; // binary plc output file name

  DOWNLOADMSGPROC   messageProc; // Pointer to a message callback function
  DOWNLOADGETPROC   getlineProc; // Pointer to a getline callback function
  DOWNLOADPROGRESS  progressProc;// Pointer to a progress callback function
  DOWNLOADERRORPROC errorProc;   // Pointer to a error reporting callback

  BOOL      bInComment;             // inside comment section
  int       Warnings;
  int       Errors;
  int       Include;                // != 0 currently getting input from file
  char *inName[MAXINCLUDE ];        // current include input file name
  UINT      inLine[MAXINCLUDE];     // current line number
  FILE *inFile[MAXINCLUDE];         // current input file for includes
  long      inFileLen[MAXINCLUDE ]; // length of file in bytes
  long      inFilePos[MAXINCLUDE ]; // current pos in file
  int       inErrors[MAXINCLUDE ];
  int       inWarnings[MAXINCLUDE ];
  UINT      IfNestDepth;
  BOOL      IfStack[MAXNESTDEPTH];

} DOWNLOAD, *PDOWNLOAD;

// Functions --------------------------------------------------------------

  // Exported functions
  int  CALLBACK PmacDownloadExA(DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                                DOWNLOADPROGRESS prgp,DOWNLOADERRORPROC errp,PCHAR filename,
                                BOOL macro, BOOL map,BOOL log, BOOL dnld );
  int  CALLBACK PmacDownloadA( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                               DOWNLOADPROGRESS pprg, PCHAR filename, BOOL macro, BOOL map, BOOL log, BOOL dnld );
  int  CALLBACK PmacDownloadExW(DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                                DOWNLOADPROGRESS prgp,DOWNLOADERRORPROC errp,PWCHAR filename,
                                BOOL macro, BOOL map,BOOL log, BOOL dnld );
  int  CALLBACK PmacDownloadW( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                               DOWNLOADPROGRESS pprg, PWCHAR fname, BOOL macro, BOOL map, BOOL log, BOOL dnld );
  int  CALLBACK PmacThreadDownloadExA( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                            DOWNLOADPROGRESS prgp,DOWNLOADERRORPROC errp, PCHAR filename, BOOL macro, BOOL map,
                            BOOL log, BOOL dnld );
  int  CALLBACK PmacThreadDownloadA( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                               DOWNLOADPROGRESS pprg, PCHAR filename, BOOL macro, BOOL map, BOOL log, BOOL dnld );
  int  CALLBACK PmacThreadDownloadExW( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                            DOWNLOADPROGRESS prgp,DOWNLOADERRORPROC errp, PWCHAR filename, BOOL macro, BOOL map,
                            BOOL log, BOOL dnld );
  int  CALLBACK PmacThreadDownloadW( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADGETPROC getp,
                               DOWNLOADPROGRESS pprg, PWCHAR fname, BOOL macro, BOOL map, BOOL log, BOOL dnld );
  void CALLBACK PmacDownloadFile( DWORD dwDevice, char *fname );
  BOOL CALLBACK PmacCompilePLCC( DWORD dwDevice, char *plccName, char *outName );
  BOOL CALLBACK WriteDictionary( const char *tblName, PMACRO * root );
  BOOL CALLBACK ReadDictionary( const char *tblName, PMACRO * root );
  int  CALLBACK PmacDownloadFirmwareFile( DWORD dwDevice, DOWNLOADMSGPROC msgp, DOWNLOADPROGRESS prgp, LPCTSTR filename );
  void CALLBACK PmacAbortDownload( DWORD dwDevice );
  void CALLBACK PmacSetMaxDownloadErrors( UINT max );
  void CALLBACK AddDownloadError( LPSTR fname, LONG err, LONG line, LPSTR szLine );

  // Internal functions NOT EXPORTED
  void  _cdecl DownloadThread( PVOID filename );
  void  _cdecl DownloadFirmwareThread( PVOID filename );
  void  CheckAndReportErrors( DWORD dwDevice, DWORD line, char *instr );
  void  AddError( LPSTR err, LONG line );
  void  AddWarning( LPSTR warn, LONG line );
  void  AddMessage( LPSTR msg );
  void  SetPredefinedMacros( DWORD dwDevice );
  BOOL  StoreMacro( char *key, char *macro );
  BOOL  PreProcess( DWORD dwDevice, char *inname, char *outName );
  BOOL  ReadLine( PTCHAR ln, UINT maxchr );
  BOOL  CloseInclude( void );
  BOOL  OpenInclude( char *filename );
  UINT  ParseFilename( const char *inStr, char *outStr, UINT maxchar );
  UINT  ParseKeyWord( const char *inStr, char *outStr, UINT maxchar );
  UINT  ParseMacro( const char *inStr, char *outStr, UINT maxchar );
  BOOL  ParseLine( const char *inStr, char *outStr, UINT maxchar );
  int   ParseParameters( char *src, int *pcount, char *param[] );
  int   Function( char *dest, char *src, char **ep );
  BOOL  WriteMap( char *mapName, char *inname );
  BOOL  WriteMessages( char *msgName, char *inname );

  // Macro table specific
  PMACRO SearchForKey( PMACRO root, char *key );
  void   Flush( PMACRO * root );
  PMACRO DeleteByKey( PMACRO root, char *key );
  PMACRO AddMacro(PMACRO root,PMACRO r,char *k,char *m,long l, BOOL no_duplicates );
  PMACRO StoreByLine( PMACRO root, PMACRO r, char *k, char *m, long l );
  void   fPrintKey( PMACRO root, FILE * fptr );
  void   PrintKey( PMACRO root, FILE * fptr );

  #ifdef __cplusplus
}
  #endif

  #ifdef UNICODE
    #define PmacDownload PmacDownloadW
  #else
    #define PmacDownload PmacDownloadA
  #endif // !UNICODE

#endif


⌨️ 快捷键说明

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