#! /usr/bin/env python

from evdev import InputDevice, categorize, ecodes
import time
import threading
from bluepy import btle

try:
  bdev = btle.Peripheral("CA:4F:01:C5:FE:3C", btle.ADDR_TYPE_RANDOM) # replace the MAC address by yours
except Exception as e:
  print(e)

time.sleep(1)

serv=bdev.getServiceByUUID("6e400001-b5a3-f393-e0a9-e50e24dcca9e")
characteristics=serv.getCharacteristics()
han=characteristics[0].getHandle()

dev=InputDevice('/dev/input/event17')

x=0
y=0
global pmiss
pmiss="x,x"
global miss
miss="0,0"

def send_stuff():
  while True:
     global miss
     global pmiss
     if miss!=pmiss:
        print miss
        bdev.writeCharacteristic(han,miss)
        pmiss=miss
     time.sleep(0.05)

t=threading.Thread(target=send_stuff)
t.daemon=True
t.start()

for event in dev.read_loop():
  if event.type==ecodes.EV_ABS:
    if event.code==ecodes.ABS_X:
       x=(event.value-127.5)*99.0/127.5;
    elif event.code==ecodes.ABS_Y:
       y=-(event.value-127.5)*99.0/127.5;
    t_miss="{:.0f}".format(x)+","+"{:.0f}".format(y)
    if t_miss!=pmiss:
       miss=t_miss 
