ich habe einen USB-µPIO Temp 12, und bisher lese ich diesen per Powershell zuverlässig aus und speichere die Daten in einer Sqlite Datenbank.
Code: Alles auswählen
$COMPORT='COM9'
$BAUDRATE=57600
$Parity=[System.IO.Ports.Parity]::None # System.IO.Ports.Parity
$DataBits=8
$StopBits=[System.IO.Ports.StopBits]::one # System.IO.Ports.StopBits
#Sicherstellen, dass $ComData leer ist (wenn das Script erneut ausgeführt wird)
$ComData=""
$port= new-Object System.IO.Ports.SerialPort $COMPORT,$BAUDRATE,$Parity,$DataBits,$StopBits
$port.open()
#Zwingend notwendig, erst einen Befehl zu senden, damit eine Antwort vom µPIO gesendet wird
$port.WriteLine("Bxxxxxxxxxxxx--------")
#Daten vom Comport lesen
$ComData=$port.ReadLine()
#Com Port schliessen
$port.Close()
$VLHK = $Daten[1].ToString().Trim()
$RLHK = $Daten[3].ToString().Trim()
$Speicher = $Daten[5].ToString().Trim()
$WW = $Daten[7].ToString().Trim()
$Zirku = $Daten[9].ToString().Trim()
$Brenner = $Daten[13].ToString().Trim()
$UP = $Daten[15].ToString().Trim()
$Fehler = $Daten[17].ToString().Trim()
$ZP = $Daten[19].ToString().Trim()
$SQL = "Insert into 'Temperaturen' (Datum, Zeit, VLHK, RLHK, Speicher, WW, Zirku, Brenner, UP, Error, ZP)
Values ('$Datum','$Zeit','$VLHK','$RLHK','$Speicher','$WW','$Zirku','$Brenner','$Up','$Fehler', '$ZP');"
#Insert into ausführen
invoke-SqliteQuery -DataSource $DataSource -Query $SQL -QueryTimeout 3
Write-Host "Daten in Tabelle Temperaturen eingefügt." -ForegroundColor Yellow
Code: Alles auswählen
import serial
serPort = serial.Serial(port='Com9', baudrate=57600, bytesize=8, timeout=3, parity='N', stopbits=1)
command = b'Bxxxxxxxxxxxx--------'
#print('Sende Befehl ' + str(command) + ' zum Abacom, Länge' + str(len(command)))
serPort.writelines(command)
data = serPort.readline()
print('Data read', str(data))
serPort.close()
Code: Alles auswählen
Data read b''
Der String 'Bxxxxxxxxxxxx--------' muss als Bytes (b'Bxxxxxxxxxxxx--------') an die serielle Schnittstelle geliefert werden, da ansonsten ein Laufzeitfehler auftritt.
Hat jemand eine Idee, wie das Problem gelöst werden kann?