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

📄 rs232.h

📁 此为某测试平台的上位机软件部分
💻 H
字号:
/*============================================================================*/
/*                        L a b W i n d o w s / C V I                         */
/*----------------------------------------------------------------------------*/
/*    Copyright (c) National Instruments 1987-1999.  All Rights Reserved.     */
/*----------------------------------------------------------------------------*/
/*                                                                            */
/* Title:       rs232.h                                                       */
/* Purpose:     Include file for RS-232 library support.                      */
/*                                                                            */
/*============================================================================*/

#ifndef RS232_HEADER
#define RS232_HEADER

#include "cvidef.h"
#include "cvirte.h"

#ifdef __cplusplus
    extern "C" {
#endif

/* Escape Codes */
#define SETXOFF             1       /* Simulate XOFF received      */
#define SETXON              2       /* Simulate XON received       */
#define SETRTS              3       /* Set RTS high                */
#define CLRRTS              4       /* Set RTS low                 */
#define SETDTR              5       /* Set DTR high                */
#define CLRDTR              6       /* Set DTR low                 */
#define RESETDEV            7       /* Reset device if possible    */
#define GETMAXCOM           9       /* return highest com number   */
/* RS485 only */
#define WIRE_4              128     /* Set 4-wire wiring mode (0 to Scratchpad) */
#define WIRE_2_ECHO         129     /* Set 2-wire, DTR echo mode (1 to Scratchpad) */
#define WIRE_2_CTRL         130     /* Set 2-wire, DTR controlled mode (2 to Scratchpad) */
#define WIRE_2_AUTO         131     /* Set 2-wire, TxRdy auto control (3 to scratchpad) */

/* Modem Status Flags for GetComLineStatus */
#define kRS_CTS_ON                      0x00000010
#define kRS_DSR_ON                      0x00000020
#define kRS_RING_ON                     0x00000040
#define kRS_RLSD_ON                     0x00000080

/* variables */
#ifdef _CVI_USE_FUNCS_FOR_VARS_
    extern int *CVIFUNC_C _GetRs232Err(void);
    #define rs232err (*_GetRs232Err())
#else
    extern int rs232err;
#endif

/* exported functions */
int CVIFUNC CloseCom(int portNo);
int CVIFUNC ComBreak(int portNo, int milliSec);
int CVIFUNC ComFromFile(int portNo, int handle, int maxCnt, int termCh);
int CVIFUNC ComRd(int portNo, char buf[], int maxCnt);
int CVIFUNC ComRdByte(int portNo);
int CVIFUNC ComRdTerm(int portNo, char buf[], int   maxCnt, int termCh);
int CVIFUNC ComToFile(int portNo, int handle, int   maxCnt, int termCh);
int CVIFUNC ComWrt(int portNo, const char *buf, int maxCnt);
int CVIFUNC ComWrtByte(int portNo, int byte);
int CVIFUNC FlushInQ(int portNo);
int CVIFUNC FlushOutQ(int portNo);
int CVIFUNC GetComStat(int portNo);
int CVIFUNC GetInQLen(int portNo);
int CVIFUNC GetOutQLen(int portNo);
int CVIFUNC OpenCom(int portNo, const char deviceName[]);
int CVIFUNC OpenComConfig(int portNo, const char deviceName[], int baudRate, int parity,
                  int dataBits, int stopBits, int iqSize,
                  int oqSize);
int CVIFUNC SetComTime(int portNo, double seconds);
int CVIFUNC SetCTSMode(int portNo, int mode);
int CVIFUNC SetXMode(int portNo, int mode);
int CVIFUNC XModemConfig(int portNo, double startDelay, int maxTries,
                 double waitPeriod, int packetSize);
int CVIFUNC XModemReceive(int portNo, const char pathName[]);
int CVIFUNC XModemSend(int portNo, const char pathName[]);
int CVIFUNC ReturnRS232Err(void);
int CVIFUNC GetSystemComHandle(int portNo, int *handle);
unsigned CVIFUNC GetComLineStatus(int portNo);
int CVIFUNC GetComConnectionState(int portNo);

#if defined(_NI_mswin16_) || defined(_NI_mswin32_) || defined(_NI_mswin_)
typedef void (CVICALLBACK *ComCallbackPtr) (int portNo, int eventMask, void *callbackData);
int CVIFUNC InstallComCallback(int  portNo, int eventMask, int notifyCount,
      int eventCharacter, ComCallbackPtr callbackPtr, void *CallbackData);

#endif

int CVIFUNC ComSetEscape(int portNo, int escapeCode);
char * CVIFUNC GetRS232ErrorString(int errorNum);



/* error codes returned by RS-232 functions */
typedef enum {
    kRS_UnknownSysError          =  -1,
    kRS_InvalidPortNum           =  -2,
    kRS_PortNotOpen              =  -3,
    kRS_UnknownIOError           =  -4,
    kRS_InternalError            =  -5,
    kRS_NoPortFound              =  -6,
    kRS_CanNotOpenPort           =  -7,
    kRS_OutOfMemory              =  -11,
    kRS_InvalidParameter         =  -13,
    kRS_InvalidBaudRate          =  -14,
    kRS_InvalidParity            =  -24,
    kRS_InvalidDataBits          =  -34,
    kRS_InvalidStopBits          =  -44,
    kRS_BadFileHandle            =  -90,
    kRS_FileIOError              =  -91,
    kRS_InvalidCount             =  -94,
    kRS_InvalidIntLevel          =  -97,
    kRS_IOTimeOut                =  -99,
    kRS_InvalidBreakTime         =  -104,
    kRS_InvalidInQSize           =  -114,
    kRS_InvalidOutQSize          =  -124,
    kRS_GeneralIOFailure         =  -151,
    kRS_InvalidBufferPointer     =  -152,
    kRS_NoAckReceived            =  -257,
    kRS_MaxRetriesBeforeSend     =  -258,
    kRS_MaxRetriesBeforeReceived =  -259,
    kRS_UnexpectedEOT            =  -260,
    kRS_CanNotReadPackNum        =  -261,
    kRS_InconsistentPackNum      =  -262,
    kRS_CanNotReadPackData       =  -263,
    kRS_CanNotReadCheckSum       =  -264,
    kRS_CheckSumError            =  -265,
    kRS_PackSizeGTInQ            =  -269,
    kRS_OpenFileError            =  -300,
    kRS_ReadFileError            =  -301,
    kRS_NoInitNegAck             =  -302,
    kRS_NoAckAfterEOT            =  -303,
    kRS_WriteFileError           =  -304,
    kRS_NoSOHorEOT               =  -305,
    kRS_TransferCancelled        =  -402,
    kRS_InvalidStartDelay        =  -503,
    kRS_InvalidMaxTries          =  -504,
    kRS_InvalidWaitPeriod        =  -505,
    kRS_InvalidPacketSize        =  -506,
    kRS_CanNotReadCRC            =  -507,
    kRS_CRCError                 =  -508
} RS232ErrorType;

/* event Mask defines for InstallComCallback (only for Windows) */
#if defined(_NI_mswin16_) || defined(_NI_mswin32_) || defined(_NI_mswin_)
#define LWRS_RECEIVE    0x8000  /* notifyCount bytes in inqueue   */
#define LWRS_RXCHAR     0x0001  /* Any Character received         */
#define LWRS_RXFLAG     0x0002  /* Received certain character     */
#define LWRS_TXEMPTY    0x0004  /* Transmit Queue Empty           */
#define LWRS_CTS        0x0008  /* CTS changed state              */
#define LWRS_DSR        0x0010  /* DSR changed state              */
#define LWRS_RLSD       0x0020  /* RLSD changed state             */
#define LWRS_BREAK      0x0040  /* BREAK received                 */
#define LWRS_ERR        0x0080  /* Line status error occurred     */
#define LWRS_RING       0x0100  /* Ring signal detected           */
#endif

/* modes for SetCTSMode() */
#define LWRS_HWHANDSHAKE_OFF                   0
#define LWRS_HWHANDSHAKE_CTS_RTS_DTR           1
#define LWRS_HWHANDSHAKE_CTS_RTS               2

/* status codes return through GetComStat */
#define kRS_InputLost                   0x00000001
#define kRS_AsynError                   0x00000002
#define kRS_ParityError                 0x00000010
#define kRS_OverrunError                0x00000020
#define kRS_FramingError                0x00000040
#define kRS_BreakSignal                 0x00000080
#define kRS_RemoteXoff                  0x00001000
#define kRS_RemoteXon                   0x00002000
#define kRS_LocalXoff                   0x00004000
#define kRS_LocalXon                    0x00008000

/* Modem Status Flags for GetComLineStatus */
#define kRS_CTS_ON                      0x00000010
#define kRS_DSR_ON                      0x00000020
#define kRS_RING_ON                     0x00000040
#define kRS_RLSD_ON                     0x00000080

#ifdef __cplusplus
    }
#endif

#endif /* RS232_HEADER */

⌨️ 快捷键说明

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