|
分類:[.NET 全般]
windows7
VB初心者です。
Visual Studio2015で、シリアル通信のアプリを作っています。
2秒毎に値を訪ねるコマンドを発生させて取得し、テキストファイルにデータを保存しようとしていますが、
うまくいきません。
Timer と Thread と両方やってみましたがどちらも1回とれたりとれなかったり、無反応になってしまいます。
1回ずつの応答では取得できるのは確かめています。
下記コード(抜粋)なのですが途中でメッセージボックスを表示させてOKとしてやると取得→ファイル書き込みができたりします。
どうしたらよいか、教えていただければ嬉しいです。
よろしくお願いします。
’ボタンをクリックするとTimer_tickが2秒毎に動くようになります。
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Timer1.Enabled = True
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim command As Byte() = {&H02, "01", &H43・・・}
SerialPort1.Write(command, 0, command.Length)
End sub
で、
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim rData As String
rData = SerialPort1.ReadExisting()
'MessageBox.Show(rData)
Dim Desktopname As String = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory)
Dim filePath As String = Desktopname & "/data/data.csv"
Dim appendText As String = nows + "," + rdata + Environment.NewLine
File.AppendAllText(filePath, appendText, System.Text.Encoding.GetEncoding("shift_jis"))
End sub
|