import json
import requests
import serial
import time


URL_POST = "https://telecommande.funny-url.lol/"
CLE_SERCET = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmdW5ueS11cmwubG9sIiwiaWF0IjoxNzc0NDc1MDkwLCJleHAiOjE3NzcxNTM0OTAsIm5iZiI6NTAwfQ.2MqfE5iFQskS4CiuuBJo2eP9CV_yMOfp7uioMs3YxPw"
REQUETE_HEADERS = {"authorization": "Bearer " + CLE_SERCET}

arduino_serial_port = serial.Serial('/dev/ttyACM0',
                    baudrate=9600,
					parity=serial.PARITY_NONE,
					stopbits=serial.STOPBITS_ONE)



def lire_duree():
    signal = int.from_bytes(arduino_serial_port.read())
    secondes = int.from_bytes(arduino_serial_port.read())
    fractrionSecondes = int.from_bytes(arduino_serial_port.read())
    
    duree = secondes + (0.001 * fractrionSecondes)
    return duree


def formatter_duree_json(duree):
    return {"duree": str(duree)}


def envoyer_requete(body):
    reponse = requests.post(URL_POST, headers=REQUETE_HEADERS, json=body)
    print(str(reponse.status_code))



#arduino_serial_port.reset_input_buffer()

while True:
    while arduino_serial_port.in_waiting >= 3:
        duree = lire_duree()

        if duree == 0.0:
            continue
        
        duree_json = formatter_duree_json(duree)
        print(duree_json)
        envoyer_requete(duree_json)
    
    if arduino_serial_port.in_waiting < 3:
        arduino_serial_port.reset_input_buffer()
        
    time.sleep(0.1)
