Я пытаюсь написать программу, которая может читать входные данные из текущего масштаба (Mettler Toldeo pg802-S), который я подключил через COM1.В текущем коде я могу перечислить все предлагаемые COM, но у меня возникают проблемы с отображением их в списке, когда их толкает шкала.
Шкала находится на COM1, поэтому Я пытаюсь получить данные, которые нажимает шкала.Используя WinWedge , я могу получить результаты для отправки, используя Com1, скорость 2400 бод, четность, семь битов данных, 1 стоповый бит, отсутствие управления потоком, размер входного буфера 1024 и размер выходного буфера 512.Как я могу получить данные таким образом?
using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
namespace SerialPortWrite{
class GetSerialData{
static void Main(string[] args){
Form1 form1 = new Form1();
form1.ShowDialog();
Console.WriteLine("Program Started For COM1...");
// List all COMS
ListComPorts();
// Read this COM.
var reader = new ArduinoSerialReader("COM1");
// Read COM input.
Console.ReadLine();
}
static void ListComPorts(){
// Get a list of port names.
string[] ports = SerialPort.GetPortNames();
Console.WriteLine("The following serial ports were found:");
// Get all COM ports to list out.
foreach (string port in ports){
Console.WriteLine(port);
}
}
}
// Get input.
public class ArduinoSerialReader : IDisposable{
private SerialPort _serialPort;
public ArduinoSerialReader(string portName){
_serialPort = new SerialPort(portName);
_serialPort.Open();
_serialPort.DataReceived += serialPort_DataReceived;
}
void serialPort_DataReceived(object s, SerialDataReceivedEventArgs e){
Console.WriteLine(_serialPort.ReadLine());
}
public void Dispose(){
if (_serialPort != null){
_serialPort.Dispose();
}
}
}
}