サンプルプログラム > DIO >

Visual C++

オブジェクト

テキストボックス ID メンバ変数
ID番号 IDC_ID m_wID
入力No. IDC_INPUT_NO m_wInputNo
出力No. IDC_OUTPUT_NO m_wOutputNo
出力データ IDC_OUTPUT_DATA m_byOutData

オープン

if( !UpdateData( TRUE ) ) {
    return;
}

int nResult;

nResult = PmcmOpen( m_wID, "PMC-M2C-U" );
if( nResult == PMCM_RESULT_SUCCESS ) {
    AfxMessageBox( "オープン成功", MB_OK | MB_ICONINFORMATION );
} else {
    AfxMessageBox( "オープン失敗", MB_OK | MB_ICONSTOP );
}

設定

int nResult;
WORD wAxis;
char szResult[64];

wAxis = PMCM_AXIS_X + PMCM_AXIS_Y;

// 汎用デジタル入力として使用する場合はINPとPCSをオンで検知(負論理)に設定
nResult = PmcmSetSensorConfig( m_wID, wAxis, PMCM_LOGIC, 0x30 );
if( nResult != PMCM_RESULT_SUCCESS ) {
    wsprintf( szResult, "PmcmSetSensorConfig ERROR : 0x%X", nResult );
    AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
    return;
}

// 汎用デジタル入力として使用する場合はLTCを立ち下がりエッジに設定
nResult = PmcmSetSensorConfig( m_wID, wAxis, PMCM_LTC_FUNC, 0 );
if( nResult != PMCM_RESULT_SUCCESS ) {
    wsprintf( szResult, "PmcmSetSensorConfig ERROR : 0x%X", nResult );
    AfxMessageBox( szResult, MB_OK | MB_ICONSTOP );
    return;
}

入力

if( !UpdateData( TRUE ) ) {
    return;
}

int nResult;
BYTE byData;
char szInResult[64];

nResult = PmcmDioInput( m_wID, &byData, m_wInputNo, 1 );
if( nResult == PMCM_RESULT_SUCCESS ) {
    wsprintf( szInResult, "入力データ: %d", byData );
    AfxMessageBox( szInResult, MB_OK | MB_ICONINFORMATION );
} else {
    wsprintf( szInResult, "PmcmDioInput ERROR : 0x%X", nResult );
    AfxMessageBox( szInResult, MB_OK | MB_ICONSTOP );
}

出力

if( !UpdateData( TRUE ) ) {
    return;
}

int nResult;
char szOutResult[64];

nResult = PmcmDioOutput( m_wID, &m_byOutData, m_wOutputNo, 1 );
if( nResult == PMCM_RESULT_SUCCESS ) {
    AfxMessageBox( "出力正常終了", MB_OK | MB_ICONINFORMATION );
} else {
    wsprintf( szOutResult, "PmcmDioOutput ERROR : 0x%X", nResult );
    AfxMessageBox( szOutResult, MB_OK | MB_ICONSTOP );
}

クローズ

BOOL bResult;

bResult = PmcmClose( m_wID );