add new server

master
ademant 2019-08-08 15:06:30 +02:00
parent 456bf77888
commit 07aded7725
2 changed files with 62 additions and 0 deletions

19
gps_raw_net.sh Normal file
View File

@ -0,0 +1,19 @@
#!/bin/bash
export TZ=UTC
TTY=$1
STTY=$(echo $1|sed -e 's/tty//g')
if [ ! -f /tmp/${TTY}.pid ]; then
id=
echo $$ > /tmp/${TTY}.pid
mac=$(printf "%d\n" 0x$(cat $(find /sys/class/net -name "en*" |head -n1)/address|tr -d ':'))
uid=$(echo $(udevadm info --name=/dev/${TTY}|sed -n '/MAJOR/{s/[A-Z: =]*//;p}')*256+$(udevadm info --name=/dev/${TTY}|sed -n '/MINOR/{s/[A-Z: =]*//;p}')|bc)
vendor=$(udevadm info --name=/dev/${TTY}|sed -n '/VENDOR=/{s/[A-Z:_ =]*//;p}')
serial=$(udevadm info --name=/dev/${TTY}|sed -n '/SERIAL=/{s/[A-Z:_ =]*//;p}')
model=$(udevadm info --name=/dev/${TTY}|sed -n '/MODEL=/{s/[A-Z:_ =]*//;p}')
path=$(udevadm info --name=/dev/${TTY}|sed -n '/DEVPATH=/{s/[A-Z:_ =]*//;p}')
uvs="${mac}§${uid}§${vendor}§${serial}§${model}§${path}"
# cat /dev/${TTY}|unbuffer -p tr -dc "[:print:]\n"|ts %.s,${STTY},${uid},|unbuffer -p sed -e 's/*..//g'|/home/pi/gps/gps_pre_sql.awk| $(mysql -u gps -D gps -pgps --batch )
# cat /dev/${TTY}|unbuffer -p tr -dc "[:print:]\n"|ts %.s,${STTY},${uid},|unbuffer -p sed -e 's/*..//g'|/home/pi/gps/gps_pre.awk|split -a12 -l1000 - /tmp/gps_${uid}. --filter='gzip -9 > $FILE.gz'
# tr -dc "[:print:]\n" < /dev/${TTY} |ts %.s,${uid},|unbuffer -p sed -e 's/*..//g'|/home/pi/gps/gps_pre.awk|split -a12 -l1000 - /tmp/gps_${uid}. --filter='bzip2 -9 > $FILE.bz2'
tr -dc "[:print:]\n" < /dev/${TTY} |ts %.s,${mac},${uvs},|unbuffer -p sed -e 's/*..//g'|/home/pi/gps/gps_pre.awk|nc -u localhost 24040
fi

43
pysqltq.py Normal file
View File

@ -0,0 +1,43 @@
import socket,threading,json,time
from queue import Queue
def gps_insert(q):
gpsdata=[]
while True:
if q.empty():
time.sleep(0.1)
else:
try:
indata=q.get()
if indata is not None:
q.task_done()
except Exception as e:
print("Error during queuing")
print(e)
else:
if indata is not None:
print(indata)
class Broker():
def __init__(self,q):
self.sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
self.sock.bind(('127.0.0.1',24045))
self.queue=q
def listen_clients(self):
while True:
msg,client=self.sock.recvfrom(1024)
print(msg)
if __name__ == "__main__":
q=Queue(maxsize=0)
sql_worker=threading.Thread(target=gps_insert,args=(q,))
sql_worker.setDaemon(True)
sql_worker.start()
# Port 0 means to select an arbitrary unused port
b=Broker(q)
b.listen_clients()