Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading
- import time
- import logging
- import Queue
- import serial
- import time
- import string
- import pynmea2
- import datetime
- import base64
- import requests
- logging.basicConfig(level=logging.DEBUG,
- format='(%(threadName)-9s) %(message)s',)
- #BUF_SIZE = 10
- q = Queue.Queue()
- q.put("location;array")
- class ProducerThread(threading.Thread):
- def __init__(self, group=None, target=None, name=None,
- args=(), kwargs=None, verbose=None):
- super(ProducerThread,self).__init__()
- self.target = target
- self.name = name
- def run(self):
- while True:
- port="/dev/ttyAMA0"
- ser=serial.Serial(port, baudrate=9600, timeout=0.5)
- dataout = pynmea2.NMEAStreamReader()
- newdata=ser.readline()
- if newdata[0:6] == "$GPGLL":
- newmsg=pynmea2.parse(newdata)
- lat=newmsg.latitude
- lng=newmsg.longitude
- if lat >0 and lng >0:
- startDateTimeStr = datetime.datetime.now().strftime("%d_%m_%H_%M_%S")
- gpsx = "https://www.latlong.net/c/?lat="+str(lat)+"&long="+str(lng)
- print(gpsx)
- if not q.full():
- if q.get().split(";")[1] != gpsx:
- item = startDateTimeStr +";"+ gpsx
- q.put(item)
- logging.debug('Putting ' + str(item)
- + ' : ' + str(q.qsize()) + ' items in queue')
- time.sleep(15)
- return
- class ConsumerThread(threading.Thread):
- def __init__(self, group=None, target=None, name=None,
- args=(), kwargs=None, verbose=None):
- super(ConsumerThread,self).__init__()
- self.target = target
- self.name = name
- return
- def check_internet(self):
- url='http://113.190.40.199:8080/'
- timeout=5
- try:
- _ = requests.get(url, timeout=timeout)
- return True
- except requests.ConnectionError:
- print("you are offline")
- return False
- def run(self):
- while True:
- if not q.empty():
- item = q.get()
- if self.check_internet() == True:
- url = 'http://113.190.40.199:8080/index3.php'
- params = {
- 'ImageName':item.split(";")[0],
- 'base64': base64.b64encode(item.split(";")[1].encode()),
- }
- response=requests.post(url,data=params)
- else:
- continue
- time.sleep(5)
- return
- if __name__ == '__main__':
- p = ProducerThread(name='producer')
- c = ConsumerThread(name='consumer')
- p.start()
- time.sleep(5)
- c.start()
- time.sleep(5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement