--- a/scannr.py
+++ b/scannr.py
@@ -8,11 +8,22 @@
import threading
from pydispatch import dispatcher
import wave
+import serial
+#python -m serial.tools.miniterm -p COM20 -e -b 115200 --cr
+import psycopg2
+import csv
+import sys,os
+
+
+sys.path.insert(0, os.path.join(os.path.dirname(__file__) or '.', 'pynma'))
+import pynma
filename = "demo.wav"
MIN_LENGTH = 90000
-def worker(filename):
+
+def worker(filename, length):
+
"""thread worker function
http://www.doughellmann.com/PyMOTW/threading/
https://github.com/uskr/pynma
@@ -20,7 +31,27 @@
http://stackoverflow.com/questions/2559746/getting-error-while-converting-wav-to-amr-using-ffmpeg
"""
print 'Worker for '+filename
-
+ ser.write("GLG\r")
+ line = ser.readline() # read a '\n' terminated line
+ print line
+ reader = csv.reader([line])
+ for row in reader:
+ #GLG,40078,NFM,0,0,CanberraBlackMnt,AustralianCapita,SES Ops 1,1,0,NONE,NONE,NONE
+ if (row[0] != 'GLG'):
+ print "uh oh"
+ if (row[1] != ''):
+ tgid = row[1]
+ #nma.push("scannr", "ping", filename, "http://www.google.com")
+ tgname = row[7]
+ sitename = row[5]
+ """http://initd.org/psycopg/docs/usage.html"""
+ cur = conn.cursor()
+ cur.execute("INSERT INTO recordings (filename,tgid,tgname,sitename,length) VALUES (%s, %s,%s, %s, %s)",(filename,tgid,tgname,sitename, length))
+ conn.commit()
+ cur.close()
+ else:
+ print filename+" has no TGID"
+
return
def filenameMaker():
@@ -34,7 +65,7 @@
if len(data) > MIN_LENGTH:
data = snd.pack('<' + ('h'*len(data)), *data)
path = filename
- dispatcher.send( signal='FILE_CREATED', sender=filename, filename=filename)
+ dispatcher.send( signal='FILE_CREATED', sender=filename, filename=filename, length=len(data))
wf = wave.open(path, 'wb')
wf.setnchannels(1)
wf.setsampwidth(sample_width)
@@ -45,8 +76,15 @@
dispatcher.connect( filenameMaker, signal='SND_STARTED', sender=dispatcher.Any )
dispatcher.connect( worker, signal='FILE_CREATED', sender=dispatcher.Any )
-print "Scannr started..."
+
+print "Opening serial port..."
+ser = serial.Serial('COM20', 112500, timeout=1)
+print "Loading notifymyandroid..."
+nma = pynma.PyNMA( "a6f50f76119eda33befe4325b4b9e1dd25eef7bad2868e4f")
+print "Connecting database..."
+conn = psycopg2.connect("dbname=scannr user=postgres password=snmc")
+print "Scannr started."
while True:
- print "ready to record"
+ print "ready to record again"
record_to_async_file()
-
+ser.close()