// Copyright 2005 Doi Shigeki // list0501.cpp LEDの点滅、スイッチのエコー // 〜COMポートの制御線を使った外部制御の基礎 // #include #include #include main() { HANDLE h; DWORD x; int i; printf("COMポートのテスト1\n"); h = CreateFile( "COM4", // ポート名 0, 0, // アクセスモード,非共有 0, // セキュリティ属性,使用しない OPEN_EXISTING, // 既存ファイルのオープン 0, 0 ); // 属性,テンプレート if( h == INVALID_HANDLE_VALUE ){ printf("COMポートがオープンできません\n"); return 0; } printf("点滅動作\n"); for( i = 0 ; i< 10 ; i++ ){ // 10回点滅,周期1秒 printf( "%d \n", i ); EscapeCommFunction( h, CLRRTS ); EscapeCommFunction( h, CLRDTR ); Sleep( 500 ); // 時間待ち 500ミリ秒 EscapeCommFunction( h, SETRTS ); EscapeCommFunction( h, SETDTR ); Sleep( 500 ); // 時間待ち 500ミリ秒 } printf("エコー動作\n"); while( 1 ){ GetCommModemStatus( h, &x ); if( x & MS_CTS_ON ) EscapeCommFunction( h, SETRTS ); else EscapeCommFunction( h, CLRRTS ); if( x & MS_DSR_ON ) EscapeCommFunction( h, SETDTR ); else EscapeCommFunction( h, CLRDTR ); if ( kbhit() ) break; } CloseHandle( h ); // デバイスのクローズ }