SMPL

di il
40 risposte

SMPL

Ciao a tutti

qualcuno conosce questa funzione (se così si può definire) che implementata in c mi permette di poter programmare ad eventi???

se qualcuno la conosce fatemelo sapere perchè ho un po' di cose che voglio chiarire su un programma che sto facendo
grazie


ciao

40 Risposte

  • Re: SMPL

    Potresti utilizzare i segnali, quindi la funzione kill per lanciarli e la signal per registrare il comportamento del processo alla ricezione di un determinato segnale
  • Re: SMPL

    Ma questa è la risposta al topic sul programma????
    O sul SMPL?
  • Re: SMPL

    SMLP
  • Re: SMPL

    Sinceramente ora come ora sto solo utilizzando le funzioni

    cause
    schedule

    cioè con cause elimino un event in coda per metterne uno nuovo

    e schedule mi schedula l'evento in un determinato istante

    quello che avevo pensato e che se si verificava collisione (sovrapposizione dei due campi di lettura) allora poteva schedulare l'evento di lettura nuovamente nell'istante da me scelto casualmente e poi ciclare fino a quando l'istante scelto superava l'istante di fine lettura del primo
  • Re: SMPL

    Ah figo!! non le conoscevo ste funzioni
  • Re: SMPL

    Comunque continuiamo su questo post

    tanto il programma che dicevo è praticamente quello che ho messo in evidenza sull'altro post ora ti recupero quanto ho scritto fin'ora e te lo mando.
  • Re: SMPL

    Leggi quello che ti ho scritto nell'altro post, magari ti è utile
  • Re: SMPL

    #include "smpl.h" // Needed for SMPL
    #include <stdio.h>

    //===== Main program ==========================================================
    int main(void)
    {
    real Ts = 10; // Start identification time
    real te = 1.0e6; // Total simulation time
    int customer = 1; // Customer id (always '1' for this simulation)
    int event; // Event (1 = Start identification procedure, 2 = End identification procedure)
    int n_reader = 5; // Number of readers
    int reader[n_reader]; // Handle for readers facility
    int channel = 0; // Channel state: idle=0; busy=1
    int i,a,j;

    // Initialize SMPL subsystem
    smpl(0, "Readers collision");

    // Initialize readers facility
    reader[0] = facility("reader_0", 1);
    reader[1] = facility("reader_1", 1);
    reader[2] = facility("reader_2", 1);
    reader[3] = facility("reader_3", 1);
    reader[4] = facility("reader_4", 1);

    // Schedule "start identification" event at random time for each reader
    real start_time[n_reader];
    for (i=0; i<n_reader; i++) {
    start_time = expntl(Ts);
    }
    real start_time_min = te;
    for (i=0; i<n_reader; i++) {
    if (start_time_min>start_time)
    start_time_min=start_time;
    }
    for (i=0; i<n_reader; i++) {
    schedule(1, start_time-start_time_min, customer);
    }


    // Loop while simulation time is less than te
    while (time() < te)
    {
    // "Cause" the next event on the event list
    cause(&event,&customer);

    // Process the event
    switch(event)
    {
    case 1: // *** Start identification procedure and use of the protocol if it's necessary
    if (channel == 0)
    {
    channel = 1;
    // Schedule "finish identification" event at random time for each reader
    real finish_time[n_reader];
    finish_time = start_time + expntl(Ts);
    schedule(2, finish_time, costomer);
    }
    else //Ci sono collisioni
    reset(start_time);
    start_time=random(CW);
    schedule(1,start_time,costomer);
    }
    break;

    case 2: // *** End identification procedure
    channel = 0;
    // release(server, customer);
    break;
    }
    }

    // Output standard SMPL report
    report();

    return 0;
    }

    Io ho scritto questo anche se penso ci siano dei problemi sulla gestione della collisione

    comunque dacci un'occhiata e fammi sapere
  • Re: SMPL

    Che sistema operativo hai? Unix, Linux o Win?
  • Re: SMPL

    Win e linux (ubuntu), ma ora giro su win
  • Re: SMPL

    Se qualcosa non è chiaro fammi sapere
  • Re: SMPL

    Quello che ti ho detto sui thread appartiene allo standard POSIX, su win non fungono, a meno che non usi un emulatore di unix come cygwin.

    cmq a prima vista, non mi pare che entrino in gioco i thread
  • Re: SMPL

    Ma ti è chiara l'impostazione?

    fammi sapere se secondo te la gestisce bene o meno la collisione.

    e se hai dei dubbi su qualche funzione fnon esitare a chiedere.

    P.S. Utilizzando il visual, poichè penso non sia prevista la funzione smpl mi da ovviamente errore. Come posso fare?
    sai percaso dove posso trovare il compilatore che prevede l'smpl o come sia possibile implementare con il visual l'smpl, o se si scarica prorpio un compilatore adatto per l'smpl???
  • Re: SMPL

    Sto cercando di capire come funge il programma
    tra l'altro molto bello...

    riguardo al visual C (intendi quello vero?), non so, non l'ho mai usato; sono un fedelissimo del buon vecchio C, le scopiazzature di Bill non mi interessano
Devi accedere o registrarti per scrivere nel forum
40 risposte