Код: Выделить всё
private void Weighing_Load(object sender, EventArgs e)
{
string[] availablePorts = SerialPort.GetPortNames();
if (!availablePorts.Contains(comPort))
{
MessageBox.Show("Make sure the printer is connected to COM1.", "Serial
Port Not Found", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
return;
}
// Close and dispose of any existing serial port
if (_serialPort != null && _serialPort.IsOpen)
{
_serialPort.Close();
}
if (_serialPort != null)
{
_serialPort.Dispose();
}
// Create and configure a new SerialPort object
_serialPort = new SerialPort(comPort, BaudRate, Parity.None, 8,StopBits.One);
_serialPort.DataReceived += SerialPortOnDataReceived;
try
{
_serialPort.Open(); // Open the serial port
}
catch (Exception ex)
{
MessageBox.Show("Error opening the serial port: " + ex.Message, "Serial
Port Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void SerialPortOnDataReceived(object sender,
SerialDataReceivedEventArgs serialDataReceivedEventArgs)
{
if (InvokeRequired) // { SerialPortOnDataReceived(sender,
serialDataReceivedEventArgs); })); //= str.Length)
{
// Handle the error here, such as by logging the error or displaying
a message to the user
return;
}
int endIndex = str.IndexOf("k", startIndex);
if (endIndex < 0 || endIndex > str.Length)
{
// Handle the error here, such as by logging the error or displaying
a message to the user
return;
}
string weightStr = str.Substring(startIndex, endIndex - startIndex);
//test display
//MessageBox.Show(weightStr);
// Trim the "k" character from the weight measurement
weightStr = weightStr.TrimEnd('k');
// Display the weight measurement and "S S" tag in the label
weight_label.Text = $"{weightStr} kg";
weightStr = str.Substring(startIndex, endIndex - startIndex - 1);
current_weight =weightStr;
current_weight = float.Parse(weightStr);
using (StreamWriter writer = new StreamWriter("log_weight.txt", true))
{
writer.WriteLine(weightStr);
writer.Flush();
}
}
}
Код: Выделить всё
S D 2.535 kg
S D 2.535 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S S 2.534 kg
S D 2.575 kg
S D 2.555 kg
S S 2.570 кг
S D 2,565 кг
S D 2,535 кг
S D
2.
535 кг
S D
2,540
кг
S
D
2,550 кг
S
D
2,5
50 кг
S
D 2.
595 кг
S
D 2.
610 кг
S
D 2.
620 кг
S
D
2,625 кг
S
D 2,6
30 кг
S
D
2,630 кг
г
S
D 2,6
25 кг
S
D 2.
620 кг
S
D 2.
600 кг
S
D 2
.615 кг
S
D
2,575 кг
г
S
D 2
,565 кг
S D
2,555
кг
S
D
2,545
кг
S
D 2
.535 кг
S D
2.535
кг
S
D 2.
535 кг
S
D 2.
535 кг
S D
2,54
5 кг
S
D 2.
560 кг
S
D
2,555 кг
г
S
D 2.
555 кг
S
D
2,550 кг
S D
2,550
кг
S
D 2,5
50 кг
S
D 2,5
45 кг
S
D 2,4
75 кг
S
D
2,45
5 кг
S
D 2
.490 кг
S D
2,4
50 кг
S
D
2,355 кг
S
D 1.
615 кг
S
D 1.
425 кг
S
D 1.
405 кг
S
D 1
.410 кг
Мне нужна помощь, как обрабатывать такие данные, спасибо!
Подробнее здесь: https://stackoverflow.com/questions/784 ... in-c-sharp