This commit is contained in:
xyy
2026-01-22 16:06:24 +08:00
parent b0d77b4292
commit e88d0aed75
6 changed files with 864 additions and 501 deletions

BIN
FP系列火焰光度计.pdf Normal file

Binary file not shown.

View File

@@ -30,23 +30,23 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frm_Main));
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea3 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend3 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series9 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series10 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series11 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea4 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend4 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series12 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series13 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series14 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series15 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series16 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series5 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series6 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series7 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.Series series8 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.timer_date = new System.Windows.Forms.Timer(this.components);
@@ -440,36 +440,36 @@
//
// chart_TSI
//
chartArea3.AxisX.IsMarginVisible = false;
chartArea3.AxisY2.Maximum = 100D;
chartArea3.AxisY2.Minimum = 0D;
chartArea3.Name = "ChartArea1";
this.chart_TSI.ChartAreas.Add(chartArea3);
chartArea1.AxisX.IsMarginVisible = false;
chartArea1.AxisY2.Maximum = 100D;
chartArea1.AxisY2.Minimum = 0D;
chartArea1.Name = "ChartArea1";
this.chart_TSI.ChartAreas.Add(chartArea1);
this.chart_TSI.Dock = System.Windows.Forms.DockStyle.Fill;
legend3.Name = "Legend1";
this.chart_TSI.Legends.Add(legend3);
legend1.Name = "Legend1";
this.chart_TSI.Legends.Add(legend1);
this.chart_TSI.Location = new System.Drawing.Point(2, 2);
this.chart_TSI.Name = "chart_TSI";
series9.BorderWidth = 5;
series9.ChartArea = "ChartArea1";
series9.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series9.Legend = "Legend1";
series9.LegendText = "室内浓度";
series9.Name = "室内浓度";
series10.BorderWidth = 5;
series10.ChartArea = "ChartArea1";
series10.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series10.Legend = "Legend1";
series10.Name = "口罩内浓度";
series11.BorderWidth = 5;
series11.ChartArea = "ChartArea1";
series11.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series11.Legend = "Legend1";
series11.Name = "泄露率";
series11.YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
this.chart_TSI.Series.Add(series9);
this.chart_TSI.Series.Add(series10);
this.chart_TSI.Series.Add(series11);
series1.BorderWidth = 5;
series1.ChartArea = "ChartArea1";
series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series1.Legend = "Legend1";
series1.LegendText = "室内浓度";
series1.Name = "室内浓度";
series2.BorderWidth = 5;
series2.ChartArea = "ChartArea1";
series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series2.Legend = "Legend1";
series2.Name = "口罩内浓度";
series3.BorderWidth = 5;
series3.ChartArea = "ChartArea1";
series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series3.Legend = "Legend1";
series3.Name = "泄露率";
series3.YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
this.chart_TSI.Series.Add(series1);
this.chart_TSI.Series.Add(series2);
this.chart_TSI.Series.Add(series3);
this.chart_TSI.Size = new System.Drawing.Size(1134, 476);
this.chart_TSI.TabIndex = 0;
this.chart_TSI.Text = "chart_Tsi";
@@ -487,45 +487,45 @@
//
// chart2
//
chartArea4.AxisX.IsMarginVisible = false;
chartArea4.Name = "ChartArea1";
this.chart2.ChartAreas.Add(chartArea4);
chartArea2.AxisX.IsMarginVisible = false;
chartArea2.Name = "ChartArea1";
this.chart2.ChartAreas.Add(chartArea2);
this.chart2.Dock = System.Windows.Forms.DockStyle.Fill;
legend4.Name = "Legend1";
this.chart2.Legends.Add(legend4);
legend2.Name = "Legend1";
this.chart2.Legends.Add(legend2);
this.chart2.Location = new System.Drawing.Point(3, 3);
this.chart2.Name = "chart2";
series12.BorderWidth = 5;
series12.ChartArea = "ChartArea1";
series12.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series12.Legend = "Legend1";
series12.LegendText = "室内浓度";
series12.Name = "室内C02浓度";
series13.BorderWidth = 5;
series13.ChartArea = "ChartArea1";
series13.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series13.Legend = "Legend1";
series13.Name = "口罩内CO2浓度";
series14.BorderWidth = 5;
series14.ChartArea = "ChartArea1";
series14.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series14.Legend = "Legend1";
series14.Name = "室内O2浓度";
series15.BorderWidth = 5;
series15.ChartArea = "ChartArea1";
series15.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series15.Legend = "Legend1";
series15.Name = "温度";
series16.BorderWidth = 5;
series16.ChartArea = "ChartArea1";
series16.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series16.Legend = "Legend1";
series16.Name = "湿度";
this.chart2.Series.Add(series12);
this.chart2.Series.Add(series13);
this.chart2.Series.Add(series14);
this.chart2.Series.Add(series15);
this.chart2.Series.Add(series16);
series4.BorderWidth = 5;
series4.ChartArea = "ChartArea1";
series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series4.Legend = "Legend1";
series4.LegendText = "室内浓度";
series4.Name = "室内C02浓度";
series5.BorderWidth = 5;
series5.ChartArea = "ChartArea1";
series5.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series5.Legend = "Legend1";
series5.Name = "口罩内CO2浓度";
series6.BorderWidth = 5;
series6.ChartArea = "ChartArea1";
series6.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series6.Legend = "Legend1";
series6.Name = "室内O2浓度";
series7.BorderWidth = 5;
series7.ChartArea = "ChartArea1";
series7.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series7.Legend = "Legend1";
series7.Name = "温度";
series8.BorderWidth = 5;
series8.ChartArea = "ChartArea1";
series8.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;
series8.Legend = "Legend1";
series8.Name = "湿度";
this.chart2.Series.Add(series4);
this.chart2.Series.Add(series5);
this.chart2.Series.Add(series6);
this.chart2.Series.Add(series7);
this.chart2.Series.Add(series8);
this.chart2.Size = new System.Drawing.Size(1132, 474);
this.chart2.TabIndex = 1;
this.chart2.Text = "chart_Tsi";
@@ -544,45 +544,45 @@
//
// dgv_expirData
//
dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
this.dgv_expirData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6;
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
this.dgv_expirData.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
this.dgv_expirData.BackgroundColor = System.Drawing.Color.White;
this.dgv_expirData.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
dataGridViewCellStyle7.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dgv_expirData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle2.ForeColor = System.Drawing.Color.White;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dgv_expirData.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
this.dgv_expirData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle8.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgv_expirData.DefaultCellStyle = dataGridViewCellStyle8;
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgv_expirData.DefaultCellStyle = dataGridViewCellStyle3;
this.dgv_expirData.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgv_expirData.EnableHeadersVisualStyles = false;
this.dgv_expirData.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgv_expirData.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
this.dgv_expirData.Location = new System.Drawing.Point(0, 0);
this.dgv_expirData.Name = "dgv_expirData";
dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
dataGridViewCellStyle9.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle9.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
dataGridViewCellStyle9.SelectionForeColor = System.Drawing.Color.White;
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dgv_expirData.RowHeadersDefaultCellStyle = dataGridViewCellStyle9;
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(243)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(160)))), ((int)(((byte)(255)))));
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.Color.White;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dgv_expirData.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
this.dgv_expirData.RowHeadersWidth = 51;
dataGridViewCellStyle10.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle10.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgv_expirData.RowsDefaultCellStyle = dataGridViewCellStyle10;
dataGridViewCellStyle5.BackColor = System.Drawing.Color.White;
dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dgv_expirData.RowsDefaultCellStyle = dataGridViewCellStyle5;
this.dgv_expirData.RowTemplate.Height = 27;
this.dgv_expirData.SelectedIndex = -1;
this.dgv_expirData.Size = new System.Drawing.Size(1148, 162);

View File

@@ -906,8 +906,8 @@ namespace 口罩泄露定制款
experData.O2NongDu = dc.UshortToFloat(data_D300_D320[7], data_D300_D320[6]);
experData.HuanJingWenDu = dc.UshortToFloat(data_D300_D320[9], data_D300_D320[8]);
experData.HuanJingShiDu = dc.UshortToFloat(data_D300_D320[11], data_D300_D320[10]);
experData.InDoor_TSINongDu = Tsi.Indoor_Data.ToFloat();
experData.Mask_TSINongDu = Tsi.Outdoor_Data.ToFloat();
experData.InDoor_TSINongDu = Tsi.Indoor_Data;//modified by xyy
experData.Mask_TSINongDu = Tsi.Outdoor_Data;//modified by xyy
//experData.BenDiNongDu = Tsi.sp_bendiData.ToFloat();
@@ -942,46 +942,6 @@ namespace 口罩泄露定制款
_Motor.ShowDialog();
}
/// <summary>
/// 原先的方法
/// </summary>
//private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
//{
// switch (comboBox1.SelectedIndex)
// {
// case 0:
// lb_status.Text = "头部静止,不说话";
// //experData.TestStatus = "头部静止,不说话";
// // form2.uiLabel1.Text = "头部静止,不说话";
// _logger.Log(loginData.UserName, "切换了实验状态为【头部静止,不说话】", loginData.UserPower.ToString());
// break;
// case 1:
// lb_status.Text = "左右转动头部看检测仓左右墙壁大约15次";
// // experData.TestStatus = "左右转动头部看检测仓左右墙壁大约15次";
// //form2.uiLabel1.Text = "左右转动头部看检测仓左右墙壁大约15次";
// _logger.Log(loginData.UserName, "切换了实验状态为【左右转动头部看检测仓左右墙壁大约15次】", loginData.UserPower.ToString());
// break;
// case 2:
// lb_status.Text = "抬头和低头看检测仓和地面大约15次";
// // experData.TestStatus = "抬头和低头看检测仓和地面大约15次";
// // form2.uiLabel1.Text = "抬头和低头看检测仓和地面大约15次";
// _logger.Log(loginData.UserName, "切换了实验状态为【抬头和低头看检测仓和地面大约15次】", loginData.UserPower.ToString());
// break;
// case 3:
// lb_status.Text = "大声阅读一段文字或大声说话";
// // experData.TestStatus = "大声阅读一段文字或大声说话";
// // form2.uiLabel1.Text = "大声阅读一段文字或大声说话";
// _logger.Log(loginData.UserName, "切换了实验状态为【大声阅读一段文字或大声说话】", loginData.UserPower.ToString());
// break;
// case 4:
// lb_status.Text = "头部静止,不说话";
// // experData.TestStatus = "头部静止,不说话";
// // form2.uiLabel1.Text = "头部静止,不说话";
// _logger.Log(loginData.UserName, "切换了实验状态为【头部静止,不说话】", loginData.UserPower.ToString());
// break;
// }
//}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
@@ -2209,7 +2169,7 @@ namespace 口罩泄露定制款
list_Tsi_Outdoor_Data.Clear();
//experData.XieLouLv = experData.CumulativeLeakageRate(list_Tsi_Indoor_Data, list_Tsi_Outdoor_Data, experData.BenDiNongDu, 1.0f);
lsit_XieLoulv.Clear();
list_CO2_Indoor_Data.Clear();
list_CO2_Indoor_Data.Clear();
list_CO2_Outdoor_Data.Clear();
list_O2_Data.Clear();
list_HuanJingWenDu_Data.Clear();

View File

@@ -121,98 +121,98 @@
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="timer_date.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@@ -757,210 +757,210 @@
<data name="btn_Light.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
AElFTkSuQmCC
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
SUVORK5CYII=
</value>
</data>
<data name="btn_风机.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
QkXP8tJQBjYAAAAASUVORK5CYII=
YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAABx+SURBVHhe7Z190F1FfcczMqYGE+7ZvSEpFoM6ljaOrW0d
bKsFrYza2k4FganiFAKlL5bUwZci2gIRaSEzJISc3b15opaRoUMJira8lGpbqdT4hgjlmtyze588wYr8
QRBfpjOkTYfO79wnyXO/e55z9t57Xu/dz8x3huG5v3357W9z3nZ/u2KFpxj2PH8Clwsb27J3DpP6Si7M
Vq6MZDK6jUl9dyD0F1uh+SoPo8e5ig5yZQ5xYQ7Hov+m/xdGj9Nv6LdkQ7ZUBpVFZVLZVAfVhdV7PLWA
SfPStuidHSj9XibNzVzo+7k0fa7M86WK6hT6fmoDtYXaRG3D9no8hbI23Hc6U+YyLqM7+fboB1ag1k3U
RhndSW2mtmN/PJ6JaHX2vyxQ+kImtAiUjqwAbJioD4t9uZD6hv31eDIZ3DKZ7YEyX8MAmzZRH6mv1Gf0
g8dzjPjWSeoPz8KkWE7Ud/KBvxXzxJy6be8qutUIlLmLb+kewYCZWW3pHiGfkG/IR+g3z5QTqOhMuq3g
oVmwgsNrWKFZGNxuRmeiHz1TBhPRu7mMHrCCoGCdqMxPAqW/waW+j0t9Bxd6jkt9E5f6Gq70FVzpS3ln
/nymzNtI9N/x/6O/0W/otwObO6gMKovKxHoKl4weIB+iXz0N5mTRXd1W5vI4QHHA89chrvRDcTArfUUc
8AV+i6Cy4wlFE2lQ50ODNljtylXkS/Ip+Rbb5GkIbEd3Axf6aqZ6Bgc4LzEZfYnJaEsrNG9ar/rrsA1V
QW2hNlHbqI3Y7rwU+5Z8vKO7AdvgqSlB58Br4ucLYZ7BAZ1U8YRQ5mNc6reeMvfkiVh3XaG2Upup7YVM
GGGeiZ9TOgdeg3V7asJJ27qcK3OjNXiTKDQLTOqQK33euk/Mr8c6mwr1hfoU9y3/FxU30lhgnZ4K4Sq6
uCXMdxIGaxwdYsrcSgG0Yk93JdY1dezprownS9znfJ5fBmMRXYxVeUqmLefPCKT5DA7QyBLmcFyOiDat
Cfe1sZ5ZgfpOPhj4Il5VbPtqBFE5NEZYj6dg6O0J65jrJh1EpqKHecds9muSbMgn5JvYRwm+c5Ywh2ms
/Buvkhh8y9CPWgMxgmjQmer/MZbtSYZ8NfFEkfpR/w2lQE67deFF8WYhdPwI8hNjMnKZKMpIGkss2zMB
a1X/tVyZBxOc7SQ/MfIlh4nyII0plusZAy6ji/hO83SCkzMVhLrnJ0ZxkG/Jx+h3J9GYyugiLNMzAlxE
tI/bdq6btq6e663FMj35Qj4mXyf4300i2oplejJYu3v+dK70vZYzHcRE9A+s038DlukpFvI5+R7Hw036
XhpzLNOTAO/0z+WhHvnr7uBSry/F8jzlQmMw1m0XjXmnfy6W51kCF9Fmy3Fu8rdTNWKi2y4RbcbyPPED
n77eclam9GO0CA/L8tQDGpt4jKxxSxfFApY10wTSfAqdlCVKojZNCwinFRqjxYR31himiWICy5pJ4l12
CQ5KE5PmQ1iOp97QmOE4Zkrq+7CcmYIL84jllFT5W6omM9YtlzCPYDkzQSs037eckSJ/SzUdjHPLRbGC
5Uw16IBMSX0NluFpNoOEFQljnSIsYyoZNX0nJTLDMhrP3MMvXLt93ylM9V9Ne8eThCbTCI0tjneaKHaw
jKmCd8w92OlUCf1+LKNpMBG9nUuzKxDm63ynmec7uj+0+gmiZAtYzrRCY4z9T1XH3INlTAWBNNutzqap
oQvZ2Nx8K+jo93BpbudCj5U4YpYmCBEvSE3ww3KiWMIyGg1T+irsZJqCXQfOwjLqDpfRRi6NGndSLNWs
TRCCxhz9kCaKKSyjkdC2TexcmgJx4DQso86s2zG/nr78rlLmR9iXcTWLE4SgsUdfpKpjmr0shRIAWJ1K
EdrXmrmHX8ik+UABaXNmdoIcBf2RKhFtQvtGEK/Kxc6kaPXck41ZbMikeT1TvW9hH/LSrE8QigX0Saqa
tgo43s8xypJ1GW3EMuoKV+YCq/05a9YnCBE/0yX4JlGhXmjUfpJRNjsFar4xafUHmdjtPuQtP0EGUGyg
b5aXvhfta8lI22Rl9E60ryvx6bXY/oLkJ8hxKEbQP8uq7tt3R3mf3aRkCtj2ouUnyDAUK+ijZVXX72dx
ah737CMfRfu6UuTxCcvJTxAbihn0U6J2mqdrl1JoMambU94qWsmJ9nWlzNuqpfITJJkRVgE/WKvkdO4Z
D/VjTVmyzpTeabe/HPkJkszisQ2u+0kk2ldCnCvXblyyGrLZiUvz51bbS5SfIMsz2HRl+yxJlecCpozd
romkm7JNti17Z2Dby5afIOk4b9+V+tFKs8rHRxBgoxLUpOcOpszfYvvLlp8g2bg+j1CMom0p0MEobudz
NOe5IxDRSCtKi5KfINk4P48Ic7iSQ3ycT3ZqyHMHEZ9Dju2vQH6CuOH6PEKxiraFQufPYSOWUb2/bC7B
1dllyE8Qd9wzOJZ0ZiKdYOpyYCblZ21SOlAmo89jH6qSnyDuUIy55AKmmC3l9F33o5abk0g62NX/Bbv9
1clPkNGgWEMfLqMb0TZX6KD4hEotURp8tK0zgdR/hn2oUn6CjI7r0QsUw2ibG4FyS7zQtPM56vJwflR+
gowOxRz6MUkUw2ibC2xHdwMXxiUhQWMezGOuff4Fq0Lz44R+VCY/QcbD6YFdmGcoltF2YrjQV1uVgZr2
YE4EUr8R+1G1/AQZD9cHdopltJ0I+lzvsuy7SXs8jsI75gbsR9XyE2R8XPaOUCznugSlrczlWAmKjgVG
uybQCs1XsS9Vy0+QyXA5oppiGu3GJlD6G1gBqolXD+IkZZ7EvlQtP0Emw+UqQjGNdmPhspy9qVcPym2F
famD/ASZHJerSC7L4bmMHsCCUU29epwszCuxL3WQnyCT43IVodhGu5EIVJSZdqWxV4/42ar/ZuxPHeQn
SD64XEUoxtHOGZcPg029ehBc6kuwP3WQnyD54HIVGfvD4anb9q7Kyjvb5KsHQYGIfaqD/ATJj8yrSGgW
KNbRLpNA6QutwlANz649wiK3UuUnSH64nC5AsY52mQTK3IUFDUmYw63O/pehXZPgoX6L1a8ayE+Q/KAY
zdr5SrGOdqmsDfedzrd0j2BBQ4WWvUurANrqwM9hv+ogP0HyJXP365buEYp5tFsWp8MVm3ouwxJOmXv4
RKtfNZCfIPnick7NSIfFBsp8DQsAHVoT7mujXRMZIV1qafITJF8oVilm0c9LRTGPdom0Re9sNEYxZW5F
u6bChXkE+1e1/ATJH4pZ9DOKYh/tLJg0N6OhLX0e2jUVrvRuu3/Vyk+Q/KGYRT+jKPbRzoJJ/U00HFJo
Flbs6a5Eu6bSlr1zrD5WLD9BCmBPd2Xmdz2pv4lmQ7isTWJSh2jXZFrqCYZ9rFp+ghQDxS76GkVzAO2O
wZS5DA0SdAHaNZ1Ami8k9LMy+QlSDC7nS9IcQLtjMKU/jQaodvjES9Cu6XBpPoL9rFJ+ghQDxS76GkVz
AO2OwaU+gAZDkr29aDMNuKxaLlN+ghQHxTD6e0hSH0CbGN7Rr7J+DArkmCsfG4DDt5/S5CdIcVAMo78t
dfSr0I6+B2Qu6moL8w60mxaCjn4P9rcq+QlSHBTD6G9LImERLlPms9YPQetve+rFaDdNVHUmIcpPkOKg
GEZ/o2guoN0KLvc/iz8c0pQ+fyyFqf5vW/2uQH6CFEv2c8j+Z4cMmDQvtX5kDZr5+JDRlMKluR37Xrb8
BCkWimX0OYrmxDEDl/VXrdC8aaiWKYWL6Fex72XLT5BioVhGn6OG1mUFSr8Xf4Bar/rrhmqZYvwpt9MN
xTL6HEVz4piBwwLFQ0M1zAD+nPTpJmv5+9DCxey3N/qhodJnhGy/FCM/QYqHYhr9PiSh7z/+Y2n61g+G
fzw3VPoM4ZK0O29VMkHmHn4hU/1X0zkbLaV/mbYj04MqZUynnZf486ZDMY1+H5I0/cEv9zx/gvVHS/oK
rGCWsP1RrIqeILwTvW4xo8tWOpnJ6ciAQbu+RG2jA09LOe+vQCimsX8omhsruFzYiH9AMWXehhXMGpnv
znNUERNkbaf/s0xEH+TKPIj1TaB/50pva9qJYgTFdEJ/hiUXNjptGBp6JzzDOK3jyUF5TZA14ffaXPYv
YUp/jquv/B/Wk6tC849M9n4f21BXXL790dygTSRX4h+W6kRlfoKFzzJMmg+gj/JWHhMkzuSRsYOuCDHV
+xb5aN2O+fXYprpBsY3tH+qL1FfSIsXUc91yO0dhiig6p+8kE4QSpbkkKChcO808k6bWV5TMc2+E2UoP
oNL6w1JJfR8W7Fn84l7QspRxJ0hVV4106W0rbtE/hW2tAxTbdnuHJCmB820Jfzguqe/Agj3HiRc45vy9
ZOQJEr+ircFVYzlJ/RCbm/8NbHbVZB3/TXODnkHuxj8MaYa/gYwC7SfJa9PVKBOE36JPogdkLKOGeo6e
TbD9VZL1LYTmxopA6C/iH4Yk9U1YsGd52tL8JpPRdZlfalPkOkHoQTgzvX/NxJS+CvtRFRTb2L6lormR
fcqr1NdgwR436Cs0U/13BdJ8Ks7g6Jjm1GWCLD6MP4e2zVD/fdifKqDYttt2XDQ3VvAwehz/MKzZ/oqe
N7RsI84qHx+9oC+lyZAktFsKk+b19jg1S0xFlZ9Mlvk1PYweX8FVdND6w5D0pViwp0KclgY1Q21l/gC7
VybZByhFBzOX/fLO/PlYsKc6uDLftsaowWp3qksEQrGN7QEdog+Fqafv+HVY9cFh307jRB/rTt323dHP
CMyBzPVYwhz2E6QhuKyZa6qY0tdjf8vAbYL4W6za07p5IZi2WytUIKKzsN9F43aL5R/Saw9T/evtcZku
Bcr8M/a7aNwe0v1r3lJoS3MO3W/Tbj38WxqUBnP1Tb3/tsdl+lT2l3an17z+Q2GxBHL+F7mM7jwWBGnZ
wxPgsn4nYBWmnWa+zIWNTh8K/VKTYmhv3b+GS3OD5c94kvTfhb9PIth14Cy0nXaVuUTeaamJX6yYP0yY
P0pbdk6bilwSIXDVn52rxzHpv0c/FIXTYkW/3D0/2rv6Z7Mw+jfLhwnKWk5ylEDp3+UyegDtp1jPtVT0
CvRDETgtd/cbpiaHBjRQ5pOW71JE6YRG+UBGmf5awnwHy5lGlfWw7rRhym+5nQyuzEf5ju4P0W8uSj0P
LwHeiX6GKf03q0LzYyxrqiTLSVTotOXWJ20YD3rQ5ko/hv4aRZRnCst1gSv9a0Vt962NdutTsd9545S0
wWUJg0/7cxzai07J1tBH44q27GIdrsSntkrKTWWX23S1Vf/N2N88cU774xPHubH6Fn1yIYsFpbkd6xqJ
a699wWIqovQDWBsmJvWfYlfzJHMdFokSx7ntL5jtr+nxcQii94Ttl5yUw+1Ea/fBlzMR7eDK/K9VfgNV
9IGxmV/Rj6YejX/sk1cnEsj+73Bhvmz5I39dgHWPS7wnXunM8yZrr465B/uWJ1nfQI4nrx78OCNtTTlv
FepCfCR2iQ/BRfxryaW5KPMtTY0VKB1hn/IkM6nG0uMPHO6tZ+IAndNuXXgR65jrVinzowQfFKeCDkil
/nAV/VVLRU9ZdTZA2J88ydrmMXSAjj+Cja4a/U1c6f/Efpcll6Un49Le2fv5zFuKmolWMGM/8mLkI9hm
+RDPQOo30v0u9rd0hfot2La8YcL8VvbtdE20Uz+N7c+LkQ/xdHkn7Lp2qClQn1mYscymRJXpX9bp/0n2
PqCqFR3EducF+dqub1jWtz++PfoB/mjYYLyvvnWEqf5fcLX/u9jHirUV21kklLKUSf3XpT9vOaqlzD5s
c15QLGN9Q9oe/QBtVizd1LOcTpl7srD75DLgQp+f+faiIjGpQ2xvGdCGrswV3RWIUqpiW/OAYhjrsiSj
O9GOvixeZv0QJfVb0a4JrA3Nr3DR+zurPzUSpSfFdpdJW5nfy/yXtUwJ/WVsYx5QDFt1gRIXka4N952O
P0QxZT6GdnWmdetC0JjVrzXZd8NV9D6+U89b7StZRV1RKYaxLhTNBbSLoY8z+OPhRjfnOYR1ogY8iB4X
LYDEPlQFrTuLz2PcYv4H21mWXLclj0rWVTL1AyUTWqABat0n6n323OIitHux3XVXIM0XsC9V05a9MwJl
7sK2liHrLVIOUOxiPSiaA2h3jEDpC9HAlj4P7eoAHXPMZaTs9jZDgex9BvtUFyjBWl6HA7mp18U25AHF
rl3XsGgOoN0x6MwJNEAVdW84NnueP4FJ/eE10vwXtrVJouRw2LW6waT5UCvU38e25y3avox15wHFLtaF
ojmAdkNk/ksRmoUVe7or0a4K4l19Uv+H1cYGquqjAFyJt/063IpPJKn/EOudmD3dlWmZZkgU+2hmESiz
HQ1tVXubxXaZX+fC1Pq17cjqRK/DftYZ1um/oYhnPXrjGIjvnIb1TYrb7ZXDqmqXdVl0oiralcHJYuGn
W9LccKLSqXuJmyg2N9/C/jaBQOj3cJnnIk+9G+vIA5dTgIfWX6WReZulzKE14b422hUJbcGkh7eEtjRe
Qah72N9Gce21L+Ay+kuu9j+LfRtVRexFp1jNWt7udHt1FHroxQIsiWgT2hVBfA55dv6iRmvUfL11hbb9
cqk/gf1zFRP6X7HMPKBYxbpQFPNotyzxV/Ut3SNYyFIF0hT6WnJxV19jX9uOpDA6F/vfZGjbL33XsfqZ
IUrZimXlAcUq1jWkLd0jy349X47MD0TCHM58JTYG62976sVM6KtO2mm+Z9U5hWpJvR99MC1wqS9hItLY
52RFB9uf3L8Gy5iU+NNFxilqFOtol4nTR8OO2Yx2k8BE9G6uoq9Y9UyxaK0Y+mGaiLcxD9Y/pZ7pzoT5
INrmAcUo1oVK/Ti4HKdu27sq671x3kuSuTJ7sI6pV8Ne744LbfulZy2r/yQZPYC/zwuKUau+pQrNAsU6
2jnh8k2EqX5uB8IHneg1WP40iyn9L+iDaSfe9rskGyRt2CpqOzfFJvoc5fTtYzkCFZ2JBaLyvopQVhGs
Y2ol9SXY/1khfm0vek8UudU48+oRT5DoTLQbCZezKfK8irRu/nYwE2n+a7L/o0po2y+dxIX/Pw9crh65
3NoNHpwTCl+ivK8ilPQM65gqCfMMU/1XY789+eFy9aDYRruxcMnQl+dVhCh8QVyFKuuAmFnF5eqR67k3
bWUuxwpQeV9F2p98ek0gzNexnqarivPAZw2XqwfFNNqNzcmiu5qODMNKUHlfRdqin7lwsmkKRHQW9tOT
Hy5XD4plimm0nQgu9NVYEYoW3a2e661F20ng0nwE62mqaOUr9s+THxR7FIPod0tCX422E8N2dDfQw6VV
ma3cE6C55OyqvYrYBOQZgmLP8juKXpDs6G5A21xw+XBIos00aDspLuv5a6ucl+R4bBY3cNm+B030YTCL
oHPA6Ut3USlsmpiUIT4I0lM4rudGUgyjba5wZW7ESpOlL0XbPOCd/k12XfVUkV+JPcehWEPfL6Mb0TZ3
TtrW5S5fuot4YD8KU/p6rK9WkuZRJqK3Y7s9+eP6YE4xS7GL9oXAVXQxNmAZ5f7AfpRA9S+sZ+bE/u6i
/mHw2Dg9mMeKLkbbQsncpXVUBSa8pty7XESODipYO83TTESF7IjzJOOSiJpU9O7XRNpy/oysnVoD6ceK
TlcanxKlon+y6y5Fz9HWYFqqj+3yFMcgjah+LGE8hiXMYYpVtC8F16XpdP4E2hYBJV8LpLmLC+0wcScV
ZfDQ22jvPLbDUzyuZ5pQjKJtadDnei71o9ioJFHaSrQvilZn4WVc9d9HG5KwHZOqFZrv00uClopegfV6
yoFiCcclUVI/mvuSklFxWQ6/pMGFPY8sBx2eQ69bmYw+T4kBrDZlav+zTPU/R2lhKGdTEYkFPO64PneQ
clvOPilcuR6GWfzzSBZxlotOdC6T5jouzT20aYZJfTeX5nZ6A8WkvoVLcwNX+oqWWPgltPdUh/Nzx0AS
7StjcGC9eTChkZbKeh7xTB+uzx0UixSTaF8pa1X/tfSqM6GxtqS+Bu09njQoZqw4StJO8zTFItrXAi4j
562yI6V69Mw0Tqlwj0pGF6F9rRjpw53Q70d7j2cpFCNW3CwnERW2ciNXuNLu50bUfcZ7KmOUOxKKObSv
LWt3z5/OQ52alXGpgl0H/DZUzxAUExgnyyrUCxRzWEat4Z3+uVZHUhSIA7mfKuRpJhQLGB+p6vSbmR2f
iygzcfBSob1nNsG4SJWImr1bc9S9G6vnnvRLxWcUGnuMhzRRbGEZjSSQ5lPYuVTJaCOW4ZluaMytOEgR
xRSW0WhGPUYtUPOTJRX2NAYaaxz/VEl9H5YxFXBhHrE6myYZvRPL8EwXNMbWuKdJmEewjKmClotbnU5R
3tkaPfXBJQviUlHsYBlTCXbcQR/FMjzNhsY0YZxThWVMNYHSETogTbSSs+ql8p7JoTEcYVVuLIoVLGcm
4B1zDzojXfqxKjZdefJhsNnJeT/HQB1zD5YzUwTSLZ3pUpW5fdeTD87bZJeIYgPLmUmY0lehc7Lkb7ma
wTi3VPH4Kn0VljXTuJxnbcvfctWZsW6pSD7ZdzJcRJssZ7lpq89mWB9oLNwzHoJEtAnL8ywhXgU8wlL5
oxrkZy0mYbbHHRoDl1y5lmjMm7oqt2zi/SSjbLpaIkqDX8T5JJ50yOeuRxDY0vc2bj9HHRhp+64tf9tV
AhPdTpGask22rsTbLl2zpYDoUu+XqhQH+Xas2ykSjanfbp0PcUohx7xbSaJjgf1EyQ/ypctRyyl6sLap
eZrKYnI6xwyOyfITZTJymBgkWbukbtNEnAvYMWH2cvITZTRymRhS06lb9ciVO+1Qxu746AWn80mWVzzo
HbOZ8vViHbPOIIex2TzxxBDmMI1V5VnWZxE6GMX5pKs0CXM4LkdEm9aE+9pYz6xAfScfDHwx2T8+JCqn
ssNrPMeh8+dcDhZ11KHBmez6vBV7uiuxrqljT3cl9XXxHPpDCf4YWYOxKPlMQE86dIKp+xHVjgrNApM6
5Mpc0A6feAnW2VSoL9SnuG+hGXnVQoZuLO00Wc/o0EHxgTLbuTDPJAzeZJK9vbQEuy3MO9bf9tSLse66
Qm2lNsdbC2Rvr9WvSSXMM+Rz8j3W7akpbEd3Axf6aqZ6xhrQvCR7e5k0H2+F5k3rVX8dtqEqqC3UJmpb
IRNiUbFvycc7uhuwDZ6GQG9P2spcHij9DRzgAnSIK/0QF3qOTqhiyryNSfNSbFNeUNlUB9W1WOdDeT1H
pIl8ST71b6amjME3lOgBHPCidaIyP4knKOUGk/qOOJilvmlwKIy+glbA8s78+fGEooDvzJ8f/z/6G/2G
fjuwuYPKoLKoTKyncNFxdf5bxvQTqOjM+Dkl/wfU6VNoFuLnCxX5RH6zxqnb9q4KlL4wUOYuvqV7xAqO
WdWW7hHyCfmGfIR+88wga8N9p9NRX4EyX7MCZkZEfScfkC/QPx7PMdqidzaT5mYm9TcxiKZN1EfqK/UZ
/eDxZHKyMK9kylzGlP40l/oABljjJPUB6gv1ifqG/fV4JoJ39Ku4oEV85rNc7n/WCsC6Se5/Nm6rMJup
7dgfj6dQ6FsE3Z4ESr+XblW40PdzafpWoBYtqlPo+6kN1JbF28TCvsF4PJOx5/kTuFzY2Ja9c5jUV3IR
79uWlESNSX13IPQXW6H5Kg+jx7mKDsYf+GgF7WAV7aH4/4XR4/Qb+i3ZLCZgk1QWlUllUx1UF1bvyYf/
BzI6z+jJmLFKAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="timer_UpdataChart.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
@@ -13,115 +14,517 @@ namespace 口罩泄露定制款.Modbus
private SerialPort sp_Indoor;
private SerialPort sp_Outdoor;
private SerialPort sp_bendiPort;
static string _indoor_data = "0.00";
static string _outdoor_data = "0.00";
static string sp_bendi = "0.00";
public string Indoor_Data { get { return _indoor_data; } set { _indoor_data = value; } }
public string Outdoor_Data { get { return _outdoor_data; } set { _outdoor_data = value; } }
public string sp_bendiData { get { return sp_bendi; } set { sp_bendi = value; } }
// 协议相关常量
private const byte FRAME_HEADER = 0x15;
private const byte FRAME_TAIL = 0x16;
private const int BAUD_RATE = 115200;
private const int DATA_BITS = 8;
private const Parity PARITY = Parity.None;
private const StopBits STOP_BITS = StopBits.One;
// 命令枚举
private enum PC_CMD : byte
{
PC_CMD_RESPOND = 0x00,
PC_CMD_CONNECT,
PC_CMD_DISCONNECT,
PC_CMD_GET_DATA,
PC_CMD_GET_GENERAL,
PC_CMD_SET_GENERAL,
PC_CMD_RESET,
PC_CMD_GET_MAINTAIN,
PC_CMD_SET_MAINTAIN,
PC_CMD_GET_MEAS_SETTING,
PC_CMD_SET_MEAS_SETTING,
PC_CMD_CTRL_FIRE,
PC_CMD_DONGLE_CONNECT,
PC_CMD_GET_SELECTED_CURVE_PART1,
PC_CMD_GET_SELECTED_CURVE_PART2,
PC_CMD_GET_SELECTED_CURVE_PART3,
PC_CMD_GET_RECORD_NUM,
PC_CMD_GET_RECORD
}
// 响应结果枚举
private enum RESPOND_RESULT : byte
{
RESPOND_RESULT_SUCCESS = 0x00,
RESPOND_RESULT_FAIL,
RESPOND_RESULT_BUSY
}
// 数据结构
private struct PC_DATA
{
public byte real_param_sta; // 每个元素的真实使能情况每1bit对应一个元素
public byte disp_param_sta; // 每个元素的显示使能情况每1bit对应一个元素
public byte unit; // 浓度单位
public byte is_fire; // 是否已经点着火了
public ushort[] energys; // 每一个元素的能量值
}
// 当前数据
private float _indoor_data = 0.0f;
private float _outdoor_data = 0.0f;
private float _bendi_data = 0.0f;
// 接收缓冲区
private List<byte> indoorBuffer = new List<byte>();
private List<byte> outdoorBuffer = new List<byte>();
private List<byte> bendiBuffer = new List<byte>();
// 元素索引
private enum ELEMENT_INDEX : int
{
PARAM_NA = 0,
PARAM_K,
PARAM_LI,
PARAM_CA,
PARAM_BA,
PARAM_MAX_NUM = 5
}
public float Indoor_Data { get { return _indoor_data; } }
public float Outdoor_Data { get { return _outdoor_data; } }
public float Bend_Data { get { return _bendi_data; } }
public Connect_TSI(string ComPort_TSI_Indoor, string ComPort_TSI_Outdoor)
{
try
{
sp_Indoor = new SerialPort(ComPort_TSI_Indoor, 9600, Parity.None, 8, StopBits.One);
// 订阅DataReceived事件可选用于接收数据
sp_Indoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Indoor_DataReceived);
sp_Outdoor = new SerialPort(ComPort_TSI_Outdoor, 9600, Parity.None, 8, StopBits.One);
sp_Outdoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Outdoor_DataReceived);
// 初始化串口,使用协议规定的参数
sp_Indoor = new SerialPort(ComPort_TSI_Indoor, BAUD_RATE, PARITY, DATA_BITS, STOP_BITS);
sp_Outdoor = new SerialPort(ComPort_TSI_Outdoor, BAUD_RATE, PARITY, DATA_BITS, STOP_BITS);
sp_bendiPort = new SerialPort("COM8", BAUD_RATE, PARITY, DATA_BITS, STOP_BITS); // 假设本底使用COM8
sp_bendiPort = new SerialPort(ComPort_TSI_Outdoor, 9600, Parity.None, 8, StopBits.One);
sp_bendiPort.DataReceived += new SerialDataReceivedEventHandler(Sp_bendi_DataReceived);
// 订阅DataReceived事件
sp_Indoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Indoor_DataReceived);
sp_Outdoor.DataReceived += new SerialDataReceivedEventHandler(Sp_Outdoor_DataReceived);
sp_bendiPort.DataReceived += new SerialDataReceivedEventHandler(Sp_Bendi_DataReceived);
// 设置读取超时
sp_Indoor.ReadTimeout = 1000;
sp_Outdoor.ReadTimeout = 1000;
sp_bendiPort.ReadTimeout = 1000;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
MessageBox.Show($"初始化串口失败: {ex.Message}");
}
}
/// <summary>
/// 发送命令帧
/// </summary>
/// <param name="port">串口对象</param>
/// <param name="command">命令字节</param>
/// <param name="data">数据域(可选)</param>
private void SendCommand(SerialPort port, PC_CMD command, byte[] data = null)
{
try
{
if (port == null || !port.IsOpen)
return;
List<byte> frame = new List<byte>();
// 帧头
frame.Add(FRAME_HEADER);
// 数据域长度
byte dataLength = (byte)((data != null) ? data.Length : 0);
frame.Add(dataLength);
// 命令字节(数据域的第一个字节)
frame.Add((byte)command);
// 如果有额外的数据,添加到数据域
if (data != null && data.Length > 0)
{
frame.AddRange(data);
}
// 计算校验和对数据域的所有字节累加求和取低8位
byte checksum = 0;
for (int i = 2; i < frame.Count; i++) // 从命令字节开始计算
{
checksum += frame[i];
}
frame.Add(checksum);
// 帧尾
frame.Add(FRAME_TAIL);
// 发送帧
port.Write(frame.ToArray(), 0, frame.Count);
}
catch (Exception ex)
{
Console.WriteLine($"发送命令失败: {ex.Message}");
}
}
/// <summary>
/// 解析接收到的数据帧
/// </summary>
private void ParseFrame(List<byte> buffer, ref float dataStore, string portName)
{
try
{
// 查找帧头
int headerIndex = buffer.IndexOf(FRAME_HEADER);
if (headerIndex < 0)
return;
// 移除帧头之前的数据
if (headerIndex > 0)
{
buffer.RemoveRange(0, headerIndex);
}
// 检查是否有足够的数据读取长度字段
if (buffer.Count < 2)
return;
byte dataLength = buffer[1];
// 检查是否收到完整帧帧头1 + 长度1 + 数据域 + 校验和1 + 帧尾1
int frameLength = 2 + dataLength + 2;
if (buffer.Count < frameLength)
return;
// 验证帧尾
if (buffer[frameLength - 1] != FRAME_TAIL)
{
// 帧尾错误,移除帧头继续查找
buffer.RemoveAt(0);
return;
}
// 提取完整帧
byte[] frame = buffer.GetRange(0, frameLength).ToArray();
// 验证校验和
byte checksum = 0;
for (int i = 2; i < 2 + dataLength; i++)
{
checksum += frame[i];
}
if (checksum != frame[frameLength - 2])
{
// 校验和错误
buffer.RemoveRange(0, frameLength);
return;
}
// 解析响应
if (frame[2] == (byte)PC_CMD.PC_CMD_RESPOND) // 响应命令
{
byte to_cmd = frame[3];
byte result = frame[4];
byte dat_len = frame[5];
if (result == (byte)RESPOND_RESULT.RESPOND_RESULT_SUCCESS)
{
if (to_cmd == (byte)PC_CMD.PC_CMD_GET_DATA && dat_len >= 2 + 5 * 2) // 至少包含header + 5个元素的能量值
{
// 解析PC_DATA结构
PC_DATA pcData = new PC_DATA();
pcData.real_param_sta = frame[6];
pcData.disp_param_sta = frame[7];
pcData.unit = frame[8];
pcData.is_fire = frame[9];
// 读取5个元素的能量值每个2字节
pcData.energys = new ushort[5];
int offset = 10;
for (int i = 0; i < 5; i++)
{
pcData.energys[i] = (ushort)(frame[offset] + (frame[offset + 1] << 8));
offset += 2;
}
// 这里我们取第一个元素PARAM_NA的能量值作为浓度值
// 根据实际需求,可以选择不同的元素
float energyValue = pcData.energys[(int)ELEMENT_INDEX.PARAM_NA];
// 转换为浓度值(这里需要根据实际校准曲线转换,暂时直接使用能量值)
// 实际应用中需要调用校准曲线进行转换
dataStore = energyValue;
Console.WriteLine($"{portName} 收到数据: 能量值={energyValue}, 浓度={dataStore:F2}");
}
}
}
// 移除已处理的帧
buffer.RemoveRange(0, frameLength);
}
catch (Exception ex)
{
Console.WriteLine($"解析数据帧失败: {ex.Message}");
if (buffer.Count > 0)
buffer.RemoveAt(0); // 移除错误数据
}
}
// 室内数据接收处理
private void Sp_Indoor_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Indoor_Data = sp_Indoor.ReadExisting().Trim();
sp_bendiData = Indoor_Data;
try
{
if (sp_Indoor == null || !sp_Indoor.IsOpen)
return;
int bytesToRead = sp_Indoor.BytesToRead;
if (bytesToRead <= 0)
return;
byte[] buffer = new byte[bytesToRead];
sp_Indoor.Read(buffer, 0, bytesToRead);
indoorBuffer.AddRange(buffer);
// 尝试解析帧
ParseFrame(indoorBuffer, ref _indoor_data, "室内光度计");
}
catch (Exception ex)
{
Console.WriteLine($"室内数据接收异常: {ex.Message}");
}
}
// 室外数据接收处理
private void Sp_Outdoor_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
Outdoor_Data = sp_Outdoor.ReadExisting().Trim();
}
private void Sp_bendi_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
sp_bendiData = sp_bendiPort.ReadExisting().Trim();
try
{
if (sp_Outdoor == null || !sp_Outdoor.IsOpen)
return;
int bytesToRead = sp_Outdoor.BytesToRead;
if (bytesToRead <= 0)
return;
byte[] buffer = new byte[bytesToRead];
sp_Outdoor.Read(buffer, 0, bytesToRead);
outdoorBuffer.AddRange(buffer);
// 尝试解析帧
ParseFrame(outdoorBuffer, ref _outdoor_data, "室外光度计");
}
catch (Exception ex)
{
Console.WriteLine($"室外数据接收异常: {ex.Message}");
}
}
// 本底数据接收处理
private void Sp_Bendi_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
if (sp_bendiPort == null || !sp_bendiPort.IsOpen)
return;
int bytesToRead = sp_bendiPort.BytesToRead;
if (bytesToRead <= 0)
return;
byte[] buffer = new byte[bytesToRead];
sp_bendiPort.Read(buffer, 0, bytesToRead);
bendiBuffer.AddRange(buffer);
// 尝试解析帧
ParseFrame(bendiBuffer, ref _bendi_data, "本底光度计");
}
catch (Exception ex)
{
Console.WriteLine($"本底数据接收异常: {ex.Message}");
}
}
/// <summary>
/// 启动数据采集
/// </summary>
public void Start_Indoor()
{
if (sp_Outdoor.IsOpen)
sp_Indoor.WriteLine("X");
}
public void Start_Outdoor()
{
if (sp_Outdoor.IsOpen)
sp_Outdoor.WriteLine("X");
if (sp_Indoor != null && sp_Indoor.IsOpen)
{
// 发送连接命令
SendCommand(sp_Indoor, PC_CMD.PC_CMD_CONNECT);
Thread.Sleep(100); // 等待响应
// 开始定时获取数据
Task.Run(() =>
{
while (sp_Indoor.IsOpen)
{
try
{
SendCommand(sp_Indoor, PC_CMD.PC_CMD_GET_DATA);
Thread.Sleep(500); // 每500ms获取一次数据
}
catch
{
break;
}
}
});
}
}
public void Start_Outdoor()
{
if (sp_Outdoor != null && sp_Outdoor.IsOpen)
{
// 发送连接命令
SendCommand(sp_Outdoor, PC_CMD.PC_CMD_CONNECT);
Thread.Sleep(100); // 等待响应
// 开始定时获取数据
Task.Run(() =>
{
while (sp_Outdoor.IsOpen)
{
try
{
SendCommand(sp_Outdoor, PC_CMD.PC_CMD_GET_DATA);
Thread.Sleep(500); // 每500ms获取一次数据
}
catch
{
break;
}
}
});
}
}
public void Start_bendidoor()
{
if (sp_bendiPort.IsOpen)
sp_bendiPort.WriteLine("X");
if (sp_bendiPort != null && sp_bendiPort.IsOpen)
{
// 发送连接命令
SendCommand(sp_bendiPort, PC_CMD.PC_CMD_CONNECT);
Thread.Sleep(100); // 等待响应
// 开始定时获取数据
Task.Run(() =>
{
while (sp_bendiPort.IsOpen)
{
try
{
SendCommand(sp_bendiPort, PC_CMD.PC_CMD_GET_DATA);
Thread.Sleep(500); // 每500ms获取一次数据
}
catch
{
break;
}
}
});
}
}
/// <summary>
/// 停止数据采集
/// </summary>
public void Stop_Indoor()
{
if (sp_Outdoor.IsOpen)
sp_Indoor.WriteLine("Z");
if (sp_Indoor != null && sp_Indoor.IsOpen)
{
SendCommand(sp_Indoor, PC_CMD.PC_CMD_DISCONNECT);
Thread.Sleep(100);
}
}
public void Stop_Outdoor()
{
if (sp_Outdoor.IsOpen)
sp_Outdoor.WriteLine("Z");
if (sp_Outdoor != null && sp_Outdoor.IsOpen)
{
SendCommand(sp_Outdoor, PC_CMD.PC_CMD_DISCONNECT);
Thread.Sleep(100);
}
}
public void Stop_bendidoor()
{
if (sp_bendiPort.IsOpen)
sp_bendiPort.WriteLine("Z");
if (sp_bendiPort != null && sp_bendiPort.IsOpen)
{
SendCommand(sp_bendiPort, PC_CMD.PC_CMD_DISCONNECT);
Thread.Sleep(100);
}
}
/// <summary>
/// 连接串口
/// </summary>
public void Connect()
{
sp_Indoor.Open();
sp_Outdoor.Open();
//sp_bendiPort.Open();
//if (sp_Indoor != null && sp_Outdoor != null)
//{
// if (!sp_Indoor.IsOpen)
// {
// sp_Indoor.Open();
// }
// if (!sp_Outdoor.IsOpen)
// {
// sp_Outdoor.Open();
// }
try
{
if (sp_Indoor != null && !sp_Indoor.IsOpen)
{
sp_Indoor.Open();
Console.WriteLine("室内光度计串口已打开");
}
//}
if (sp_Outdoor != null && !sp_Outdoor.IsOpen)
{
sp_Outdoor.Open();
Console.WriteLine("室外光度计串口已打开");
}
if (sp_bendiPort != null && !sp_bendiPort.IsOpen)
{
sp_bendiPort.Open();
Console.WriteLine("本底光度计串口已打开");
}
}
catch (Exception ex)
{
MessageBox.Show($"打开串口失败: {ex.Message}");
}
}
/// <summary>
/// 断开串口连接
/// </summary>
public void Disconnect()
{
if (sp_Indoor != null && sp_Outdoor != null)
try
{
if (sp_Indoor.IsOpen)
Stop_Indoor();
Stop_Outdoor();
Stop_bendidoor();
if (sp_Indoor != null && sp_Indoor.IsOpen)
{
sp_Indoor.Close();
}
if (sp_Outdoor.IsOpen)
if (sp_Outdoor != null && sp_Outdoor.IsOpen)
{
sp_Outdoor.Close();
}
if (sp_bendiPort != null && sp_bendiPort.IsOpen)
{
sp_bendiPort.Close();
}
Console.WriteLine("所有串口已关闭");
}
catch (Exception ex)
{
Console.WriteLine($"关闭串口失败: {ex.Message}");
}
}
}
}
}

Binary file not shown.