Exemple #1
0
 def notify(timer):  # metodo statico.
     # viene evocato ogni volta che il numero del timer cambia
     # da in output il nuovo valore del timer.
     # se il nuovo valore è 0, restituisce TEMPO_FINITO, che può essere ignorato o meno a seconda di dove viene richiamato il metodo
     audioInterface.output_audio(timer)
     if (timer == 0):
         return TEMPO_FINITO
def click_bottone_destra(channel):
    global statoTimer
    if (statoTimer == TIMER_IN_IMPOSTAZIONE):
        timerDaImpostare.incrementaTimer(+1)

    elif (statoTimer == TIMER_IMPOSTATO_REGISTRAZIONE_ESERCIZIO
          ):  # l'utente decide di mantenere l'esercizio appena registrato
        outputInterface.output_audio(FILE_AUDIO.INVIO_DATI_IN_CORSO)
        audio_acquisizione_esercizio()
        statoTimer = TUTTO_SPENTO
def click_bottone_sinistra(channel):
    global statoTimer
    if (statoTimer == TIMER_IN_IMPOSTAZIONE):
        if (timerDaImpostare.timer != 0):
            timerDaImpostare.incrementaTimer(-1)

    elif (statoTimer == TIMER_IMPOSTATO_REGISTRAZIONE_ESERCIZIO
          ):  # l'utente decide di scartare l'esercizio appena registrato
        outputInterface.output_audio(FILE_AUDIO.VALORE_SCARTATO)
        datasetEsercizio = [
            0
        ]  #non è il caso di azzerare anche il timer perchè alla prossima pressione del tasto centrale verrà istanziato un nuovo oggetto timer
        statoTimer = TUTTO_SPENTO
  def outputTimer(tempo):
    timer = audio_timer.Timer(tempo)

    #conto alla rovescia prima dell'inizio 
    timer_pre = Timer(TEMPO_PRE_INIZIO_CORREZIONE)
    outputInterface.output_audio(FILE_AUDIO.INIZIO_REGISTRAZIONE_TRA_QUALCHE_SECONDO.format(SECONDI_PRE_REGISTRAZIONE))
    timer_pre.audio_conto_alla_rovescia(1)

    #inizio della fase di acquisizione e correzione
    outputInterface.output_audio(FILE_AUDIO.VIA)                                                        #"via"
    time.sleep(1)
    timer.audio_conto_alla_rovescia(3)  #il numero di secondi rimanenti viene dato in output ogni tre secondi
    
    #alla fine, do in output il resoconto dell'esecuzione dell'esercizio
    correttezzaMedia = correttezzaMedia / n_feedBack
    outputInterface.outputAudio(FILE_AUDIO.RESOCONTO_ESERCIZIO.format(correttezzaMedia))
def click_bottone_centrale(channel):
    global statoTimer
    global timerDaImpostare

    if (
            statoTimer == TUTTO_SPENTO
    ):  # timer da impostare da capo (questo è il primo click sul tasto centrale)
        outputInterface.output_audio(
            "/home/pi/Downloads/Tesina-master/Project/S3_Registrazione_esercizio/F1_SW_Pulsanti/beep-01a.wav"
        )
        print("dovevo aver suonato")
        statoTimer = TIMER_IN_IMPOSTAZIONE
        timerDaImpostare = audio_timer.Timer(
            0)  #istazio un nuovo oggetto timer

    elif (statoTimer == TIMER_IN_IMPOSTAZIONE and timerDaImpostare.timer !=
          0):  # l'utente ha terminato l'impostazione del timer
        outputInterface.output_audio(FILE_AUDIO.CONFERMA_TIMER)
        statoTimer = TIMER_IMPOSTATO_REGISTRAZIONE_ESERCIZIO
def audio_acquisizione_esercizio():

    outputInterface.output_audio(
        FILE_AUDIO.INIZIO_REGISTRAZIONE_TRA_QUALCHE_SECONDO.format(
            SECONDI_PRE_REGISTRAZIONE))

    conto_alla_rovescia_pre_registrazione = audio_timer.Timer(
        SECONDI_PRE_REGISTRAZIONE)
    conto_alla_rovescia_pre_registrazione.audio_conto_alla_rovescia(
        1)  #"5..4..3..2.."

    outputInterface.output_audio(FILE_AUDIO.VIA)  #"via"
    time.sleep(1)

    timerDaImpostare.audio_conto_alla_rovescia(1)  #"7..6..5..4.."

    outputInterface.output_audio(
        FILE_AUDIO.REGISTRAZIONE_TERMINATA)  #"registrazione terminata"