我已經開發了使用C#.Net從稱重橋機器獲取重量的應用程序。我嘗試了很多方法,但是,沒有從稱重橋機讀取正確的數據格式重量。我得到的輸出喜歡從串口規模獲取文本框中的所需輸出
00000001Kg00000001B00000001B00000001B00000001B00000001B00000001B00000001B
從串行port.i不斷得到想從稱重橋架整機重量我的代碼如下:
private void Form1_Load(object sender, EventArgs e)
{
string[] portNames = SerialPort.GetPortNames();
foreach (var portName in portNames)
{
comboBox1.Items.Add(portName);
}
comboBox1.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (_serialPort != null && _serialPort.IsOpen)
_serialPort.Close();
if (_serialPort != null)
_serialPort.Dispose();
_serialPort = new SerialPort(comboBox1.Text, BaudRate, Parity.None, 8, StopBits.One);
_serialPort.DataReceived += SerialPortOnDataReceived;
_serialPort.Open();
textBox1.Text = "Listening on " + _serialPort.PortName + "...\r\n";
}
private delegate void Closure();
private void SerialPortOnDataReceived(object sender, SerialDataReceivedEventArgs serialDataReceivedEventArgs)
{
if (InvokeRequired)
BeginInvoke(new Closure(() => { SerialPortOnDataReceived(sender, serialDataReceivedEventArgs); }));
else
{
int dataLength = _serialPort.BytesToRead;
byte[] data = new byte[dataLength];
int nbrDataRead = _serialPort.Read(data, 0, dataLength);
if (nbrDataRead == 0)
return;
string str = System.Text.Encoding.UTF8.GetString(data);
textBox1.Text += str.ToString();
}
}
我怎麼能拿正確的體重保存到我的數據庫?爲了得到正確的重量它必須像
00000001公斤
實時並根據電子秤的重量變化本身。
你肯定沒有在數據中的任何控制字符?我假設這是串行端口尺度在測量之間發送的數據,以便能夠正確處理數據。 –
不,我不確定,但它總是給我不斷接收字符串,因爲我上面顯示...最重要的是我沒有解決這個 – mynameiskhan
所以,也許你應該再檢查它?我們不能爲你做到這一點。 –