По этой фильтрации MAC-адресов и отображение в TextBox или ListBox элемент без дублирования

Автор:editor

По этой фильтрации MAC-адресов и отображение в TextBox или ListBox элемент без дублирования

Цитата: Aashram

Я работаю над инструментом, который подключен к Bluetooth-приемник и просканировать и получить MAC-адрес BLE устройства. Пока я могу сканировать и MAC-адрес постоянно отображаться в текстовом поле. У меня проблема с фильтрацией MAC-адрес?(Наш назначенный MAC-адрес 88 99 66 55 4х ХХ последние 12 бит для свободного использования). Как я могу отфильтровать при сканировании и положил его в ListBox или TextBox для последующего использования.

Любое предложение или помощь будет оценили.

Code:
 using System;using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using System.Text.RegularExpressions; using System.Threading;

namespace Serial_Events {
public partial class Form1 : Form
{


//MessageSend comm = new MessageSend();


string transType = string.Empty;


public SerialPort serialport;


private bool buttonWasClicked = false;





public Form1()


{



InitializeComponent();




foreach (string s in SerialPort.GetPortNames())



{




cmPort.Items.Add(s);



}



}


public void serialport_connect(String port, int baudrate)


{



DateTime dt = DateTime.Now;



String dtn = dt.ToShortTimeString();




serialport = new SerialPort(port, baudrate);




try



{




serialport.Open();





textBox1.AppendText(" OPEN " + "[" + dtn + "] " + " Port Opened: Connected\n");





// Event Handler




serialport.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);



}



catch (Exception ex)



{




MessageBox.Show(ex.ToString(), "Error");



}


}



private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)


{








DateTime dt = DateTime.Now;



String dtn = dt.ToShortTimeString();



//TextBox.CheckForIllegalCrossThreadCalls = false;



if (buttonWasClicked == true)



{




ThreadSafeDelegate(delegate { ScanList.Items.Add(serialport.ReadExisting()); });




//ThreadSafeDelegate(delegate { textBox3.Text += "\r\n"; });



}



else



{




ThreadSafeDelegate(delegate { textBox1.AppendText(serialport.ReadExisting()); });




ThreadSafeDelegate(delegate { textBox1.Text += "\r\n"; });




//textBox1.AppendText(serialport.ReadExisting());




//textBox1.Text += "\r\n";



}






}


private void button1_Click(object sender, EventArgs e)


{




byte[] msg = ASCIIEncoding.ASCII.GetBytes(textBox2.Text + "9854320");




serialport.Write(msg, 0, msg.Length);










}


private void button2_Click(object sender, EventArgs e)


{



String port = cmPort.Text;



int baudrate = Convert.ToInt32(cmBaud.Text);



//Parity parity = (Parity)Enum.Parse(typeof(Parity), cmbparity.Text);



//int databits = Convert.ToInt32(cmbdatabits.Text);



//StopBits stopbits = (StopBits)Enum.Parse(typeof(StopBits), cmbstopbits.Text);



button3.Enabled = true;



serialport_connect(port, baudrate);


}


private void button3_Click(object sender, EventArgs e)


{



DateTime dt = DateTime.Now;



String dtn = dt.ToShortTimeString();




if (serialport.IsOpen)



{




serialport.Close();




button3.Enabled = false;




button2.Enabled = true;




textBox1.AppendText("[" + dtn + "] " + "Port Close: Disconnected\n");



}


}





private void btnClear_Click(object sender, EventArgs e)


{



textBox1.Text = "";


}


private void ThreadSafeDelegate(MethodInvoker method)


{



if (InvokeRequired)




BeginInvoke(method);



else




method.Invoke();


}


private void Scan_Click(object sender, EventArgs e)


{



buttonWasClicked = true;




byte[] msg = ASCIIEncoding.ASCII.GetBytes( "SNS10" + "9854320");




serialport.Write(msg, 0, msg.Length);


}
} }

Об авторе

editor administrator