我从arduino串口收集数据并在VB上打印。同时我写入excel表和绘图图。我在写入excel表时遇到问题。数据被正确发送,但在写入excel时,两个字符串 这是我的代码
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static counter As Integer = 0
Static average_sum As Double = 0
Static Avg_count As Integer = 0
Dim voltage As Double = 24
Dim Power As Double
Static Cc_count As Long = 0
Static watt_hour As Double
Try
SerialPort1.Write("c")
System.Threading.Thread.Sleep(250)
Dim k As Double
Dim distance As String = SerialPort1.ReadLine()
k = CDbl(distance)
ListBoxSensor.Text = k
Dim s As New Series
counter = counter + 1
Count_val.Text = counter
Avg_count = Avg_count + 1
' drawing graph
If Avg_count = 1 Then
Power = (distance * voltage) / 3600
watt_hour = watt_hour + Power
'Twatt.Text = watt_hour
Display.Text = watt_hour
voltage_text.Text = 24
System.Threading.Thread.Sleep(250)
If watt_hour > 1000 Then
watt_hour = 1.0 + watt_hour
End If
Avg_count = Avg_count + 1
End If
If Avg_count > 1 Then
Avg_count = 0
End If
Dim current As Double = watt_hour
'Dim current As Double = k
Dim r As DataRow = dT.NewRow
r("time") = Now
'r("current") = k
r("current") = watt_hour
'add the row
dT.Rows.Add(r)
'remove any row older than 1 minute
Dim oldestTime As DateTime = Now.AddMinutes(-1)
Do While DirectCast(dT.Rows(0)("time"), DateTime) < oldestTime
dT.Rows.RemoveAt(0)
Loop
'finally bind the chart....
Chart1.DataBind()
'write into excel sheet for every 1 minute ..................
If Cc_count < 10 Then
Cc_count = Cc_count + 1
Dim array(10) As Double
For value As Double = 0 To Cc_count
array(Cc_count) = distance
average_sum = average_sum + array(Cc_count)
value = value + 1
V_count.Text = value
AVG_count_text.Text = Cc_count
If value > 10 Then
average_sum = average_sum / value
System.Threading.Thread.Sleep(250)
AVG_CR1.Text = average_sum
Cc_count = 0
End If
Next
End If
If counter = 1 Then
counter = 0
Dim headerText = ""
'Dim headerText As New StringBuilder=
Dim csvFile As String = IO.Path.Combine(My.Application.Info.DirectoryPath, "Current.csv")
If Not IO.File.Exists((csvFile)) Then
'headerText = "Date,TIME ,current, "
headerText = "Date-TIME ,current,Watt, "
End If
Using outFile = My.Computer.FileSystem.OpenTextFileWriter(csvFile, True)
If headerText.Length > 0 Then
outFile.WriteLine(headerText)
End If
'Dim date1 As String = "24-10-2014"
'Dim time1 As String = TimeOfDay()
Dim date1 As String = DateAndTime.DateString
Dim watt1 As String = CStr(watt_hour)
' Dim x As String = date1 + "," + time1 + "," + distance + "," + watt1
Dim x As String = date1 + "," + distance + "," + watt1
outFile.Write(x)
'Dim x As String = date1 + "," + time1 + "," + distance
'outFile.Write(x)
End Using
End If
Catch ex As Exception
End Try
End Sub
如果我使用将其更改为
headerText = "Date,TIME ,current, "
Dim x As String = date1 + "," + time1 + "," + distance
正确写入excel表。但是如果我添加另一个参数瓦特,就像在图像中一样写不正确