BMTuneSource/frmBluetooth.cs

1176 lines
40 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO.Ports;
using System.Collections.Generic;
using System.Windows.Forms;
public partial class frmBluetooth : Form
{
//private bool JDY31 = false;
public SerialPort serial; //Create a new serial slot
public List<string> AvailablePorts = new List<string>(); //Available COM Ports List
public bool SerialConnected = false; //is serial connected ?
public bool IsReceiving = false;
public bool HasBTInfos = false;
public bool CopiedInfos = false;
public System.Windows.Forms.Timer SerialTimer = new System.Windows.Forms.Timer();
private static string[] Read = new string[] { "", "", "", "", "", "" };
public bool InfosReading = false;
public int InfosState = 0;
public int CurrentAutoProgramTime = 0;
public int CurrentAutoProgramTime2 = 0;
public frmBluetooth()
{
InitializeComponent();
GetPortName();
//comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 2;
//comboBox3.SelectedIndex = 0;
SerialTimer.Interval = 100;
SerialTimer.Tick += Loop;
SerialTimer.Start();
comboBox4.SelectedIndex = 0;
/*foreach (Control control in base.Controls)
{
float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
}*/
}
public void Loop(object sender, EventArgs e)
{
//SerialTimer.Interval = 5000;
//SerialConnect();
//GetPortName();
if (checkBoxAutoProgram.Checked)
{
CurrentAutoProgramTime2++;
if (CurrentAutoProgramTime2 >= 10)
{
CurrentAutoProgramTime++; //1sec has passed
CurrentAutoProgramTime2 = 0;
}
if (CurrentAutoProgramTime >= (int) numericUpDown1.Value)
{
//#######################
//Read Adapter infos
//MessageBox.Show(Form.ActiveForm, "Reading Bluetooth Adapter infos...", "BMTune");
/*ClearInfos();
InfosState = 0;
InfosReading = true;*/
//#######################
//Set Adapter as Slave
//MessageBox.Show(Form.ActiveForm, "Setting Bluetooth Adapter as Slave...", "BMTune");
LogsBT("Autoprogramming adapter...");
ClearInfos();
SetSettings(true);
System.Media.SoundPlayer snd = new System.Media.SoundPlayer(Properties.Resources.alert2);
snd.Play();
LogsBT("Autoprogramming adapter done!");
//MessageBox.Show(Form.ActiveForm, "Bluetooth Adapter Set as Slave!", "BMTune");
//#######################
CurrentAutoProgramTime = 0;
CurrentAutoProgramTime2 = 0;
}
}
if (SerialConnected)
{
button2.Text = "Stop";
this.Text = "Bluetooth Programmer - " + comboBox1.Text + " Connected";
/*while (serial.BytesToRead > 0)
{
byte This = ReadByte();
textBox3.AppendText("0x" + This.ToString("X2") + ",");
textBox4.AppendText(Convert.ToChar(This).ToString() + ",");
textBox7.AppendText(((int)This).ToString() + ",");
IsReceiving = true;
}
if (IsReceiving)
{
textBox3.AppendText(Environment.NewLine);
textBox4.AppendText(Environment.NewLine);
textBox7.AppendText(Environment.NewLine);
IsReceiving = false;
}*/
if (InfosReading)
{
if (InfosState == 0)
{
SendStringCommand("AT+NAME");
serial_ReadBack("Get Name");
serial_ReadBack("Get Name #2");
InfosState++;
}
else if (InfosState == 1)
{
SendStringCommand("AT+VERSION");
serial_ReadBack("Get Version");
serial_ReadBack("Get Version #2");
InfosState++;
}
else if (InfosState == 2)
{
SendStringCommand("AT+ROLE");
serial_ReadBack("Get Role");
serial_ReadBack("Get Role #2");
InfosState++;
}
else if (InfosState == 3)
{
SendStringCommand("AT+ADDR");
serial_ReadBack("Get Addr");
serial_ReadBack("Get Addr #2");
InfosState++;
}
else if (InfosState == 4)
{
SendStringCommand("AT+PSWD");
serial_ReadBack("Get Pswd");
serial_ReadBack("Get Pswd #2");
InfosState++;
}
else if (InfosState == 5)
{
SendStringCommand("AT+UART");
serial_ReadBack("Get Uart");
serial_ReadBack("Get Uart #2");
InfosState++;
}
else if (InfosState == 6)
{
SendStringCommand("AT+BIND");
serial_ReadBack("Get Bind");
serial_ReadBack("Get Bind #2");
InfosState++;
}
else if (InfosState == 7)
{
HasBTInfos = true;
InfosReading = false;
InfosState = 0;
}
}
}
else
{
button2.Text = "Start";
this.Text = "Bluetooth Programmer";
}
}
private bool CheckConnected()
{
bool IsFinallyConnected = false;
try
{
if (serial != null)
{
if (serial.IsOpen)
{
IsFinallyConnected = true;
//serial.Close();
//serial.Dispose();
}
else
{
SerialConnected = false;
button2.Text = "Connect";
}
}
else
{
SerialConnected = false;
button2.Text = "Connect";
}
}
catch
{
SerialConnected = false;
button2.Text = "Connect";
}
return IsFinallyConnected;
}
private void SendStringCommand(string ThisStr)
{
try
{
//This function serve to retreive bluetooth adapter infos
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "?\r";
if (CheckConnected()) serial.WriteLine(ThisStr + CommandEnd);
}
catch { }
}
private void SendStringCommandParameter(string ThisStrCMD, string ThisStrParameters)
{
try
{
//This function serve to apply bluetooth adapter parameters
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
if (CheckConnected()) serial.WriteLine(ThisStrCMD + CommandEqual + ThisStrParameters + CommandEnd);
}
catch { }
}
private void SerialConnect()
{
//Close before Setting Values
if (serial != null)
{
if (serial.IsOpen)
{
serial.Close();
serial.Dispose();
}
}
if (AvailablePorts.Count > 0)
{
try
{
if (serial != null)
{
if (serial.IsOpen) serial.Close();
serial.Dispose();
serial = null;
}
serial = new SerialPort();
serial.PortName = AvailablePorts[comboBox1.SelectedIndex];
serial.ReadTimeout = 1500;
serial.WriteTimeout = 800;
serial.BaudRate = int.Parse(comboBox2.Text);
serial.Open();
SerialConnected = true;
button2.Text = "Close";
InfosState = 0;
InfosReading = true;
//ReadInfos();
/*if (TryConnectAdapter())
{
SerialConnected = true;
button2.Text = "Close";
ReadInfos();
}*/
}
catch { }
}
}
public bool TryConnectAdapter()
{
//try0 = user default settings
//try1 = 38400 test
//try2 = 9600 test
int BTTest = 0;
comboBox4.SelectedIndex = 0;
while (BTTest < 3)
{
if (serial != null)
{
if (serial.IsOpen)
{
serial.Close();
serial.Dispose();
}
}
serial = null;
serial = new SerialPort();
serial.PortName = AvailablePorts[comboBox1.SelectedIndex];
//serial.ReadTimeout = 800;
//serial.WriteTimeout = 400;
serial.ReadTimeout = 250;
serial.WriteTimeout = 200;
if (BTTest == 0) serial.BaudRate = int.Parse(comboBox2.Text);
if (BTTest == 1) serial.BaudRate = 38400;
if (BTTest == 2) serial.BaudRate = 9600;
serial.Open();
serial.DiscardInBuffer();
serial.DiscardOutBuffer();
LogsBT("Trying on baudrate: " + serial.BaudRate);
//+BAUD=6
//OK
string str = "";
serial.WriteLine("AT\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str == "")
{
serial.Write("AT?\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str.Contains("OK")) comboBox4.SelectedIndex = 2;
}
if (str == "")
{
serial.Write("AT?\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
}
if (str == "")
{
serial.Write("AT\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
}
/*if (str == "")
{
serial.Write("AT+VERSION\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
}
if (str == "")
{
serial.Write("AT+VERSION?\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
}
if (str == "")
{
serial.Write("AT+VERSION?\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
}*/
if (str.Contains("OK"))
//if (str != "")
{
if (BTTest == 1)
{
comboBox2.Text = "38400";
}
if (BTTest == 2)
{
bool BaudChanged = false;
comboBox2.Text = "9600";
MessageBox.Show(Form.ActiveForm, "We detected that the default baudrate is set at 9600!\n\nBMTune will try to set the baudrate to 38400", "BMTune");
serial.WriteLine("AT+BAUD6\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str.Contains("+BAUD="))
{
Read[4] = str.Replace("+BAUD=", "");
if (Read[4] == "6") Reconnect38400();
BaudChanged = true;
}
//######################
if (!BaudChanged)
{
serial.WriteLine("AT+BAUD=6\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str.Contains("+BAUD="))
{
Read[4] = str.Replace("+BAUD=", "");
if (Read[4] == "6")
{
Reconnect38400();
BaudChanged = true;
}
}
}
//######################
if (!BaudChanged)
{
serial.WriteLine("AT+UART=38400,0,0\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str.Contains("+UART="))
{
Read[4] = str.Replace("+UART=", "");
if (Read[4].Contains("38400"))
{
Reconnect38400();
BaudChanged = true;
}
}
if (str.Contains("+UART:"))
{
Read[4] = str.Replace("+UART:", "");
if (Read[4].Contains("38400"))
{
Reconnect38400();
BaudChanged = true;
}
}
}
//######################
if (!BaudChanged)
{
serial.WriteLine("AT+UART=38400,0,0\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
if (str.Contains("+UART="))
{
Read[4] = str.Replace("+UART=", "");
if (Read[4].Contains("38400"))
{
Reconnect38400();
BaudChanged = true;
}
}
if (str.Contains("+UART:"))
{
Read[4] = str.Replace("+UART:", "");
if (Read[4].Contains("38400"))
{
Reconnect38400();
BaudChanged = true;
}
}
}
}
//###########################################
//###########################################
//###########################################
serial.WriteLine("AT+VERSION?\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
//Console.WriteLine("received " + str);
if (str.Contains("+VERSION="))
{
if (comboBox4.SelectedIndex == 0) comboBox4.SelectedIndex = 1; //JDY-MCU
BTTest = 99;
return true;
}
serial.WriteLine("AT+VERSION\n\r");
Thread.Sleep(serial.ReadTimeout);
if (serial.BytesToRead > 0) str = serial.ReadLine();
//Console.WriteLine("received " + str);
if (str.Contains("+VERSION:"))
{
comboBox4.SelectedIndex = 0; //HC05
BTTest = 99;
return true;
}
/*if (str.Contains("+VERSION="))
{
comboBox4.SelectedIndex = 2; //ZS-040
BTTest = 99;
return true;
}*/
}
BTTest++;
}
return false;
}
public void Reconnect38400()
{
if (serial.IsOpen)
{
serial.Close();
serial.Dispose();
}
MessageBox.Show(Form.ActiveForm, "Baudrate has changed, restart the adapter if it's not in AT+MODE\n\nBMTune will reconnect at baudrate 38400", "BMTune");
serial.BaudRate = 38400;
serial.Open();
}
public void GetPortName()
{
AvailablePorts.Clear();
comboBox1.Items.Clear();
foreach (string s in SerialPort.GetPortNames())
{
AvailablePorts.Add(s);
comboBox1.Items.Add(s);
}
}
private void button2_Click(object sender, EventArgs e)
{
HasBTInfos = false;
if (!SerialConnected)
{
ClearInfos();
SerialConnect();
}
else
{
try
{
if (serial.IsOpen)
{
serial.Close();
serial.Dispose();
}
}
catch { }
SerialConnected = false;
button2.Text = "Connect";
}
}
public void Write(byte[] Bytes)
{
try
{
try
{
serial.Write(Bytes, 0, Bytes.Length);
}
catch { }
}
catch (TimeoutException)
{
try
{
serial.DiscardInBuffer();
serial.DiscardOutBuffer();
}
catch { }
}
}
public byte ReadByte()
{
int Timeout = 0;
try
{
try
{
//Timeout Loop if bytes is not availables
int TimeoutTime = 600;
while (serial.BytesToRead < 1 & Timeout < TimeoutTime)
{
Thread.Sleep(1);
Timeout++;
}
//Check Timeout is out of time
if (Timeout >= TimeoutTime)
return 255;
else
return (byte)serial.ReadByte();
}
catch
{
return 255;
}
}
catch (TimeoutException)
{
return 255;
}
}
private void button1_Click(object sender, EventArgs e)
{
/*if (SerialConnected)
{
string Text = textBox1.Text;
byte[] ThisMessage = new byte[Text.Length];
if (comboBox3.SelectedIndex >= 1) ThisMessage = new byte[Text.Length + 1];
if (comboBox3.SelectedIndex == 3) ThisMessage = new byte[Text.Length + 2];
for (int i = 0; i < Text.Length; i++) ThisMessage[i] = Convert.ToByte(Text[i]);
//Add final
if (comboBox3.SelectedIndex == 1) ThisMessage[Text.Length] = Convert.ToByte('\n');
if (comboBox3.SelectedIndex == 2) ThisMessage[Text.Length] = Convert.ToByte('\r');
if (comboBox3.SelectedIndex == 3) { ThisMessage[Text.Length] = Convert.ToByte('\n'); ThisMessage[Text.Length + 1] = Convert.ToByte('\r'); }
//Set Textbox Display
for (int i = 0; i < ThisMessage.Length; i++)
{
textBox2.AppendText("0x" + ThisMessage[i].ToString("X2") + ",");
textBox5.AppendText(Convert.ToChar(ThisMessage[i]).ToString() + ",");
textBox6.AppendText(((int)ThisMessage[i]).ToString() + ",");
}
textBox2.AppendText(Environment.NewLine);
textBox5.AppendText(Environment.NewLine);
textBox6.AppendText(Environment.NewLine);
//Write
Write(ThisMessage);
}*/
}
private void Button4_Click(object sender, EventArgs e)
{
ClearInfos();
SetSettings(true);
CurrentAutoProgramTime = 0;
CurrentAutoProgramTime2 = 0;
MessageBox.Show(Form.ActiveForm, "Bluetooth Adapter Set as Slave!", "BMTune");
}
private void LogsBT(string logT)
{
textBox2.AppendText(logT + Environment.NewLine);
}
private void SetSettings(bool Slave)
{
if (Slave) txt_Name.Text = "BMLogger-ECU";
else txt_Name.Text = "BMDatalogger";
//string CommandEqual = "=";
//string CommandEnd = "\n\r";
//if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
//if (comboBox4.SelectedIndex == 2) CommandEqual = "";
SendStringCommandParameter("AT+NAME", txt_Name.Text);
serial_ReadBack("Set Name");
if (txt_Pass.Text != "1234")
{
if (comboBox4.SelectedIndex == 2 || comboBox4.SelectedIndex == 3) SendStringCommandParameter("AT+PIN", "1234");
else SendStringCommandParameter("AT+PSWD", "1234");
serial_ReadBack("Set Pswd");
}
if (txt_Uart.Text != "38400,0,0")
{
if (comboBox4.SelectedIndex == 2 || comboBox4.SelectedIndex == 3) SendStringCommandParameter("AT+BAUD", "6");
else SendStringCommandParameter("AT+UART", "38400,0,0");
serial_ReadBack("Set Uart");
}
if (Slave)
{
SendStringCommand("AT+ADDR");
serial_ReadBack("Get Addr");
serial_ReadBack("Get Addr #2");
}
else
{
if (comboBox4.SelectedIndex != 2 && comboBox4.SelectedIndex != 3)
{
if (comboBox4.SelectedIndex == 0) if (CheckConnected()) serial.WriteLine("AT+RMAAD\n\r");
if (comboBox4.SelectedIndex == 1) if (CheckConnected()) serial.WriteLine("AT+RMAAD\r");
serial_ReadBack("RMAAD");
if (comboBox4.SelectedIndex == 0) if (CheckConnected()) serial.WriteLine("AT+CMODE=0\n\r");
if (comboBox4.SelectedIndex == 1) if (CheckConnected()) serial.WriteLine("AT+CMODE=0\r");
serial_ReadBack("Set CMode");
}
SendStringCommandParameter("AT+BIND", txt_BuffID.Text);
serial_ReadBack("Set Bind");
}
if (Slave)
{
if (cmb_Role.SelectedIndex != 0)
{
SendStringCommandParameter("AT+ROLE", "0");
serial_ReadBack("Set Role");
}
}
else
{
if (cmb_Role.SelectedIndex != 1)
{
SendStringCommandParameter("AT+ROLE", "1");
serial_ReadBack("Set Role");
}
}
if (Slave)
{
InfosState = 0;
InfosReading = true;
}
//ReadInfos();
}
public void serial_ReadBack(string CMDS)
{
if (CheckConnected())
{
if (serial.IsOpen && serial.ReadBufferSize > 0)
{
try
{
string str = serial.ReadLine();
//Console.WriteLine("received " + str);
/*if (str.Contains("OK"))
{
ATMOODE = true;
}*/
if (str.Contains("+VERSION="))
{
//ATMOODE = true;
//JDY31 = true;
comboBox4.SelectedIndex = 1;
Read[0] = str.Replace("+VERSION=", "");
txt_Version.Text = Read[0].Replace("\r", "");
}
if (str.Contains("+ADDR="))
{
Read[2] = str.Replace("+ADDR=", "");
txt_ID.Text = Read[2].Replace("\r", "");
RedoAddr();
}
if (str.Contains("+PIN="))
{
Read[3] = str.Replace("+PIN=", "");
Read[3] = Read[3].Replace("\"", "");
txt_Pass.Text = Read[3].Replace("\r", "");
}
if (str.Contains("+PSWD="))
{
Read[3] = str.Replace("+PSWD=", "");
Read[3] = Read[3].Replace("\"", "");
txt_Pass.Text = Read[3].Replace("\r", "");
}
if (str.Contains("+BAUD="))
{
Read[4] = str.Replace("+BAUD=", "");
if (Read[4] == "1") txt_Uart.Text = "1200,0,0";
if (Read[4] == "2") txt_Uart.Text = "2400,0,0";
if (Read[4] == "3") txt_Uart.Text = "4800,0,0";
if (Read[4] == "4") txt_Uart.Text = "9600,0,0";
if (Read[4] == "5") txt_Uart.Text = "19200,0,0";
if (Read[4] == "6") txt_Uart.Text = "38400,0,0";
if (Read[4] == "7") txt_Uart.Text = "57600,0,0";
if (Read[4] == "8") txt_Uart.Text = "115200,0,0";
if (Read[4] == "9") txt_Uart.Text = "230400,0,0";
if (Read[4] == "A") txt_Uart.Text = "460800,0,0";
if (Read[4] == "B") txt_Uart.Text = "921600,0,0";
if (Read[4] == "C") txt_Uart.Text = "1382400,0,0";
}
if (str.Contains("+UART="))
{
Read[4] = str.Replace("+UART=", "");
txt_Uart.Text = Read[4].Replace("\r", "");
}
if (str.Contains("+BIND="))
{
Read[0] = str.Replace("+BIND=", "");
txt_Bind.Text = Read[0].Replace("\r", "");
}
if (str.Contains("+NAME="))
{
Read[5] = str.Replace("+NAME=", "");
txt_Name.Text = Read[5].Replace("\r", "");
}
if (str.Contains("+ROLE="))
{
Read[1] = str.Replace("+ROLE=", "");
try
{
cmb_Role.SelectedIndex = int.Parse(Read[1].Replace("\r", ""));
}
catch { }
}
//#########################
if (str.Contains("+NAME:"))
{
Read[5] = str.Replace("+NAME:", "");
txt_Name.Text = Read[5].Replace("\r", "");
}
if (str.Contains("+VERSION:"))
{
Read[0] = str.Replace("+VERSION:", "");
txt_Version.Text = Read[0].Replace("\r", "");
}
if (str.Contains("+ROLE:"))
{
Read[1] = str.Replace("+ROLE:", "");
//textBox10.Text = Read[1].Replace("\r", "");
try
{
cmb_Role.SelectedIndex = int.Parse(Read[1].Replace("\r", ""));
}
catch { }
}
if (str.Contains("+ADDR:"))
{
Read[2] = str.Replace("+ADDR:", "");
txt_ID.Text = Read[2].Replace("\r", "");
RedoAddr();
}
if (str.Contains("+PIN:"))
{
Read[3] = str.Replace("+PIN:", "");
Read[3] = Read[3].Replace("\"", "");
txt_Pass.Text = Read[3].Replace("\r", "");
}
if (str.Contains("+PSWD:"))
{
Read[3] = str.Replace("+PSWD:", "");
txt_Pass.Text = Read[3].Replace("\r", "");
}
if (str.Contains("+UART:"))
{
Read[4] = str.Replace("+UART:", "");
txt_Uart.Text = Read[4].Replace("\r", "");
}
if (str.Contains("+BIND:"))
{
Read[0] = str.Replace("+BIND:", "");
txt_Bind.Text = Read[0].Replace("\r", "");
}
if (str.Contains("ERROR:"))
{
//Failed++;
LogsBT(CMDS + " " + str);
}
}
catch
{
LogsBT("unable to read for command: " + CMDS);
//Failed++;
}
}
else
{
LogsBT("unable to read for command: " + CMDS);
}
}
else
{
LogsBT("unable to read for command: " + CMDS);
}
}
private void RedoAddr()
{
string addrbuf = txt_ID.Text;
if (addrbuf.Contains(":"))
{
addrbuf = addrbuf.Replace(":", ",");
string[] splite = addrbuf.Split(',');
if (splite[0].Length != 4)
{
int Adddd = 4 - splite[0].Length;
while (Adddd > 0)
{
splite[0] = "0" + splite[0];
Adddd--;
}
}
if (splite[1].Length != 2)
{
int Adddd = 2 - splite[1].Length;
while (Adddd > 0)
{
splite[1] = "0" + splite[1];
Adddd--;
}
}
if (splite[2].Length != 6)
{
int Adddd = 6 - splite[2].Length;
while (Adddd > 0)
{
splite[2] = "0" + splite[2];
Adddd--;
}
}
string reammdf = "";
for (int i = 0; i < splite[0].Length; i++) reammdf += splite[0][i];
reammdf += ",";
for (int i = 0; i < splite[1].Length; i++) reammdf += splite[1][i];
reammdf += ",";
for (int i = 0; i < splite[2].Length; i++) reammdf += splite[2][i];
txt_ID.Text = reammdf;
}
}
private void Button5_Click(object sender, EventArgs e)
{
if (!CopiedInfos || (CopiedInfos && txt_BuffRole.Text.Contains("Master")) || !HasBTInfos) MessageBox.Show(Form.ActiveForm, "You need to connect a slave adapter first that you want the master\nto pair to and set the slave adapter info in 'Last Adapter Infos'", "BMTune");
if (!SerialConnected) MessageBox.Show(Form.ActiveForm, "You need to connect a device first!", "BMTune");
else
{
if (CopiedInfos)
{
if (txt_BuffID.Text == "") MessageBox.Show(Form.ActiveForm, "The Slave ID in 'Last Adapter Infos' aren't recogniable", "BMTune");
if (HasBTInfos && txt_BuffID.Text != "")
{
MessageBox.Show(Form.ActiveForm, "This will Bind/Pair the Master with the the ID of the 'Last Adapter Infos'", "BMTune");
ClearInfos();
SetSettings(false);
}
}
}
MessageBox.Show(Form.ActiveForm, "Bluetooth Adapter Set as Master!", "BMTune");
}
private void Button6_Click(object sender, EventArgs e)
{
ClearInfos();
InfosState = 0;
InfosReading = true;
//ReadInfos();
}
/*private void ReadInfos()
{
if (comboBox4.SelectedIndex == 1)
{
serial.WriteLine("AT+NAME?\r");
serial_ReadBack("Get Name");
serial_ReadBack("Get Name #2");
serial.WriteLine("AT+VERSION?\r");
serial_ReadBack("Get Version");
serial_ReadBack("Get Version #2");
serial.WriteLine("AT+ROLE?\r");
serial_ReadBack("Get Role");
serial_ReadBack("Get Role #2");
serial.WriteLine("AT+ADDR?\r");
serial_ReadBack("Get Addr");
serial_ReadBack("Get Addr #2");
serial.WriteLine("AT+PSWD?\r");
serial_ReadBack("Get Pswd");
serial_ReadBack("Get Pswd #2");
serial.WriteLine("AT+UART?\r");
serial_ReadBack("Get Uart");
serial_ReadBack("Get Uart #2");
serial.WriteLine("AT+BIND?\r");
serial_ReadBack("Get Bind");
serial_ReadBack("Get Bind #2");
}
else
{
serial.WriteLine("AT+NAME\n\r");
//serial.WriteLine("AT+NAME\r");
//Thread.Sleep(500);
serial_ReadBack("Get Name");
serial_ReadBack("Get Name #2");
serial.WriteLine("AT+VERSION\n\r");
//serial.WriteLine("AT+VERSION\r");
serial_ReadBack("Get Version");
serial_ReadBack("Get Version #2");
serial.WriteLine("AT+PSWD\n\r");
//serial.WriteLine("AT+PSWD\r");
serial_ReadBack("Get Pswd");
serial_ReadBack("Get Pswd #2");
serial.WriteLine("AT+UART\n\r");
//serial.WriteLine("AT+UART\r");
serial_ReadBack("Get Uart");
serial_ReadBack("Get Uart #2");
serial.WriteLine("AT+ADDR\n\r");
//serial.WriteLine("AT+ADDR\r");
serial_ReadBack("Get Addr");
serial_ReadBack("Get Addr #2");
serial.WriteLine("AT+BIND\n\r");
//serial.WriteLine("AT+BIND\r");
serial_ReadBack("Get Bind");
serial_ReadBack("Get Bind #2");
serial.WriteLine("AT+ROLE\n\r");
//serial.WriteLine("AT+ROLE\r");
serial_ReadBack("Get Role");
serial_ReadBack("Get Role #2");
}
HasBTInfos = true;
}*/
private void ComboBox1_DropDown(object sender, EventArgs e)
{
GetPortName();
}
private void Button7_Click(object sender, EventArgs e)
{
CopyBuffer();
}
private void CopyBuffer()
{
if (HasBTInfos)
{
txt_BuffName.Text = txt_Name.Text;
txt_BuffUart.Text = txt_Uart.Text;
txt_BuffVersion.Text = txt_Version.Text;
txt_BuffBind.Text = txt_Bind.Text;
txt_BuffID.Text = txt_ID.Text;
txt_BuffPass.Text = txt_Pass.Text;
txt_BuffRole.Text = cmb_Role.Text;
CopiedInfos = true;
}
}
private void Button3_Click(object sender, EventArgs e)
{
if (comboBox4.SelectedIndex == 1) //JDY31
{
serial.WriteLine("AT+ORGL\r");
serial_ReadBack("Set ORGL");
MessageBox.Show(Form.ActiveForm, "Restored unit to default settings.", "BMTune");
}
else if (comboBox4.SelectedIndex == 2 && comboBox4.SelectedIndex == 3) //HC06 ZS-040
{
serial.WriteLine("AT+DEFAULT\n\r");
serial_ReadBack("Set ORGL");
MessageBox.Show(Form.ActiveForm, "Restored unit to default settings.", "BMTune");
}
else
{
//serial.WriteLine("AT+DEFAULT\n\r");
//serial.WriteLine("AT+RESET\n\r");
serial.WriteLine("AT+ORGL\n\r");
serial_ReadBack("Set ORGL");
MessageBox.Show(Form.ActiveForm, "Restored unit to default settings.", "BMTune");
}
}
private void button8_Click(object sender, EventArgs e)
{
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
serial.WriteLine("AT+NAME" + CommandEqual + txt_Name.Text + CommandEnd);
serial_ReadBack("Set Name");
MessageBox.Show(Form.ActiveForm, "Bluetooth adapter name changed", "BMTune");
}
private void button10_Click(object sender, EventArgs e)
{
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
if (comboBox4.SelectedIndex == 2 || comboBox4.SelectedIndex == 3) serial.WriteLine("AT+BAUD" + CommandEqual + "6" + CommandEnd);
else serial.WriteLine("AT+UART" + CommandEqual + txt_Uart.Text + CommandEnd);
serial_ReadBack("Set Uart");
MessageBox.Show(Form.ActiveForm, "Bluetooth adapter uart changed", "BMTune");
}
private void button11_Click(object sender, EventArgs e)
{
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
serial.WriteLine("AT+ROLE" + CommandEqual + cmb_Role.SelectedIndex + CommandEnd);
serial_ReadBack("Set Role");
MessageBox.Show(Form.ActiveForm, "Bluetooth adapter role changed", "BMTune");
}
private void button13_Click(object sender, EventArgs e)
{
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
serial.WriteLine("AT+BIND" + CommandEqual + txt_BuffID.Text + CommandEnd);
serial_ReadBack("Set Bind");
MessageBox.Show(Form.ActiveForm, "Bluetooth adapter bind changed", "BMTune");
}
private void button14_Click(object sender, EventArgs e)
{
string CommandEqual = "=";
string CommandEnd = "\n\r";
if (comboBox4.SelectedIndex == 1) CommandEnd = "\r";
if (comboBox4.SelectedIndex == 2) CommandEqual = "";
if (comboBox4.SelectedIndex == 2 || comboBox4.SelectedIndex == 3) serial.WriteLine("AT+PIN" + CommandEqual + txt_Pass.Text + CommandEnd);
else serial.WriteLine("AT+PSWD" + CommandEqual + txt_Pass.Text + CommandEnd);
serial_ReadBack("Set Pswd");
MessageBox.Show(Form.ActiveForm, "Bluetooth adapter pswd changed", "BMTune");
}
private void button9_Click(object sender, EventArgs e)
{
textBox2.Text = "";
}
void ClearInfos()
{
txt_Name.Text = "";
txt_Bind.Text = "";
txt_ID.Text = "";
txt_Pass.Text = "";
txt_Uart.Text = "";
txt_Version.Text = "";
cmb_Role.Text = "";
}
}