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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? visacomm.cpp

?? 壓力控制器通訊源代碼
?? CPP
字號(hào):
/******************************************************************************/
/* File:        VISACOMM.CPP                                                  */
/*                                                                            */
/* Class:       cCommunications                                               */
/* Author:      Alaster Jones                                                 */
/* Description: Encapsulate the VISA functionality aimed at comms. protocol   */
/*              more specific to pressure instruments. Hide some of the VISA  */
/*              stuff as it's a bit farty.                                    */
/* Date:        02/03/01                                                      */
/******************************************************************************/
//---------------------------------------------------------------------------
//#include <vcl.h>
//#pragma hdrstop
#include "stdafx.h"

#include "VISAComm.h"
//#include "visatype.h"
//#include "visa.h"


// event handler parameters
ViAddr      uhandle;
ViUInt16    SRQStatus;
ViSession   Sessionparam;
ViEventType EventTypeparam;
ViAddr      Addressparam;
ViBoolean   stopflag = VI_FALSE;

//---------------------------------------------------------------------------
//#pragma package(smart_init)

/******************************************************************************/
/* Function:    cCommunications                                               */
/* Author:      Alaster Jones                                                 */
/* Purpose:     constructor                                                   */
/* Inputs:      none                                                          */
/* Outputs:     none                                                          */
/******************************************************************************/
cCommunications::cCommunications()
{
    // VISA communications constructor
    findResources();
    commsType = NOCOMMS;
}

/******************************************************************************/
/* Function:    ~cCommunications                                              */
/* Author:      Alaster Jones                                                 */
/* Purpose:     destructor                                                    */
/* Inputs:      none                                                          */
/* Outputs:     none                                                          */
/******************************************************************************/
cCommunications::~cCommunications()
{
    // VISA communications destructor
    if(instr)
        viClose(instr);

    if(defaultRM)
        viClose(defaultRM);
}

/******************************************************************************/
/* Function:    findResources                                                 */
/* Author:      Alaster Jones                                                 */
/* Purpose:     find the comms resources on the PC / external connections     */
/* Inputs:      none                                                          */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::findResources(void)
{
    long status = 0;

    /* First we will need to open the default resource manager. */
    numResources = 0;
    status = viOpenDefaultRM (&defaultRM);

    if (!status)
        status = viFindRsrc (defaultRM, "?*INSTR", &findList, &numInstrs, instrDescriptor);

    if (status < VI_SUCCESS)
    {
        // an error occurred, need to show an error message
        viClose (defaultRM);
        return status;
    }

    // otherwise copy the first resource into a list
    strcpy(strResources[numResources++], instrDescriptor);

    /* Now we will open a session to the instrument we just found. */
    status = viOpen (defaultRM, instrDescriptor, VI_NULL, VI_NULL, &instr);
    if (status < VI_SUCCESS)
    {
        return status;
    }
    else
    {
        /* Now close the session we just opened.                            */
        /* In actuality, we would probably use an attribute to determine    */
        /* if this is the instrument we are looking for.                    */
        viClose (instr);
    }

    while (--numInstrs)
    {
        /* stay in this loop until we find all instruments */
        status = viFindNext (findList, instrDescriptor);  /* find next desriptor */
        if (status < VI_SUCCESS)
        {   /* did we find the next resource? */
            viClose (defaultRM);
            return status;
        }

        // if ASRL10 is found we won't add it to the list (parallel port)
        if (strncmp(instrDescriptor, "ASRL10", 6))
        {
            strcpy(strResources[numResources++], instrDescriptor);

            /* Now we will open a session to the instrument we just found */
            status = viOpen (defaultRM, instrDescriptor, VI_NULL, VI_NULL, &instr);
            if (status < VI_SUCCESS)
            {
                return status;
            }
            else
            {
                viClose(instr);
            }
        }
    }
    /* end while */

    status = viClose(findList);
    status = viClose(defaultRM);

    return status;
}

/******************************************************************************/
/* Function:    openCommsChannel                                              */
/* Author:      Alaster Jones                                                 */
/* Purpose:     opne a communications channel                                 */
/* Inputs:      string pointer                                                */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::openCommsChannel(char * strChannel)
{
    long status = 0;

    status = viOpenDefaultRM (&defaultRM);
    if (!status)
    {
        status = viOpen (defaultRM, strChannel, VI_NULL, VI_NULL, &instr);
        if(strncmp(strChannel, "ASRL", 4)==NULL)
            commsType = RS232;
        else if(strncmp(strChannel, "GPIB", 4)==NULL)
            commsType = IEEE488;
    }

    if(!status)
        status = viFlush(instr, VI_READ_BUF_DISCARD);

    if(!status)
        status = viFlush(instr, VI_WRITE_BUF_DISCARD);

    return status;
}

/******************************************************************************/
/* Function:    Initialisation                                                */
/* Author:      Alaster Jones                                                 */
/* Purpose:     initialise comms                                              */
/* Inputs:      long                                                          */
/* Outputs:     none                                                          */
/******************************************************************************/
long cCommunications::Initialisation(void)
{
    return 0;
}

/******************************************************************************/
/* Function:    setSerial                                                     */
/* Author:      Alaster Jones                                                 */
/* Purpose:     set serial comms parameters                                   */
/* Inputs:      baudrate, database. stopbits, parity, flowcontrol             */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::setSerial(ULONG baudRate, USHORT dataBits, STOPBITS stopBits, PARITY parity, FLOWCONTROL flowControl)
{
    long status = 0;

    status = viSetAttribute(instr, VI_ATTR_ASRL_BAUD, baudRate);

    if(!status)
        status = viSetAttribute(instr, VI_ATTR_ASRL_DATA_BITS, dataBits);

    if(!status)
        status = viSetAttribute(instr, VI_ATTR_ASRL_PARITY, stopBits);

    if(!status)
        status = viSetAttribute(instr, VI_ATTR_ASRL_STOP_BITS, parity);

    if(!status)
        status = viSetAttribute(instr, VI_ATTR_ASRL_FLOW_CNTRL, flowControl);

    return status;
}

/******************************************************************************/
/* Function:    setIEEE                                                       */
/* Author:      Alaster Jones                                                 */
/* Purpose:     set IEEE comms parameters                                     */
/* Inputs:      none                                                          */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::setIEEE(void)
{
    long status = 0;

    // SRQHandler is a global call back function
    status = viInstallHandler(instr, VI_EVENT_SERVICE_REQ, SRQHandler, uhandle);

    if(!status)
        status = viEnableEvent(instr, VI_EVENT_SERVICE_REQ, VI_HNDLR, VI_NULL);

    return status;
}

/******************************************************************************/
/* Function:    setTerminationChar                                            */
/* Author:      Alaster Jones                                                 */
/* Purpose:     set the termination character                                 */
/* Inputs:      bool state                                                    */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::setTerminationChar(bool bEnabled)
{
    long status = 0;

    // 0xA - newline
    // 0xD - carriage return
    // we'll default it to \n for now as this is widely the case
    //status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xA);
    status = viSetAttribute(instr, VI_ATTR_TERMCHAR, 0xD);

    if(!status)
        status = viSetAttribute(instr, VI_ATTR_TERMCHAR_EN, bEnabled);

    return status;
}

/******************************************************************************/
/* Function:    setTimeout                                                    */
/* Author:      Alaster Jones                                                 */
/* Purpose:     set the timeout value                                         */
/* Inputs:      long timeout                                                  */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::setTimeout(long timeout)
{
    return viSetAttribute(instr, VI_ATTR_TMO_VALUE, timeout);
}

/******************************************************************************/
/* Function:    closeCommunications                                           */
/* Author:      Alaster Jones                                                 */
/* Purpose:     close communications (viClose)                                */
/* Inputs:      none                                                          */
/* Outputs:     long status                                                   */
/******************************************************************************/
long cCommunications::closeCommunications(void)
{
    // not that bothered about default resource status
    viClose(defaultRM);
    return viClose(instr);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品网久久| 欧美二区在线观看| 成人精品视频网站| 国产夫妻精品视频| 国产成人精品综合在线观看| 国产一区美女在线| 国产精品影音先锋| 成人性视频免费网站| 国产成人免费视频网站高清观看视频 | 欧美成人免费网站| 日韩视频一区二区| 精品国产伦一区二区三区观看方式 | 久久伊人中文字幕| 久久美女艺术照精彩视频福利播放| 精品国产一区二区三区久久久蜜月| 欧美成人aa大片| 久久精品夜夜夜夜久久| 中文字幕在线不卡国产视频| 亚洲欧美另类小说视频| 天堂影院一区二区| 精品一区二区三区在线播放视频| 国产美女在线精品| 99re免费视频精品全部| 日本二三区不卡| 欧美一区永久视频免费观看| 日韩欧美高清在线| 国产日韩精品一区| 亚洲天堂a在线| 天天做天天摸天天爽国产一区| 久热成人在线视频| 懂色av一区二区三区免费看| 色综合久久88色综合天天 | 欧美国产日本韩| 亚洲欧美二区三区| 日韩精品免费专区| 国产毛片一区二区| 91亚洲国产成人精品一区二区三| 色老汉av一区二区三区| 日韩一区二区三区精品视频| 欧美极品aⅴ影院| 亚洲国产成人porn| 国产一区二区看久久| 色综合中文字幕| 日韩欧美电影一二三| 国产精品色一区二区三区| 五月激情丁香一区二区三区| 色国产精品一区在线观看| 91精品国产黑色紧身裤美女| 久久久精品tv| 三级精品在线观看| 成人丝袜18视频在线观看| 欧美日韩成人在线一区| 国产精品亲子乱子伦xxxx裸| 天天色天天操综合| 9i在线看片成人免费| 日韩一区二区在线观看视频| 亚洲欧美影音先锋| 久久国产视频网| 在线观看国产日韩| 亚洲国产精品v| 日本大胆欧美人术艺术动态| 99视频在线观看一区三区| 欧美另类久久久品| 亚洲天堂2014| 国产在线视频一区二区| 欧美日本一区二区在线观看| 国产精品久久久久国产精品日日| 男女视频一区二区| 欧美午夜寂寞影院| 国产精品乱码一区二区三区软件 | 色综合久久久久综合| 欧美精品一区二区久久久| 亚洲影院久久精品| gogo大胆日本视频一区| 久久久精品日韩欧美| 蜜桃av一区二区在线观看| 欧美优质美女网站| 亚洲视频网在线直播| 丁香婷婷综合激情五月色| 日韩欧美亚洲一区二区| 亚洲成人一区二区在线观看| 91丨九色丨蝌蚪丨老版| 国产欧美一区二区精品仙草咪| 青椒成人免费视频| 欧美精品少妇一区二区三区| 亚洲色欲色欲www| 成人综合婷婷国产精品久久免费| 91精品蜜臀在线一区尤物| 亚洲在线视频一区| 91美女精品福利| 亚洲欧美一区二区在线观看| 成人国产一区二区三区精品| 久久美女高清视频| 国产剧情av麻豆香蕉精品| 亚洲精品一区二区三区精华液| 蜜桃av一区二区三区电影| 日韩欧美国产三级| 精品夜夜嗨av一区二区三区| 日韩三级免费观看| 久久国产麻豆精品| 日韩精品一区二区三区蜜臀 | 国产一区欧美二区| 久久网站最新地址| 国产一区二区三区美女| 久久香蕉国产线看观看99| 韩国午夜理伦三级不卡影院| 日韩美女视频在线| 韩国女主播一区| 国产片一区二区三区| 成人免费av网站| 国产精品―色哟哟| 欧美成人r级一区二区三区| 久久精品久久久精品美女| 精品欧美久久久| 国产成人一区在线| 国产精品激情偷乱一区二区∴| 99久久精品免费观看| 亚洲日本在线看| 欧美日韩中文字幕一区| 奇米影视7777精品一区二区| 日韩免费高清av| 国产99一区视频免费| 国产精品毛片a∨一区二区三区| 99国产精品久| 亚洲午夜精品网| 欧美不卡在线视频| 成人免费av网站| 亚洲第一综合色| 欧美一区二区在线看| 国产精品911| 亚洲男人的天堂一区二区| 在线观看91av| 国产黄人亚洲片| 一区二区三区自拍| 制服丝袜一区二区三区| 国产一区福利在线| 亚洲色图都市小说| 欧美一二三区在线观看| 丁香婷婷综合色啪| 亚洲国产精品久久久久秋霞影院 | 一区二区三区小说| 91精品国产美女浴室洗澡无遮挡| 国产精品影音先锋| 亚洲福利视频三区| 国产亚洲女人久久久久毛片| 在线观看不卡一区| 久久精品国产一区二区三区免费看 | 亚洲人成亚洲人成在线观看图片 | 一区二区三区在线观看动漫| 日韩欧美国产三级| 91免费版在线| 国内外成人在线视频| 玉米视频成人免费看| 久久亚洲影视婷婷| 欧美中文字幕一区| 国产一区二区不卡| 亚洲va天堂va国产va久| 国产日本亚洲高清| 91精品国产麻豆国产自产在线| 成人国产精品免费网站| 蜜桃一区二区三区在线| 亚洲精品日韩综合观看成人91| 欧美成人伊人久久综合网| 91久久精品一区二区| 国产精品66部| 日产精品久久久久久久性色| 国产精品久久久久9999吃药| 欧美精品一区二区三区蜜臀| 欧美日韩视频在线第一区 | 91精品国产综合久久婷婷香蕉 | 国产成人综合网| 亚洲午夜免费福利视频| 中文字幕精品三区| 精品91自产拍在线观看一区| 在线精品视频免费播放| 成人一级黄色片| 久久成人免费电影| 亚洲成人午夜电影| 国内精品国产三级国产a久久| 亚洲综合成人网| 国产精品入口麻豆原神| 欧美成人性战久久| 欧美一级搡bbbb搡bbbb| 欧美性高清videossexo| 成人听书哪个软件好| 国产麻豆视频精品| 老司机免费视频一区二区| 亚洲成a人片在线观看中文| 亚洲欧洲日韩综合一区二区| 久久网站最新地址| 精品成人佐山爱一区二区| 欧美一二三区在线| 日韩三级电影网址| 6080亚洲精品一区二区| 欧美在线free| 欧美日韩一级黄| 欧美视频精品在线| 欧美日韩在线一区二区| 一本大道久久a久久精品综合| 97超碰欧美中文字幕|