xasax04042016/11/24 05:03実際にmain内でオープンしたCOMポートのイベントを拾おうとしていますが、上手くいきません。 COMポートのオープン //BluetoothCOMポートのオープン(main) HANDLE Rs232c1 = CreateFile( TEXT("\\\\.\\COM11"), /* 通信デバイスの名前のアドレス */ GENERIC_READ | GENERIC_WRITE, /* アクセス (読み取りおよび書き込み) モード */ 0, /* 共有モード */ NULL, /* セキュリティ記述子のアドレス */ OPEN_EXISTING, /* 作成方法 */ 0, /* ファイル属性 */ NULL /* コピーする属性付きファイルのハンドル */ ); if (Rs232c1 == INVALID_HANDLE_VALUE) { printf("RS232C CreateFile Error\n"); } イベント受け取り(form) serialPort1->PortName = "COM11"; //COM4 ポート使用 serialPort1->BaudRate = 9600; //9600bps serialPort1->Parity = System::IO::Ports::Parity::None; //パリティなし serialPort1->DataBits = 8; //データ長 8ビット serialPort1->StopBits = System::IO::Ports::StopBits::One; //ストップビット 1 serialPort1->NewLine = "\r\n";//ReadLine(),WriteLine()が末尾と判断する値の設定 //\r\n:defalut Windows \n: Unix //serialPort1->Open(); 二重にオープンするとエラーが出るため消したが、そうするとイベントが起こらない serialPort1->DtrEnable = true; //DTR(Data Terminal Ready) データ端末レディ serialPort1->RtsEnable = true; //RTS(Request To Send) 送信要求 serialPort1->ReadTimeout = 500; //500mse 読み込みタイムアウト時間 serialPort1->WriteTimeout = 500; //500msec書き込みタイムアウト時間
episteme2016/11/24 05:16なにが問題なのか把握できませんごめんなさい。 僕は「mainがオープンしたCOMポートのハンドルなりなんなりをformのコンストラクタに渡してしまえば、以後formがそのCOMポートを扱えるハズ」と答えました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/24 05:03
2016/11/24 05:16