Member 13430184 Ответов: 1

Получение данных из последовательного порта


Я пытаюсь получить измерение от источника питания Agilent E3634, но я получаю эту ошибку (-440 запрос UNTERMINATED после неопределенного ответа)

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

это мой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Management;
using System.IO.Ports;
using System.IO;

namespace ConsoleApplication1
{
    class PortDataReceived
    {
        public static void Main()
        {
            SerialPort mySerialPort = new SerialPort("COM1");
            mySerialPort.BaudRate = 9600;
            mySerialPort.Parity = Parity.None;
            mySerialPort.StopBits = StopBits.Two;
            mySerialPort.DataBits = 8;
            mySerialPort.Handshake = Handshake.None;
            mySerialPort.RtsEnable = true;
            mySerialPort.ReadTimeout = 1000;

            mySerialPort.Open();

            mySerialPort.WriteLine("MEAS:VOLT?");
            Thread.Sleep(750);

            string voltagevalue = mySerialPort.ReadExisting();
            Console.WriteLine(voltagevalue);

            mySerialPort.Close();
        }
    }
}

1 Ответов

Рейтинг:
0

OriginalGriff

На первый взгляд-и это все, что может быть без доступа к оборудованию - сообщение об ошибке говорит о том, что вы не завершили запрос должным образом, возможно, с новой строкой или чем-то подобным?

Не прыгайте в код: существует слишком много потенциальных источников проблем. Вместо этого начните с чего-то вроде HyperTerminal и сначала установите надежную связь: введите свою команду "MEAS:VOLT?" в HT и посмотрите, что вернется. Когда у вас есть надежная связь (и руководство по устройству поможет здесь), вы можете начать автоматизировать процесс с помощью кода: но пока вы не знаете именно так начнем с того, что вы сталкиваетесь со слишком большим количеством неизвестных, чтобы достичь чего-либо в разумные сроки. И большинство описаний коммуникаций в руководствах слишком открыты для интерпретации (или просто пропускают что-то).

Я бы также заглянул на сайт производителя и посмотрел, есть ли какой - нибудь пример кода-это может быть хорошей отправной точкой, потому что он должен работать "прямо из коробки".