Programma javascript

di il
11 risposte

Programma javascript

Buonasera,
Io sto cercando di sviluppare un programmino molto semplice che utilizza javascript: vorrei che un determinato valore mi venga fornito in loop ogni mezzo secondo. Non é per un sito web bensi per SimHub, uno strumento per riprodurre le dashboard dei volanti reali delle Formula 1, in simhub si può scegliere se usare javascript o NCalc.
Sono mesi che sto cercando di farlo ma non ci riesco spero mi possiate dare una mano.
Ci spero tanto
Cordiali Saluti

11 Risposte

  • Re: Programma javascript

    Ciao Lorenz, benvenuto nel forum!
    Sono un po' poche informazioni per comprendere appieno il problema...
    Comunque, da quello che mi dici, sembra che tu sia interessato ad un "setInterval"

    Nel tuo caso potrebbe essere qualcosa del genere:
    
    setInterval( function () {
    	// codice che prende il valore
    }, 500);
    
    Comunque, non conoscendo SimHub e non sapendo in che scope verrà eseguito il codice, non sono sicuro che questa funzionalità sia disponibile nel tuo caso.
    Buona giornata
  • Re: Programma javascript

    Ho provato ma mi dice: Expression error:setInterval is not defined
  • Re: Programma javascript

    Significa che l'interprete utilizzato da SimHub non rende disponibile una funzione setInterval, quindi c'è da trovare un altro metodo...

    Su un forum ho letto che il codice javascript viene eseguito in una specie di loop, giusto?
    In tal caso, potresti provare a prendere il tempo e salvarlo in una variabile. Dopodiché puoi usare questa informazione per aspettare fino a che non passa mezzo secondo.

    Questo che ti propongo è solo un esempio di codice, poi dovrai adattarlo in base alle necessità (più che altro per spiegare cosa intendo):
    
    var now = Date.now();
    
    // Se abbiamo modo di calcolare il tempo passato
    if (root["last_time"] !== null) {
    
    	// Controlliamo quanto tempo è passato dall'ultima esecuzione
    	var deltaTime = now - root["last_time"]
    	
    	// Teniamo un contatore (root["millisec"]). Se non è ancora stato inizializzato, inizializziamolo a 0.
    	if (root["millisec"] == null) {
    		root["millisec"] = 0;
    	}
    	
    	// Aggiungiamo a questo contatore il tempo passato nell'ultima esecuzione
    	root["millisec"] += deltaTime;
    	
    	// Se in totale sono passati più di 500 ms, eseguiamo il codice e resettiamo il contatore
    	if (root["millisec"] > 500) {
    		// Esegui codice
    		// ...
    		
    		// Resettiamo il contatore
    		root["millisec"] = 0;
    	}
    }
    
    // Impostiamo la variabile "last_time" per la successiva esecuzione
    root["last_time"] = now;
    
    Dalla documentazione di Jint (l'interprete in uso da SimHub) la funzione "Date.now()" dovrebbe essere disponibile. Fammi sapere come va
  • Re: Programma javascript

    Si adesso non mi da più l'errore che mi dava prima
    Però non ho capito dove devo mettere il codice che mi da il valore che é questo: $prop("GarySwallowDataPlugin.Leaderboard.Position02.IntervalGap")

    Scusami se chiedo sempre ma non sono per nulla pratico in questo campo e non vorrei fare altri errori
  • Re: Programma javascript

    Verso la fine trovi un commento "Esegui codice". Quello è il punto dove inserirlo, al posto dei puntini di sospensione
  • Re: Programma javascript

    Ho fatto come mi hai detto tu ma non funziona
    Allegati:
    29409_009b21335a1c6eadd37db52a1ffda985.png
    29409_009b21335a1c6eadd37db52a1ffda985.png
  • Re: Programma javascript

    Beh, dalla documentazione sembra che per mostrare un risultato devi ritornarlo, come se fosse dentro ad una funzione.
    Ti consiglio di inizializzare una variabile all'inizio del codice per contenere il valore che vuoi visualizzare, dargli il valore di prop in quella sezione del codice, e ritornarlo alla fine del codice:
    
    var value = null;
    
    // ...
    
    	if (root["millisec"] > 500) {
    		value = $prop('...');
    
    // ...
    
    return value;
    
    Prova così e vedi se ti dà qualche risultato
  • Re: Programma javascript

    Non so se ho messo il codice nella giusta posizione ma purtroppo mi da ancora questo errore
    Allegati:
    29409_ae6eb51b10ba6973d04030b71b1dece6.png
    29409_ae6eb51b10ba6973d04030b71b1dece6.png

    29409_b01a9ab0eec6f7e7152266d82c7cf26d.png
    29409_b01a9ab0eec6f7e7152266d82c7cf26d.png
  • Re: Programma javascript

    In effetti no...
    I puntini di sospensione nel mio messaggio precedente intendevano includere il codice che c'era fra un pezzo e l'altro. La prima riga è corretta, ma l'if era già presente nel codice. Non si intendeva di duplicarlo, ma di modificare ciò che c'era all'interno.
    Inoltre, il return va come ultimissima riga.

    Un consiglio: fare solo un copia incolla di codice che ti viene dato online non solo ti crea più problemi, ma può anche essere pericoloso se non stai attento. Sforzati sempre di capire cosa fa il codice che stai usando
  • Re: Programma javascript

    Intanto grazie mille del consiglio, sto provando a capire e secondo me cosi dovrebbe andare, però alla fine mi da sempre [null]
    Non voglio che diventi un impegno per voi aiutarmi in questo programmino che mi rendo conto da solo che è molto semplice ma io di programmazione ne capisco veramente poco ma mi manca solo questo tassello per finire tutto e mi dispiacerebbe moltissimo non portare a termine il lavoro che ormai porto avanti da mesi e mesi.
    Spero mi possiate aiutare comunque.
    Allegati:
    29409_c3ff7b6b4785377549b629870dab9b22.png
    29409_c3ff7b6b4785377549b629870dab9b22.png
  • Re: Programma javascript

    Non preoccuparti
    Adesso il codice è come l'avevo immaginato, mi spiace non funzioni. Purtroppo non ho sotto mano quel programma per fare dei test accurati.
    Se fossi in te, farei dei piccoli test, giusto per capire bene come funziona questo sistema. Prova a:
    - mostrare un valore (anche fisso, impostato a mano, giusto per tesare)
    - seguire gli esempi riportati sulla documentazione e capire come funzionano
    - nel codice che hai adesso, provare a ritornare altri valori così da vedere se hanno il valore che ti aspetti

    Questo dovrebbe darti le capacità necessarie per correggere lo script laddove ha problemi
Devi accedere o registrarti per scrivere nel forum
11 risposte