SerialPort
classはDataReceivedイベントを有する:
データがSERIALPORTオブジェクトによって表されるポートを介して受信されたことを示します。
マニュアルは、次のC++/CLIの例を提供します。パラメータとして通信ポートの名前で
#using <System.dll>
using namespace System;
using namespace System::IO::Ports;
ref class PortDataReceived
{
public:
static void Main()
{
SerialPort^ mySerialPort = gcnew SerialPort("COM1");
mySerialPort->BaudRate = 9600;
mySerialPort->Parity = Parity::None;
mySerialPort->StopBits = StopBits::One;
mySerialPort->DataBits = 8;
mySerialPort->Handshake = Handshake::None;
mySerialPort->RtsEnable = true;
mySerialPort->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceivedHandler);
mySerialPort->Open();
Console::WriteLine("Press any key to continue...");
Console::WriteLine();
Console::ReadKey();
mySerialPort->Close();
}
private:
static void DataReceivedHandler(
Object^ sender,
SerialDataReceivedEventArgs^ e)
{
SerialPort^ sp = (SerialPort^)sender;
String^ indata = sp->ReadExisting();
Console::WriteLine("Data Received:");
Console::Write(indata);
}
};
int main()
{
PortDataReceived::Main();
}
のCreateFileはあなたにハンドルを与える必要があります。 –
ようこそStackOverflowへ。 ['SerialPort'のドキュメント(https://msdn.microsoft.com/en-us/library/system.io.port.serialport.aspx)を読むと、[DataReceived](https ://msdn.microsoft.com/en-us/library/system.io.port.serialport.datareceived.aspx)event: "* SerialPortオブジェクトによって表されるポートを通じてデータが受信されたことを示します。*" –
@レミーそれはC++ではなく、C++/CLIです。 –