程式可以执行
我想要把下面5个变数原本16进位换成10进位
TAG_RSSI
TAG_LQI
TAG_DI
TAG_T1
TAG_T2
如何把输出的资料
TAG_ID
TAG_RSSI
TAG_LQI
TAG_DI
TAG_T1
TAG_T2
写入MySQL的资料库 public partial class Form1 : Form
{
string TAG_Data="";
int TAG_Total = 0;
bool Processing = false; public Form1()
{
InitializeComponent();
for (int i = 1; i <= 16; i++)
{
comboBoxPort.Items.Add("COM"+i.ToString());
}
comboBoxPort.SelectedIndex = 3;
//
// dataGridTextBoxColumn1
//
dataGrid1.TableStyles.Add(this.dataGridTableStyle1);
dataGridTableStyle1.GridColumnStyles.Add(this.dataGridTextBoxColumn1);
dataGridTextBoxColumn1.Width = 320;
} private void button_Start_Stop_Click(object sender, EventArgs e)
{
int i,Single_Length = 0;
char[] com = new char[5];
bool empty;
string TAG_ID, TAG_RSSI, TAG_LQI, TAG_DI, TAG_T1, TAG_T2; if (button_Start_Stop.Text == "Stop")
{
button_Start_Stop.Text = "Start";
serialPort1.Close();
return;
}
try
{
serialPort1.PortName = comboBoxPort.Text;
serialPort1.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error!!");
return;
}
button_Start_Stop.Text = "Stop";
Processing = false;
System.Threading.Thread.Sleep(3000);
com[0] = 'A';
com[1] = '3';
com[2] = Convert.ToChar(0x0D);
serialPort1.Write(com, 0, 3);
while (serialPort1.IsOpen)
{
while(TAG_Data.Length > 22)
{
Single_Length = TAG_Data.IndexOf(Convert.ToChar(0x0D));
if (Single_Length >= 22 && Single_Length < TAG_Data.Length)
{
Processing = true;
TAG_ID = TAG_Data.Substring(0, 16);
TAG_RSSI = TAG_Data.Substring(16, 2);
TAG_LQI = TAG_Data.Substring(18, 2);
TAG_DI = TAG_Data.Substring(20, 2);
if (Single_Length > 22)
{
TAG_T1 = TAG_Data.Substring(22, 4);
}
else
{
TAG_T1 = "-";
}
if (Single_Length > 26)
{
TAG_T2 = TAG_Data.Substring(26, 4);
}
else
{
TAG_T2 = "-";
}
empty = true;
for (i = 0; i < TAG_Total; i++)
{
if (dataSet1.Tables["TAGMessage"].Rows[i]["ID"].ToString() == TAG_ID)
{
dataSet1.Tables["TAGMessage"].Rows[i]["RSSI"] = TAG_RSSI;
dataSet1.Tables["TAGMessage"].Rows[i]["LQI"] = TAG_LQI;
dataSet1.Tables["TAGMessage"].Rows[i]["DI"] = TAG_DI;
dataSet1.Tables["TAGMessage"].Rows[i]["T1"] = TAG_T1;
dataSet1.Tables["TAGMessage"].Rows[i]["T2"] = TAG_T2;
tAGMessageBindingSource.Position = i;
empty = false;
break;
}
Application.DoEvents();
}
if (empty)
{
dataSet1.Tables["TAGMessage"].Rows.Add(TAG_ID, TAG_RSSI, TAG_LQI, TAG_DI, TAG_T1, TAG_T2);
TAG_Total++;
textBox1.Text = TAG_Total.ToString();
}
dataGrid1.Refresh();
TAG_Data = TAG_Data.Substring(Single_Length + 1);
}
else
{
break;
}
Application.DoEvents();
}
Processing = false;
Application.DoEvents();
}
} private void button_Clear_Click(object sender, EventArgs e)
{
dataSet1.Clear();
TAG_Total = 0;
textBox1.Text = TAG_Total.ToString();
} private void button_Exit_Click(object sender, EventArgs e)
{
serialPort1.Close();
Application.Exit();
} private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (!Processing)
{
TAG_Data = serialPort1.ReadExisting();
}
}
}
我想要把下面5个变数原本16进位换成10进位
TAG_RSSI
TAG_LQI
TAG_DI
TAG_T1
TAG_T2
如何把输出的资料
TAG_ID
TAG_RSSI
TAG_LQI
TAG_DI
TAG_T1
TAG_T2
写入MySQL的资料库 public partial class Form1 : Form
{
string TAG_Data="";
int TAG_Total = 0;
bool Processing = false; public Form1()
{
InitializeComponent();
for (int i = 1; i <= 16; i++)
{
comboBoxPort.Items.Add("COM"+i.ToString());
}
comboBoxPort.SelectedIndex = 3;
//
// dataGridTextBoxColumn1
//
dataGrid1.TableStyles.Add(this.dataGridTableStyle1);
dataGridTableStyle1.GridColumnStyles.Add(this.dataGridTextBoxColumn1);
dataGridTextBoxColumn1.Width = 320;
} private void button_Start_Stop_Click(object sender, EventArgs e)
{
int i,Single_Length = 0;
char[] com = new char[5];
bool empty;
string TAG_ID, TAG_RSSI, TAG_LQI, TAG_DI, TAG_T1, TAG_T2; if (button_Start_Stop.Text == "Stop")
{
button_Start_Stop.Text = "Start";
serialPort1.Close();
return;
}
try
{
serialPort1.PortName = comboBoxPort.Text;
serialPort1.Open();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error!!");
return;
}
button_Start_Stop.Text = "Stop";
Processing = false;
System.Threading.Thread.Sleep(3000);
com[0] = 'A';
com[1] = '3';
com[2] = Convert.ToChar(0x0D);
serialPort1.Write(com, 0, 3);
while (serialPort1.IsOpen)
{
while(TAG_Data.Length > 22)
{
Single_Length = TAG_Data.IndexOf(Convert.ToChar(0x0D));
if (Single_Length >= 22 && Single_Length < TAG_Data.Length)
{
Processing = true;
TAG_ID = TAG_Data.Substring(0, 16);
TAG_RSSI = TAG_Data.Substring(16, 2);
TAG_LQI = TAG_Data.Substring(18, 2);
TAG_DI = TAG_Data.Substring(20, 2);
if (Single_Length > 22)
{
TAG_T1 = TAG_Data.Substring(22, 4);
}
else
{
TAG_T1 = "-";
}
if (Single_Length > 26)
{
TAG_T2 = TAG_Data.Substring(26, 4);
}
else
{
TAG_T2 = "-";
}
empty = true;
for (i = 0; i < TAG_Total; i++)
{
if (dataSet1.Tables["TAGMessage"].Rows[i]["ID"].ToString() == TAG_ID)
{
dataSet1.Tables["TAGMessage"].Rows[i]["RSSI"] = TAG_RSSI;
dataSet1.Tables["TAGMessage"].Rows[i]["LQI"] = TAG_LQI;
dataSet1.Tables["TAGMessage"].Rows[i]["DI"] = TAG_DI;
dataSet1.Tables["TAGMessage"].Rows[i]["T1"] = TAG_T1;
dataSet1.Tables["TAGMessage"].Rows[i]["T2"] = TAG_T2;
tAGMessageBindingSource.Position = i;
empty = false;
break;
}
Application.DoEvents();
}
if (empty)
{
dataSet1.Tables["TAGMessage"].Rows.Add(TAG_ID, TAG_RSSI, TAG_LQI, TAG_DI, TAG_T1, TAG_T2);
TAG_Total++;
textBox1.Text = TAG_Total.ToString();
}
dataGrid1.Refresh();
TAG_Data = TAG_Data.Substring(Single_Length + 1);
}
else
{
break;
}
Application.DoEvents();
}
Processing = false;
Application.DoEvents();
}
} private void button_Clear_Click(object sender, EventArgs e)
{
dataSet1.Clear();
TAG_Total = 0;
textBox1.Text = TAG_Total.ToString();
} private void button_Exit_Click(object sender, EventArgs e)
{
serialPort1.Close();
Application.Exit();
} private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (!Processing)
{
TAG_Data = serialPort1.ReadExisting();
}
}
}
int i = Convert.ToInt32(str, 16);
执行后可以选的COM Port
按Start就会取到
TAG_ID
TAG_RSSI
TAG_LQI
TAG_DI
TAG_T1
TAG_T2