/****************************************************************************/ /*! * @brief [接続]/[切断]ボタンを押したときにシリアルポートのオープン/クローズを行う. * * @param [in] sender イベントの送信元のオブジェクト. * @param [in] e イベント情報. * * @retval なし. */ private void connectButton_Click(object sender, EventArgs e) { if (serialPort1.IsOpen == true) { //! シリアルポートをクローズする. serialPort1.Close(); //! ボタンの表示を[切断]から[接続]に変える. connectButton.Text = "接続"; } else { //! オープンするシリアルポートをコンボボックスから取り出す. serialPort1.PortName = cmbPortName.SelectedItem.ToString(); //! ボーレートをコンボボックスから取り出す. BuadRateItem baud = (BuadRateItem)cmbBaudRate.SelectedItem; serialPort1.BaudRate = baud.BAUDRATE; //! データビットをセットする. (データビット = 8ビット) serialPort1.DataBits = 8; //! パリティビットをセットする. (パリティビット = なし) serialPort1.Parity = Parity.None; //! ストップビットをセットする. (ストップビット = 1ビット) serialPort1.StopBits = StopBits.One; //! フロー制御をコンボボックスから取り出す. HandShakeItem ctrl = (HandShakeItem)cmbHandShake.SelectedItem; serialPort1.Handshake = ctrl.HANDSHAKE; //! 文字コードをセットする. serialPort1.Encoding = Encoding.Unicode; //! 読み込みタイムアウト時間をセットする. //serialPort1.ReadTimeout = 10000; try { //! シリアルポートをオープンする. serialPort1.Open(); //! ボタンの表示を[接続]から[切断]に変える. connectButton.Text = "切断"; } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private void button1_Click(object sender, EventArgs e) { if (serialPort1.IsOpen == true) { //! シリアルポートをクローズする. serialPort1.Close(); //! ボタンの表示を[切断]から[接続]に変える. button1.Text = "接続"; } else { //! オープンするシリアルポートをコンボボックスから取り出す. serialPort1.PortName = comboBox1.SelectedItem.ToString(); //! ボーレートをコンボボックスから取り出す. BuadRateItem baud = (BuadRateItem)comboBox2.SelectedItem; serialPort1.BaudRate = baud.BAUDRATE; //! データビットをセットする. serialPort1.DataBits = int.Parse(textBox4.Text); //! パリティビットをセットする. (パリティビット = なし) serialPort1.Parity = Parity.None; //! ストップビットをセットする. (ストップビット = 1ビット) serialPort1.StopBits = StopBits.One; //! フロー制御をコンボボックスから取り出す. HandShakeItem ctrl = (HandShakeItem)comboBox3.SelectedItem; serialPort1.Handshake = ctrl.HANDSHAKE; //! 文字コードをセットする. serialPort1.Encoding = Encoding.ASCII; try { //! シリアルポートをオープンする. serialPort1.Open(); //! ボタンの表示を[接続]から[切断]に変える. button1.Text = "切断"; } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public Form1() { InitializeComponent(); textBox4.Text = "7"; //! 利用可能なシリアルポート名の配列を取得する. string[] PortList = SerialPort.GetPortNames(); comboBox1.Items.Clear(); button1.Text = "接続"; button2.Text = "送信"; button3.Text = "コード書き込み"; //! シリアルポート名をコンボボックスにセットする. foreach (string PortName in PortList) { comboBox1.Items.Add(PortName); } if (comboBox1.Items.Count > 0) { comboBox1.SelectedIndex = 0; } comboBox2.Items.Clear(); // ボーレート選択コンボボックスに選択項目をセットする. BuadRateItem baud; baud = new BuadRateItem(); baud.NAME = "4800bps"; baud.BAUDRATE = 4800; comboBox2.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "9600bps"; baud.BAUDRATE = 9600; comboBox2.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "19200bps"; baud.BAUDRATE = 19200; comboBox2.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "115200bps"; baud.BAUDRATE = 115200; comboBox2.Items.Add(baud); comboBox2.SelectedIndex = 1; comboBox3.Items.Clear(); // フロー制御選択コンボボックスに選択項目をセットする. HandShakeItem ctrl; ctrl = new HandShakeItem(); ctrl.NAME = "なし"; ctrl.HANDSHAKE = Handshake.None; comboBox3.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "XON/XOFF制御"; ctrl.HANDSHAKE = Handshake.XOnXOff; comboBox3.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "RTS/CTS制御"; ctrl.HANDSHAKE = Handshake.RequestToSend; comboBox3.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "XON/XOFF + RTS/CTS制御"; ctrl.HANDSHAKE = Handshake.RequestToSendXOnXOff; comboBox3.Items.Add(ctrl); comboBox3.SelectedIndex = 0; // 送受信用のテキストボックスをクリアする. textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); }
/****************************************************************************/ /*! * @brief ダイアログの初期処理. * * @param [in] sender イベントの送信元のオブジェクト. * @param [in] e イベント情報. * * @retval なし. */ private void Form1_Load(object sender, EventArgs e) { //! 利用可能なシリアルポート名の配列を取得する. string[] PortList = SerialPort.GetPortNames(); cmbPortName.Items.Clear(); //! シリアルポート名をコンボボックスにセットする. foreach (string PortName in PortList) { cmbPortName.Items.Add(PortName); } if (cmbPortName.Items.Count > 0) { cmbPortName.SelectedIndex = 0; } cmbBaudRate.Items.Clear(); // ボーレート選択コンボボックスに選択項目をセットする. BuadRateItem baud; baud = new BuadRateItem(); baud.NAME = "4800bps"; baud.BAUDRATE = 4800; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "9600bps"; baud.BAUDRATE = 9600; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "38400bps"; baud.BAUDRATE = 38400; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "115200bps"; baud.BAUDRATE = 115200; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "230400bps"; baud.BAUDRATE = 115200; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "460800bps"; baud.BAUDRATE = 115200; cmbBaudRate.Items.Add(baud); baud = new BuadRateItem(); baud.NAME = "921600bps"; baud.BAUDRATE = 115200; cmbBaudRate.Items.Add(baud); cmbBaudRate.SelectedIndex = cmbBaudRate.Items.Count - 1; cmbHandShake.Items.Clear(); // フロー制御選択コンボボックスに選択項目をセットする. HandShakeItem ctrl; ctrl = new HandShakeItem(); ctrl.NAME = "なし"; ctrl.HANDSHAKE = Handshake.None; cmbHandShake.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "XON/XOFF制御"; ctrl.HANDSHAKE = Handshake.XOnXOff; cmbHandShake.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "RTS/CTS制御"; ctrl.HANDSHAKE = Handshake.RequestToSend; cmbHandShake.Items.Add(ctrl); ctrl = new HandShakeItem(); ctrl.NAME = "XON/XOFF + RTS/CTS制御"; ctrl.HANDSHAKE = Handshake.RequestToSendXOnXOff; cmbHandShake.Items.Add(ctrl); cmbHandShake.SelectedIndex = 0; // 送受信用のテキストボックスをクリアする. rcvTextBox.Clear(); }