class NetworkClient:
	"""A class for sending readings to a server"""

	def __init__(self):
		# Create an INET, STREAMing socket
		self.cli_sock = socket.socket(
			socket.AF_INET, socket.SOCK_STREAM)
		# Connect to a remote  socket at host and port
		self.cli_sock.connect(('pi2' , 1234))
		
		self.serial_conn = SerialConnection('/dev/ttyUSB0', 30)
		self.serial_conn.open()
		self.serial_conn.flush_input()
	
	def send(self):
		try:
			while True:
				data = self.serial_conn.read()
				self.cli_sock.send(data)
		except KeyboardInterrupt:
			self.serial_conn.close()
			self.cli_sock.close()
Example #2
0
class Main:
	"""A class for establishing connections"""

	def start_db_hdlr(self, db):
		self.db_hdlr = DatabaseHandler(db)
		self.db_hdlr.flush_rss_readings()
		self.db_hdlr.check_pos_tbl()
		self.db_hdlr.check_rsl_tbl()

	def start_net_srv(self):
		self.net_srv = NetworkServer()
		self.net_srv.start()

	def start_serial_conn(self, port, timeout): 
		self.serial_conn = SerialConnection(port, timeout)
		self.serial_conn.open()
		self.serial_conn.flush_input()

	def start_trilat(self):
		self.trilat = Trilateration()
		self.trilat.start()
	
	def run(self):
		try:
			while True:
				data = self.serial_conn.read().strip()
				tag_id = data[:4]
				rss = data[4:]
				self.db_hdlr.ins_reading(2, tag_id, rss)
		except KeyboardInterrupt:
			self.db_hdlr.close_db()
			self.net_srv.stop()
			self.net_srv.join(60)
			self.trilat.stop()
			self.trilat.join(20)
			self.serial_conn.close()