Цитата Сообщение от Новикова Маргарита Посмотреть сообщение
Добрый день!
Попробуйте пример во вложении.
Приветствую!
Мой код:
Код:
public static string OwenReadDiscreteInputs(string comPortNumber)
{
            /* 
             * Discrete Inputs Map:
             * Input #1 - Barrier Open State;
             * Input #2 - Barrier Close State;
             */
            byte[] discreteInputs = new byte[] { 0,0 };
            string barrierState = "0";

            SerialPortStreamAdapter port = new SerialPortStreamAdapter(comPortNumber, 9600, Parity.None, 8, StopBits.One);
            try
            {
                port.Open();
            }
            catch(System.IO.IOException)
            {
                string result = System.String.Format("Ошибка открытия порта {0}", comPortNumber);
                return result; 
            }

            var owenProtocol = OwenProtocolMaster.Create(port); 

            discreteInputs = owenProtocol.OwenRead(16, AddressLengthType.Bits8, "r.Cn");
            
            // Barrier Open/Closed State checking
            if((discreteInputs[1] & 0b00000001) == 0b00000001) // Barrier Open
            {
                barrierState = "Open";
            }
            else if((discreteInputs[1] & 0b00000010) == 0b00000010) // Barrier Closed
            {
                barrierState = "Closed";
            }

            // var discreteInputsString = ConverterAscii.ConvertBack(discreteInputs);
           
            owenProtocol.CloseSerialPort();
            owenProtocol.Dispose();
            
            return barrierState;

}
Ошибка в части
Код:
var owenProtocol = OwenProtocolMaster.Create(port);
так как данный метод использует
Код:
public static IOwenProtocolMaster Create(SerialPort serialPort, IPackageLogger logging = null);
(класс OwenProtocolMaster.cs) значение "SerialPort", мне необходимо заменить на "SerialPortStream". Использую фреймворк RJCP.IO.Ports вместо System.IO.Ports.

Как стоит поступить? Можно ли переписать класс OwenProtocolMaster.cs?

p.s. в с# я сосвем еще плох)