#!/usr/bin/env python3
import socket
import sys
import time
from ev3dev2.motor import LargeMotor
from ev3dev2.motor import SpeedDPS, SpeedRPM, SpeedRPS, SpeedDPM

print('Modifikovany')
lm = LargeMotor('outA')
#lm.run_to_rel_pos(position_sp = 100, speed_sp = 100, stop_action = "hold")
#lm.on_for_seconds(speed = 20, seconds = 1)
#sys.exit()
lm.stop(stop_action="hold")
#sys.exit()
print(lm.position)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('', 10012)
print('starting on %s port %s' % server_address)
sock.bind(server_address)
sock.listen(1)
while True:
	print('cakam na spojenie')
	connection, client_address = sock.accept()
	try:
		print('connection from', client_address)
		while True:
			data = connection.recv(10)
			print('recieved', data, type(data))
			if data:
				print('uz ideeem!')
				num = [eval(i) for i in ("".join(map(chr, data))).split(" ")]
				print(num)
				if len(num) > 2 and num[0] == 1:
					print(num[0], num[1], num[2])
					l1 = lm.position
					lm.on_for_seconds(speed = num[1], seconds = num[2])
					lm.wait_while('running')
					print(lm.position)
					#l1 -= lm.position
					lm.run_forever(speed_sp = -10*num[1])
					message = str(l1-lm.position)
					while lm.position > l1: print(l1-lm.position)
					lm.stop(stop_action = "hold")
					connection.sendall(message.encode())
					#lm.run_to_rel_pos(position_sp = -lm.position, speed_sp = num[1]*-10)
					#lm.wait_while('running')
			else:
				break
	finally:
		connection.close()
