Member 11830380 Ответов: 1

Прочитать значение из веся машины к компьютеру В С#


Привет, я хочу считывать значения от весовой машины к системе, теперь я получаю значение от взвешивания, но не правильно. Последние 2 числа не отображаются в системе.

Кодирование:

        private void waitbridge2_Load(object sender, EventArgs e)
        {
            timer1.Start();
            timer1.Interval = 1000;  
        }
private void timer1_Tick(object sender, EventArgs e)
        {
            SerialPort sp = new SerialPort();
            sp.PortName = "COM1";
            sp.BaudRate = 2400;
            sp.Parity = Parity.None;
            sp.StopBits = StopBits.One;
            sp.RtsEnable = true;
            sp.DtrEnable = true;
            sp.Open();
            txtweight.Text = sp.ReadLine().ToString();
            Regex digits = new Regex(@"^\D*?((-?(\d+(\.\d+)?))|(-?\.\d+)).*");
            Match mx = digits.Match(txtweight.Text);
            decimal strValue1 = mx.Success ? Convert.ToDecimal(mx.Groups[1].Value) : 0;
            txtweight.Text = strValue1.ToString();
            sp.Close();
        }


Что я уже пробовал:

Получение полной стоимости от весовой машины к компьютеру

F-ES Sitecore

Вам нужно будет сказать, что возвращается из "sp. ReadLine ().ToString ()", помните, что мы не можем получить доступ к вашей системе, поэтому мы не знаем, как выглядят ваши данные.

Philippe Mori

Покажите пример данных, значение, которое вы получаете, и ожидаемое.

1 Ответов

Рейтинг:
0

Richard MacCutchan

decimal strValue1 = mx.Success ? Convert.ToDecimal(mx.Groups[1].Value) : 0;
txtweight.Text = strValue1.ToString();

Почему вы преобразуете строку в десятичную, просто чтобы преобразовать ее обратно в строку?

Вы должны использовать свой отладчик, чтобы пройти через код и посмотреть, что возвращается из COM-порта.