自己做了個小程序玩的,代碼寫的不嚴謹,沒改控件名。我沒用這個控件,我是直接寫協議的。FX3U+232BD+4AD。實時讀取采集的溫度,存入SQL數據庫中。
for (int i=0; i<99;i++ )
{
comboBox1.Items.Add("COM"+i.ToString ());
}
foreach (string com in comboBox1.Items )
{
try
{
serialPort1.PortName = com;
serialPort1.Open();
if(serialPort1 .IsOpen ==true)
{
break;
}
}
catch
{
continue;
}
}
timer1.Enabled = true;
comboBox1.SelectedIndex = 0;
private void timer2_Tick(object sender, EventArgs e)//D0 讀取
{
try
{
textBox1.Text = W_Reveive(serialPort1.ReadExisting());
timer3.Enabled = true;
timer2.Enabled = false;
}
catch(Exception ex)
{
timer1.Enabled = false;
timer2.Enabled = false;
timer3.Enabled = false;
timer3.Enabled = false;
timer4.Enabled = false;
timer5.Enabled = false;
timer6.Enabled = false;
MessageBox.Show(ex.Message.ToString());
this.Close();
}
private string W_Reveive(string text)//字讀取
{
try
{
if (text.Length == 12)
{
string a = text.Substring(1, 4);
string b = text.Substring(5, 4);
if (a == "00FF" && b != "0000")
{
int c = Convert.ToInt32(b, 16);
return c.ToString();
}
else
{
return null;
}
}
else
{
return null;
}
}
catch
{
return"";
}
}
private void timer9_Tick(object sender, EventArgs e)//讀取表內容
{
string conn = "server=.;database=wenducaiji;integrated Security=True;";
string Sql = "select time as '時間',temperature as '溫度' from temperature order by time desc,temperature desc;";
using(SqlConnection con =new SqlConnection(conn))
{
con.Open();
DataSet dataset=new DataSet ();
SqlDataAdapter dataadapter = new SqlDataAdapter(Sql,con);
dataadapter.Fill(dataset);
dataGridView1.DataSource = dataset.Tables[0];
dataGridView1.Columns["時間"].DefaultCellStyle.Format = "yyyy/MM/dd HH:mm:ss";
dataadapter.Dispose();
}
button6.Visible= true;
}