亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? config.h

?? 工業組態軟件modbus驅動源代碼, 包括幫助文件.共享.
?? H
字號:
/* $Header: "%n Ver=%v  %f  LastEdit=%w  Locker=%l" */
/* "CONFIG.H Ver=2  24-Nov-97,15:51:14  LastEdit=JIMV  Locker=***_NOBODY_***" */
/***********************************************************************\
*                                                                       *
*       Copyright Wonderware Software Development Corp. 1989-1997       *
*                                                                       *
*               ThisFileName="L:\ww\dde_serv\src\udsample\config.h"     *
*               LastEditDate="1997 Nov 24  17:51:00"                    *
*                                                                       *
\***********************************************************************/

#ifndef H__config
#define H__config

#include "ntconv.h"
#include "protypes.h"
#include "wwcomdlg.h"

#ifdef __cplusplus
extern "C" {
#endif

extern  HANDLE  hInst;          /* handle of instance */
extern  HWND    hWndParent;     /* handle of parent window */
extern  char    szCmdLine[];    /* command line and parameters */
extern  char    szCfgPath[];    /* configuration path */

#ifdef __cplusplus
}
#endif

/** These are the file names to be used for the configuration file.
    The configuration file keeps information about the comm ports and
    the nodes defined for this protocol driver.

    In addition to the configuration file name, we define the name for the
    backup configuration file.  Before we update the configuration file, we
    rename the previous configuration file with the backup name provided
    here.

    When updating the configuration file care is taken not to destroy the
    old configuration file before we know that the updated file has been
    safely written.  To accomplish this, the updated file is written first
    with a temp file name.  If this is successful, the old configuration
    file is renamed to the backup name and the new configuration file is
    renamed to the real file name.
*/

/*
#define configFileName          "UDSAMPLE.CFG"
#define configBackupName        "UDSAMPLE.CBK"
#define configTempName          "UDSAMPLE.C$$"
*/

#define configFileName          GetString(STRUSER+107)
#define configBackupName        GetString(STRUSER+108)
#define configTempName          GetString(STRUSER+109)

/*************************************************************************/
/** Defines for configuration file contents:

    These values are used to verify that the configuration file is for
    this server, and to identify which version of the configuration file
    is being used.  Whenever the format of the configuration file or of
    the configuration structures is changed, the value CFGVER should be
    updated, and some way should be provided for converting old-format
    files to the current format.  This is not necessary if the configuration
    file consists of ASCII commands, identified by using the version number
    0x54584554, which corresponds to the string "TEXT".
*/

#define FMAGIC  0x55474643L     /* "CFGU" */
#define CFGVER  2
#define CFGTXT  0x54584554      /* "TEXT" */
#define PadSize 36

/* file version header -- define this structure as needed */

typedef struct tagFILEVER {
    unsigned long fv_magic;
    unsigned long fv_version;
    char          fv_date [10];
    char          fv_time [10];
    char          fv_pad [PadSize];     /* pad to 64 bytes */
} FILEVER;
typedef FILEVER *FILEVERP;

/***********************************************************************/
/** ComPort configuration structure
    This data structure is used by WriteBoardCfgASCII() to store
    the configuration settings for a comport with the port ID
    for the serial port **/

typedef struct tagCOMPORT_CFG_WITHID {
    int          channelID;    /* space for comport ID */
    WW_CP_PARAMS comport;      /* standard comport structure */
} COMPORT_CFG_WITHID;
typedef COMPORT_CFG_WITHID FAR *LPCOMPORT_CFG_WITHID;

/***********************************************************************/
/* number of serial ports available */

#define   NUM_COMPORTS   32     /* total number of serial ports handled */

#ifdef WIN32
#define   MAX_COMPORT    32     /* number of serial ports on Win32 platform */
#else
#define   MAX_COMPORT     9     /* number of serial ports on Win16 platform */
#endif

/***********************************************************************/
/** Board configuration structure
    This data structure is used by WriteBoardCfgStruct() to store
    the configuration settings for a board in a disk file and by
    ReadBoardCfgStruct() to retrieve them. **/

typedef struct tagBOARD_CFG {
    CHAINLINK       cp_chainLink;
    DWORD           cp_channelID;
    char            cp_name[33];
    WORD            cp_memSegment;
    WORD            cp_ioAddr;
    short           cp_replyTimeout;
} BOARD_CFG;
typedef BOARD_CFG FAR *LPBOARD_CFG;

/***********************************************************************/
/*  These are the default settings for the board.
    They should be changed to suit the protocol being supported.
*/

#define SD_MEMORY_RANGE         "(D000 - DC00 by 400)"
#define DEFAULT_REPLY_TIMEOUT   3       /* seconds */
#define DEFAULT_UPDATE_PERIOD   1000    /* milliseconds */
#define DEFAULT_IOBASE          0x250
#define DEFAULT_IRQ             3
#define DEFAULT_SEGMENT         0xD000

/***********************************************************************/
/** Topic configuration structure
    This data structure is used by WriteTopicCfgStruct() to store
    the configuration settings for a Topic in a disk file and by
    ReadTopicCfgStruct() to retrieve them. **/

typedef struct tagTOPIC_CFG {
    CHAINLINK       tc_chainLink;
    DWORD           tc_channelID;
    char            tc_name[33];
    BYTE            tc_topicAddress;
    WORD            tc_coilReadSize;
    WORD            tc_regReadSize;
    LONG            tc_updateInterval;
} TOPIC_CFG, FAR *LPTOPIC_CFG;

/*************************************************************************/
/*  This data structure is used by ValidateTopic() to convey all of the
    pertinent information about a topic to the caller.

    It should be changed to suit the protocol being supported.
*/

typedef struct tagSTNPARAM {
    char        spChannelName [33];     /* name for I/O channel         */
    char        spConfigString [20];    /* e.g. COM1:9600,n,8,1         */
    WORD        spMemSegment;           /* memory segment for board     */
    WORD        spIoAddr;               /* I/O address for board        */
    int         spReplyTimeout;         /* timeout (in sec)             */
    WORD        spCoilReadSize;         /* coil read block size         */
    WORD        spRegReadSize;          /* register read block size     */
    DWORD       spUpdatePeriod;         /* update frequency (in msec)   */
    BYTE        spTopicID;              /* Slave ID                     */
} STNPARAM;
typedef STNPARAM FAR *LPSTNPARAM;

/***********************************************************************/
/** This data structure is used by ValidatePoint() to convey all of the
    pertinent information about a point to the caller.

    It should be changed to match the protocol being supported.
    Anything that distinguishes one point name from another should be
    reflected in the structure of the symbol table entry for the point.
    Examples:  point address, memory segment, data length, data subtype.

    Note:  In the comments below, a "cell" refers to an indivisible
           unit of data.  For example, a device may be addressed as
           16-bit words, i.e. 2 bytes per "cell".  It may also be possible
           to group cells into larger chunks, such as DWORDS, real numbers,
           strings, etc.  So a count of the number of "cells" would be needed.
**/

typedef struct tagPPS {
    WORD        ppsAlias;          /* address of point */
    WORD        ppsBitPos;         /* bit position within a point "cell" */
    WORD        ppsNumBytes;       /* number of bytes per "cell" */
    PTTYPE      ppsDdeType;        /* data type */
    BYTE        ppsCount;          /* number of "cells" */
    BYTE        ppsPlcDataType;    /* data segment for device, e.g. address group */
    BYTE        ppsSubType;        /* data subtype, e.g. signed, BCD, etc. */
} PPS;
typedef PPS FAR *LPPPS;

/***********************************************************************/
/** definition of buffered file for fast access with character I/O **/

typedef struct tagBUFFERED_FILE {
    HFILE FileH;                 /* file handle                         */
    LPSTR FileName;              /* pointer to file name                */
    LPSTR FileBuf;               /* pointer to buffer for handling file */
    unsigned int BufSize;        /* size of buffer                      */
    unsigned int BufPtr;         /* location in buffer                  */
    /* the following variables are used for buffered read  */
    unsigned int MaxCharsToRead; /* end of buffer contents              */
    BOOL more_data;              /* TRUE if more chars left             */
    BOOL AllBlocksRead;          /* TRUE if all chunks read             */
    BOOL AllCharsRead;           /* TRUE if all chars read              */
    int  error;                  /* non-zero if last operation failed   */
} BUFFERED_FILE;

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频免费直播| 极品少妇xxxx偷拍精品少妇| 日韩精品电影一区亚洲| 欧美高清www午色夜在线视频| 91丨九色丨黑人外教| 处破女av一区二区| 成人污视频在线观看| 精品一区二区在线观看| 精品一区二区国语对白| 麻豆国产精品视频| 精品一区二区免费视频| 精久久久久久久久久久| 国产一区二区三区四区在线观看| 日本在线观看不卡视频| 蜜桃91丨九色丨蝌蚪91桃色| 蜜桃在线一区二区三区| 激情伊人五月天久久综合| 激情伊人五月天久久综合| 国产成人av电影| 色悠久久久久综合欧美99| 欧美色男人天堂| 日韩欧美色综合| 国产精品视频在线看| 一区二区三区在线免费观看| 日本亚洲三级在线| 国产精品99久久久久久久vr| 91在线精品一区二区三区| 欧美吞精做爰啪啪高潮| 日韩欧美久久一区| 欧美国产日韩a欧美在线观看 | 国产精品麻豆欧美日韩ww| 国产精品丝袜在线| 亚洲国产精品久久久久秋霞影院| 免费看精品久久片| 波多野结衣在线一区| 欧美日韩高清一区二区不卡| 久久婷婷久久一区二区三区| 亚洲欧美一区二区三区国产精品 | 欧美激情在线一区二区三区| 国产精品国产三级国产专播品爱网| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲激情综合网| 三级亚洲高清视频| 国产成人免费视频网站| 在线观看成人小视频| 久久一二三国产| 亚洲国产另类av| 成人午夜av电影| 日韩欧美不卡在线观看视频| 亚洲精品水蜜桃| 国产成人高清在线| 91精品在线免费观看| 亚洲欧美激情插| 粉嫩在线一区二区三区视频| 日韩午夜激情视频| 亚洲综合图片区| 风流少妇一区二区| 精品精品欲导航| youjizz久久| 亚洲欧洲综合另类在线| 精品在线观看免费| 欧美电影一区二区| 亚洲地区一二三色| 在线视频一区二区三| 亚洲欧洲日韩女同| 风间由美一区二区三区在线观看| 91精品国产综合久久久蜜臀粉嫩| 亚洲美女屁股眼交| 福利一区在线观看| 国产亚洲欧洲997久久综合| 日产精品久久久久久久性色| 欧美日韩一区国产| 一区二区三区在线不卡| 91在线丨porny丨国产| 久久久久久久综合狠狠综合| 麻豆精品在线观看| 欧美一级日韩免费不卡| 亚洲444eee在线观看| 欧美男女性生活在线直播观看| 一区二区三区四区在线播放| 99久久免费视频.com| 欧美一级日韩一级| 欧美日韩国产中文| 亚洲香肠在线观看| 色94色欧美sute亚洲13| 亚洲另类中文字| 欧美在线free| 亚洲电影视频在线| 在线视频一区二区免费| 午夜久久久久久久久| 3atv一区二区三区| 久久99久国产精品黄毛片色诱| 日韩精品专区在线影院观看| 国产麻豆精品95视频| 欧美国产成人在线| 91在线观看美女| 又紧又大又爽精品一区二区| 欧美精品自拍偷拍| 久久综合综合久久综合| 久久久久久一级片| 色激情天天射综合网| 午夜精品成人在线视频| 欧美电影免费提供在线观看| 丁香六月综合激情| 亚洲在线观看免费| 精品国产乱码91久久久久久网站| 成人午夜精品在线| 午夜日韩在线电影| 国产亚洲精品免费| 欧美日韩久久不卡| 成人综合在线观看| 青草国产精品久久久久久| 久久亚洲一级片| 在线免费观看视频一区| 国产一区二区三区久久久| 亚洲欧美日韩国产另类专区| 日韩一区二区三区视频在线| 丰满白嫩尤物一区二区| 日本中文字幕不卡| 亚洲欧洲av在线| 日韩欧美视频一区| 欧美在线三级电影| 国产成人av电影在线观看| 亚洲一区欧美一区| 欧美激情一区二区三区全黄| 欧美精品在线一区二区| av电影天堂一区二区在线观看| 日本不卡不码高清免费观看| 中文字幕在线观看一区二区| 精品久久五月天| 欧美三级中文字幕在线观看| 国产99精品在线观看| 久久99蜜桃精品| 石原莉奈在线亚洲二区| 一区二区三区在线免费观看| 国产精品天干天干在线综合| 欧美成人aa大片| 在线播放视频一区| 91丝袜国产在线播放| 成人免费看视频| 国产麻豆午夜三级精品| 免费人成在线不卡| 日韩中文字幕不卡| 亚洲www啪成人一区二区麻豆| 国产精品久久久久三级| 国产欧美一二三区| 日韩午夜中文字幕| 欧美一级午夜免费电影| 欧美日韩一级二级三级| 欧美日韩一区高清| 欧美日精品一区视频| 欧美午夜精品久久久久久超碰 | 99久久综合国产精品| 国产成人精品影院| 国产69精品一区二区亚洲孕妇| 精品影视av免费| 国产制服丝袜一区| 国产精品系列在线播放| 国产盗摄女厕一区二区三区| 精一区二区三区| 激情文学综合网| 国产久卡久卡久卡久卡视频精品| 极品少妇一区二区三区精品视频| 韩国一区二区三区| 国产精品亚洲第一| 成人永久免费视频| 一本一道综合狠狠老| 欧美三级欧美一级| 3d动漫精品啪啪一区二区竹菊| 91精品国产色综合久久| 日韩欧美电影一二三| 亚洲精品一区二区三区99| 国产午夜精品久久久久久免费视| 国产女人水真多18毛片18精品视频| 欧美激情一区二区| 亚洲视频免费在线观看| 亚洲一区二区三区中文字幕在线| 天堂久久一区二区三区| 九色综合狠狠综合久久| www.av亚洲| 欧美日韩一本到| 久久综合久久99| 亚洲人成网站在线| 图片区小说区区亚洲影院| 紧缚捆绑精品一区二区| av成人老司机| 欧美一级精品在线| 国产区在线观看成人精品| 亚洲精品成人悠悠色影视| 三级久久三级久久| 粗大黑人巨茎大战欧美成人| 在线免费精品视频| 国产日韩av一区| 亚洲一二三四久久| 国内精品久久久久影院一蜜桃| 91网站最新网址| 2021中文字幕一区亚洲| 亚洲成人综合网站| 99久久夜色精品国产网站| 精品国产伦一区二区三区观看方式 |