Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53

    [JAVA - J2ME] Cronografo più segnale acustico

    salve a tutti!
    mi hanno chiesto di fare un piccolo programma per nokia in java, solo che ho riscontrato un problema.
    la base è un semplice cronografo che, dato un tempo (tipo 15 minuti e 27 secondi, quindi espresso in 00:15:27:000) cominci un conto alla rovescia e, arrivati agli ultimi 10 secondi, li scandisca con un tono (allo scadere del tempo il suono è più acuto e lungo).

    la parte acustica l'ho fatta ed anche la parte del cronografo solo che, in quest'ultima, ho riscontrato un problema di "tempistica".
    mi spiego meglio.
    facendo delle prove con l'emulatore del wtk ho notato che i secondi scanditi non sono perfettamente a tempo con l'orologio vero e proprio, non che dopo sfasi con l'ora, ma semplicemente non sono regolari.
    per segnare i secondi ho usato il System.currentTimeMillis(), ma ho visto che prima di ricaricare il tempo trascorso, passano 230 millisecondi (uno in più o uno in meno).
    per farvi capire meglio vi posto la parte del codice in questione.
    P.S.: i toni li ho trattati con i thread
    P.P.S.: non badate alla cascata di if, è ancora in versione di prova
    Codice PHP:
        public void run()
          {
            
    oraPrima System.currentTimeMillis();
              
    String ris FormatoOra(oraPrimanowtempoDisp);
            
    txt.setString(ris);
            
    int ore Integer.parseInt(ris.substring(0,2));
            
    int min Integer.parseInt(ris.substring(3,5));
            
    int sec Integer.parseInt(ris.substring(6,8));
            
    int mil Integer.parseInt(ris.substring(9,10));
            
    ThreadSuona ts = new ThreadSuona();
            
    ThreadSuonaFine tsf = new ThreadSuonaFine();
            
            if (
    ore == && min == && sec == && !secondi[9])
              { 
    ts.start(); secondi[9] = true;}
            else if (
    ore == && min == && sec == && !secondi[8])
              { 
    ts.start(); secondi[8] = true;}      
            else if (
    ore == && min == && sec == && !secondi[7])
              { 
    ts.start(); secondi[7] = true;}  
            else if (
    ore == && min == && sec == && !secondi[6])
              { 
    ts.start(); secondi[6] = true;}  
            else if (
    ore == && min == && sec == && !secondi[5])
              { 
    ts.start(); secondi[5] = true;}  
            else if (
    ore == && min == && sec == && !secondi[4])
              { 
    ts.start(); secondi[4] = true;}  
            else if (
    ore == && min == && sec == && !secondi[3])
              { 
    ts.start(); secondi[3] = true;}  
            else if (
    ore == && min == && sec == && !secondi[2])
              { 
    ts.start(); secondi[2] = true;}  
            else if (
    ore == && min == && sec == && !secondi[1])
              { 
    ts.start(); secondi[1] = true;}  
            else if (
    ore == && min == && sec == && !secondi[0])
              { 
    tsf.start(); secondi[0] = true;}              
          } 
    FormatoOra restituisce la differenza tra l'ora in cui si esegue lo start del cronografo e il tempo nell'istante "oraPrima", in formato "hh:mm:ss:SSS" il tutto sottratto al tempo iniziale, ovvero i 15minuti e 27 secondi, mentre txt.setString(ris) setta la textBox con il risultato di FormatoOra.
    qualcuno ha una soluzione?
    personalmente pensavo di trattare ore, minuti e secondi con il gregorian calendar, mentre i decimi/centesimi/millesimi con il currentTimeMillis... voi??
    spero di essermi spiegato in maniera decente...!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    nessuno sa niente a riguardo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.