2014-12-16 3 views
-2

Я пытаюсь реорганизовать/обновить некоторые устаревшие серийные коды. У меня есть это:Почему это имя порта считается несуществующим?

private SerialPort cereal; 
private String receivedData; 

private FileXferLegacy() 
{ 
    cereal = new SerialPort("COM1", 9600); 
    cereal.PortName = "7727"; 
    cereal.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 
    // Is this just as well, as the elided part is grayed out above?: cereal.DataReceived += port_DataReceived; 
} 

... но я получаю Сообщение об ошибке «порт„7727“: не существует», когда я пытаюсь подключиться и отправить пинг:

public void SendDataContentsAsXML(string destinationPath, string XMLData) 
{ 
    byte[] stuff; 
    ExceptionLoggingService.Instance.WriteLog("Reached FileXferLegacy.SendDataContentsAsXML"); // <= This is written to the log file 
    cereal.Open(); 
    stuff = System.Text.UTF8Encoding.UTF8.GetBytes("PING" + "\n"); 
    cereal.Write(stuff, 0, stuff.Length); 
    stuff = System.Text.UTF8Encoding.UTF8.GetBytes(XMLData + "\n"); 
    cereal.Write(stuff, 0, stuff.Length); 
} 

7727 - тот же порт, который успешно используется в устаревшем приложении.

Я вижу, что есть двоеточие, добавленное и задающееся вопросом, является ли это проблемой - почему он видит «7727:» вместо простого старого «7727», и как я могу это исключить из понятия если это действительно проблема?

ответ

1

Потому что PortName относится к имени последовательного порта, а не к номеру порта. В своем коде вы создаете ваш SerialPort объект

cereal = new SerialPort("COM1", 9600); 

Так COM1 уже назначен PortName. Ваше следующее утверждение просто переопределяет его излишне и неправильно.

+0

Итак, как я могу установить порт (а не имя последовательного порта, но порт для отправки данных)? Унаследованное приложение использует 7727, поэтому должен быть способ сделать это, но я не вижу вероятного свойства в классе SerialPort. –

+1

Существует не такая штука, как номер порта для последовательных портов. Последовательные порты предназначены для односторонних сквозных соединений и поэтому не имеют понятия номеров портов; это для соединений TCP/UDP. –

Смежные вопросы