03. december 2008 - 10:19
Der er
4 kommentarer
COM port data til sql database
Hej
Jeg skal bruge et program/løsning til at få mine data fra com porten op i min sql database. Nogle der har erfaringer med det eller har lavet noget ligende.
Jeres svar vil være en stor hjælp.
Mvh
Troels
03. december 2008 - 10:30
#2
Der findes massere af programmer til at _se_ hvad der sker på com porten, det er bare at søge på google efter f.eks: Serial Com Port Monitor, der er også mange gratis, men om der er nogen af dem der automatisk kan smide input ind i din DB ved jeg ikke
03. december 2008 - 12:10
#3
Tak for svarene.
Det skal gøre så nemt som muligt. Et simpelt program der kan tage alt data fra en bestemt COM port og smide det i en database, i form af SQL eller XML.
Det vil være bedst med SQL da der på senere tidspunkt kommer flere computer der skal smider data i databasen.
Sådan et simpelt program må da være lavet, eller kunne laves hurtigt.
Jeg kan åbne mere op for projektet, og sige der er NMEA data fra en gps der skal kunne tilføjes.
Hvis nogle har færdigheder til at kunne programmere sådan et program, evt i Java eller C, så er vi villige til et samarbejde.
03. december 2008 - 15:43
#4
Hej. Jeg har set på dette Pearl script.
<code>
#############################################################################
# Butler script
# Copyleft Rasmus Hildonen 2008
#
#############################################################################
# Inkludes
import serial, MySQLdb, time
# Sette opp serieport
ser=serial.Serial('/dev/ttyS0', 2400, timeout=1)
# Koble til database
db = MySQLdb.connect(host="localhost", user="xxx", passwd="xxx",db="xxx")
# Lage en cursor
cursor = db.cursor()
# Loopen
while True:
# Lese inn data i basen
line = ser.readline() # Lese data fra serieport
data = line.split(",") # Splitte opp data
if data[0] == '0' : # Sjekke om det er data til server
print data[0]+" "+data[1]+" "+data[2]+" "+data[3]+" "+data[4]+" "+data[5]+" "+data[6] # debug
cursor.execute("""INSERT INTO logg (mottager,avsender,temperatur,s1,s2,s3,s4) VALUES ("%s","%s","%s","%s","%s","%s","%s")""" % (data[0],data[1],data[2],data[3],data[4],data[5],data[6])) # Legge inn data i basen
# Hente kommandoer og sende til moduler
cursor.execute("""SELECT * FROM oppgaver WHERE sendt LIKE 0""") # Velge oppgaver som ikke er sendt
while(1):
row = cursor.fetchone ()
if row == None:
break
print "%s, %s" % (row[2], row[3]) # debug
kommando = row[2] + row[3]
ser.write(kommando) # sende kommando
cursor.execute("""UPDATE oppgaver SET sendt = 1 WHERE id LIKE %s""" % (row[0]))
# Lukke pent etter seg
ser.close
</code>
I mine øjne ser det meget redigerbart ud. Lige til at gå til.