Sto sviluppando un data logger in VB che salverà all'interno di un file TXT dei dati acquisiti da una scheda I/O collegata sulla seriale.
Il programma di per se è già completo se non fosse per un problema con la funzione DataReceived che mi crea dei log con dati ripetuti se acquisiti inseriti tramite variale o funzione anziché da seriale.
Mi spiego: quello che vorrei come risultato è un log del tipo

17/11/2014 12:52:25 Macchina_On

Quello che ottengo invece è un qualcosa del genere:

17/11/2014 12:52:25 M17/11/2014 12:52:25 acchina_On

In breve mi duplica la data ottenuta dalla funzione Now sballandomi il log. Lo stesso accade anche se inserisco io manualmente una stringa al posto della funzione.

#Macc#hina#_On#

Se invece mi limito a salvarmi il solo dato inviato dalla scheda sulla seriale non ho problemi.
Purtroppo devo inserire obbligatoriamente tramite funzione data e ora di acquisizione del dato perché la scheda è priva di un suo orologio interno. Ho provato diverse vie, ma non essendo molto pratico di seriali e VB sto trovando difficoltà. Il codice che ho usato per leggere sulla seriale comunque è il seguente, vorrei capire come dovrei modificarlo per risolvere il mio problema:

__________________________________________________ ________________________________

Imports System.IO

Module Module1
Private WithEvents objSerial As New System.IO.Ports.SerialPort("COM4")
Dim percorso As String = "C:\Seriale\SerialTest.txt"

Sub Main()
If Not File.Exists(percorso) Then
Dim creaFile As FileStream
creaFile = File.Create(percorso)
creaFile.Close()
End If

objSerial.BaudRate = 9600
objSerial.Open()
Console.ReadKey()
objSerial.Close()

End Sub

Private Sub objSerial_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles objSerial.DataReceived
ScriviFile(objSerial.ReadExisting)
End Sub

Private Sub ScriviFile(log As String)
Console.Write(Now & " " & log)
File.AppendAllText(percorso, Now & " " & log)
End Sub
End Module