0

照会時に番号を送信することになっているUSBデバイスがあります。

私が持っている指示は次のとおりです。

  1. USBポートをPCに接続し、仮想シリアルポートを9600ボー、8データビット、パリティなし、1ストップビットで開きます。
  2. ESCを送信します(文字27だと思います)
  3. 確認応答として「>」が表示されます
  4. 「c」を送信すると、カウントの後に「<」が続きます

私はどこを見ても、ユニットからの応答を得る方法がわからないので、私が読んでいるものを理解してはいけません。

  1. 「ESC」キーを正しく送信していますか?
  2. 応答を適切に照会していますか?
  3. 想定される応答を正しく表示していますか?
  4. libusb調査する必要があるものはありますか?以前のバージョンの.NET用のライブラリだと思いました。

前もって感謝します。

これが私のコードです:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace SerialPortTest
{
public partial class Form1 : Form
{
    System.IO.Ports.SerialPort counter = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
    public Form1()
    {
        InitializeComponent();
    }

    private void btnWrite_Click_1(object sender, EventArgs e)
    {
        // Get a list of serial port names. 
        string[] ports = System.IO.Ports.SerialPort.GetPortNames();

        lblOut.Text = ("The following serial ports were found:");

        // Display each port name to the console. 
        txtOut.Clear();
        foreach (string port in ports)
        {
            txtOut.Text = (port);
        }
    }

    private void Form1_KeyDown_1(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.A)
        {
            //configuring the serial port
            //serialPort1.PortName = "COM5";
            //serialPort1.BaudRate = 9600;
            //serialPort1.DataBits = 8;
            //serialPort1.Parity = Parity.None;
            //serialPort1.StopBits = StopBits.One;

            //Open the serial port
            serialPort1.Open();

            //Write data to serial port
            serialPort1.Write(Keys.Escape.ToString());

            //Read data from serial port
            //string[] number;
            //counter.DataReceived += counter.ReadExisting();
            //counter.ReadLine();
            //new SerialDataReceivedEventHandler(counter_DataReceived);
            txtOut.Text = counter.ReadLine();

            //Close the serial port
            serialPort1.Close();
        }
    }

    //private static SerialDataReceivedEventHandler counter_DataReceived(object sender, SerialDataReceivedEventArgs e)
    //{
    //    //throw new NotImplementedException();
    //    SerialPort sp = (SerialPort)sender;
    //    string indata = sp.ReadExisting();
    //    return (sp.ReadExisting());
    //}
}

}

4

1 に答える 1