Avatar billede g0t Nybegynder
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
Avatar billede mcgoat Nybegynder
03. december 2008 - 10:23 #1
hmmm. Det her program kan monitorere din COM port og smide resultaterne i udklipsholderen:

http://www.com-port-monitoring.com/portmonitor.html?gr=spsa02&gclid=CNa70K6PpJcCFQRBMAodSFZt-Q

Så skal du bare bruge et program der kan hente ting fra udklipsholderen og smide det i DB
Avatar billede mcgoat Nybegynder
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
Avatar billede g0t Nybegynder
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.
Avatar billede g0t Nybegynder
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester