Я использую функцию, чтобы найти мое устройство на соответствующем последовательном COM-порту, который посылает через него букву «А», чтобы я мог узнать его с помощью своего приложения WPF. То, что я пытаюсь сделать, это использовать переменную SerialPort через все мои пустоты ..
private string CheckPort(){
string[] listPort = SerialPort.GetPortNames();
foreach (string namePort in listPort){
SerialPort port = new SerialPort(namePort, 9600);
if(!port.IsOpen){
port.Open();
string data = port.ReadTo("\r\n");
if (data == "A"){
port.Write("777"); //to make it stop sending "A"
return namePort;
}
}
}
}
public MainWindow(){
string target = CheckPort();
SerialPort port = new SerialPort(target, 9600);
InitializeComponent();
}
private void Button_ClickClose(object sender, RoutedEventArgs e){
blablabla
port.ReadTo("\r\n"); // port doesn't exist in the current context
port.Write("hey");
}
Так есть ли способ, которым я могу сохранить свою «функцию» CheckPort и иметь возможность использовать мой «порт» ?