Beispiel #1
0
int nsleep(const struct timespec *req, struct timespec *rem)
{
	struct timespec temp_rem;
	if (nanosleep(req, rem) == -1)
	{
		if (errno == EINTR)
		{
			nsleep(rem, &temp_rem);
		}
		else
		{
			return errno;
		}
	}
	else
	{
		return 0;
	}
}
Beispiel #2
0
int main()
{
	pthread_t t[3];
	
	msg_buf1[0] = msg_buf1[1] = 0;
	msg_buf2[0] = msg_buf2[1] = 0;
	
	pthread_create( &t[0], NULL, thread1, NULL);
	pthread_create( &t[1], NULL, thread2, NULL);
	pthread_create( &t[2], NULL, thread3, NULL);
	
	while (1) {
		nsleep(1, 0);
		printf("Hello from main\n");
	}
		
	   
	return 0;
}
Beispiel #3
0
int throttle_calibrate (int rate)
{
   uint32_t i, usec, calib, laps = 50000;
   struct timeval tv1, tv2;

   gettimeofday (&tv1, NULL);
   for (i = 0; i < laps; i++)
   {
      nsleep (1);
   }
   gettimeofday (&tv2, NULL);
   usec = (tv2.tv_sec - tv1.tv_sec) * 100000.0 + (tv2.tv_usec - tv1.tv_usec);
   calib = (int)((1000000.0 / rate) * (50000.0 / usec));

   DEBUG ("start = %u; stop = %u; ", (uint32_t)tv1.tv_usec, (uint32_t)tv2.tv_usec);
   DEBUG ("benchmark: %d laps in %u usecs => ", laps, usec);
   DEBUG ("calib = %u\n", calib);

   return calib;
}
// Cancellable send loop, initiated which must be initiated with an IO-channel
static ssize_t slac_iosendloop(void *vargs, atomic_int *cancel)
{
    int err;
    bool infloop = true;
    int i;
    iosendloop_args_t *args = (iosendloop_args_t*)vargs;
    if (args->max_tries > 0) {
        i = 0;
        infloop = false;
    }
    while (atomic_load(cancel) == 0) {
        err = ethsend(args->ethconn, args->ethframe, args->framelen);
        if (err != 0) {
            return -1;
        }
        if (!infloop && i++ >= args->max_tries) {
            break;
        }
        nsleep(args->senddelay_ns);
    }
    return 0;
}
Beispiel #5
0
void usleep(unsigned long microseconds)
{
	/* TODO: proper implementation */
	nsleep(microseconds * 1000);
}
Beispiel #6
0
void
ngraph_sleep(int t)
{
  nsleep(t);
}
Beispiel #7
0
/*
 * msleep() - Sleep for msec miliseconds.
 *
 * @msec:	Number of miliseconds to sleep.
 */
void msleep(long msec) 
{
	nsleep(msec * 1000000LL);
}
Beispiel #8
0
int main()
{

    //Declaracion de variables:

	uint8_t j, i, l, k, va, vs;
	uint32_t rc_nota, rc_vol;
 	uint16_t boton;
	uint8_t note;

        uint32_t t2;
        uint16_t b1, b2, b3, b4;
	uint8_t c1, c2, c3, c4, c5, valor;
    


//Inicializacion de perifericos

gpio_init(0x01); //9BITS  6 ENTRADAS(BOTONES) 3 SALIDAS(2 LEDS Y PWM) PIN1:PWM - PIN2:MODO - PIN3: LEDBLANCO
set_digpot(0x64); //0  Ohms
va=0; //Volumen actual



        
	for (l = 1; l < 15; l++)
	{
	    //c1 = 6+(l*10);		//Escala a una octava (7)	     
	   
	    c1 = 4+(l*6);			//Escala a dos octavas (14)
	    msleep(500);
	
	if (c1 > 2 && c1 < 8){b1 = 180; b3 = 0; c3 = 118; c2 = 20987;}		//selección de la nota dependiendo la distancia
        else if (c1 > 8 && c1 < 14){b1 = 162; b3 = 18; c3 = 130; c2 = 20987;}
	else if (c1 > 14 && c1 < 20){b1 = 144; b3 = 36; c3 = 146; c2 = 20741;}
	else if (c1 > 20 && c1 < 26){b1 = 138; b3 = 42; c3 = 150; c2 = 20741;}
	else if (c1 > 26 && c1 < 32){b1 = 124; b3 = 56; c3 = 166; c2 = 20741;}
	else if (c1 > 32 && c1 < 38){b1 = 112; b3 = 68; c3 = 181; c2 = 20495;}
        else if (c1 > 38 && c1 < 44){b1 = 100; b3 = 80; c3 = 202; c2 = 20495;}
	else if (c1 > 44 && c1 < 50){b1 = 90; b3 = 90; c3 = 236; c2 = 20987;}
        else if (c1 > 50 && c1 < 56){b1 = 81; b3 = 99; c3 = 260; c2 = 20987;}
	else if (c1 > 56 && c1 < 62){b1 = 72; b3 = 108; c3 = 293; c2 = 20741;}
	else if (c1 > 62 && c1 < 68){b1 = 69; b3 = 111; c3 = 301; c2 = 20741;}
	else if (c1 > 68 && c1 < 74){b1 = 62; b3 = 118; c3 = 332; c2 = 20741;}
	else if (c1 > 74 && c1 < 80){b1 = 56; b3 = 124; c3 = 362; c2 = 20495;}
        else if (c1 > 80 && c1 < 86){b1 = 50; b3 = 130; c3 = 405; c2 = 20495;}
	
	b4 = 21 + b3;
    
    	for (i=1; i<b4;i++)
	    {
	        b2 = b1+76;

	        for (j=75; j<b2; j++)			//recorre cada una de las muestras (b1 tercera octava)
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			//se asigna el ciclo util por tiempo
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
            }
	}
    



}
Beispiel #9
0
int main(int argc, char **argv)
{
	struct args args = {
		/* Defaults. */
		.stack		= "ip",
		.add_rules	= 0,
		.ebtables	= "/sbin/ebtables",
		.sleep		= 10,
		.parents	= 0,
		.daemon		= 0,

		/* This parameter expects something like
		 * "experiment/stack/column/run".
		 */
		.file		= NULL,

		.count		= 0,
		.entries	= 0,
		.ifs		= NULL,
	};

	int i, sk, rcount;
	FILE *f;
	double start;
	struct ebt_counter *cnt;

	/* Read parameters. */
	argp_parse(&argp, argc, argv, 0, NULL, &args);

	/* Install ebtables(8) rules. */
	if (args.add_rules) {
		for (i = 0; i < args.count; i++)
			ebt_add_rule(args.ebtables, args.stack, args.ifs[i]);
	}

	/* Create parent paths of @args.file. */
	if (args.file && args.parents)
		assert(!close(mkdir_parents(args.file)));

	/* Test that only the expected ebtables(8) rules are in place.
	 * This is important to avoid silently wrong measurements.
	 */
	sk = ebt_socket();
	if (sk < 0)
		err(1, "Can't get a socket");
	rcount = ebt_rule_count(sk, args.stack);
	if (rcount != args.count)
		errx(1, "There is a mismatch between the number of ebtables(8) rules installed (= %i) and the number of monitored interfaces (= %i)",
		rcount, args.count);
	if (!rcount)
		errx(1, "There is no ebtables(8) rules to measure");

	/* Create sampling file. */
	if (args.file) {
		f = fopen(args.file, "w");
		if (!f)
			err(1, "Can't open file `%s'", args.file);
		ebt_add_header_to_file(sk, args.stack, f);
	} else {
		f = stdout;
	}

	/* Daemonize. */
	if (args.daemon && daemon(1, 1))
		err(1, "Can't daemonize");

	start = now();
	if (args.file) {
		ebt_write_sample_to_file(sk, args.stack, f);
		if (fflush(f))
			err(1, "Can't save content of file `%s'", args.file);
	} else {
		cnt = ebt_create_cnt(sk, args.stack);
		assert(cnt);
	}

	while (1) {
		double diff = now() - start;
		if (diff < args.sleep)
			nsleep(args.sleep - diff);
		else
			warnx("Option --sleep=%i is too little; not enough time to estimate rates. Consider increasing the period",
			args.sleep);

		start = now();
		if (args.file)
			ebt_write_sample_to_file(sk, args.stack, f);
		else
			ebt_write_rates_to_file(sk, args.stack, f, args.sleep,
				cnt);
		if (fflush(f))
			err(1, "Can't save content of file `%s'",
				args.file ? args.file : "STDOUT");
	}

	ebt_free_cnt(cnt);
	if (args.file)
		assert(!fclose(f));
	ebt_close(sk);
	end_args(&args);
	return 0;
}
Beispiel #10
0
int TCPApplication::usleep(long microsleep)
{
	return nsleep(1000L*microsleep);
}
Beispiel #11
0
void msleep(uint32_t n) {
	nsleep(1000000 * (uint64_t)n);
}
Beispiel #12
0
int main()
{

    //Declaracion de variables:

	uint8_t j, i, l, k, va, v, vs, vol;
	uint32_t rc_nota, rc_vol;
 	uint16_t boton;
	uint8_t note;

        uint32_t t2, c1;
        uint16_t b1, b2, b3, b4;
	uint8_t c2, c3, c4, c5, c6, valor;
	
    


	//Inicializacion de perifericos

	gpio_init(0x01); //9BITS  6 ENTRADAS(BOTONES) 3 SALIDAS(2 LEDS Y PWM) PIN1:PWM - PIN2:MODO - PIN3: LEDBLANCO
	v=1; //Volumen actual
	vol=0;
	for(;;)
	{
		rc_vol=read_count1(); //Obtiene el valor de tiempo de lectura del sensor de volumen
		vs=vsig_pot(rc_vol, vol); //Calcula el valor siguiente del potenciometro
		volumen(va, vs); //Asigna el potenciometro al valor siguiente
		va=vs; //Actualiza el valor presente

	
		c1 = read_count0();
		c6 = sel_nota(c1,v);	
	
		if (c6 == 1){b1 = 180; b3 = 0; c3 = 118; c2 = 20987;
		for (i=1; i<10;i++)
	    	{
	        	b2 = b1+76;

			for (j=75; j<b2; j++)			
		        {
		            c4 = j*c3;
		            c5 = c2-c4;
		 
		            set_pin(1,1);			
	   	            nsleep(c4);
			    set_pin(0,1);
			    nsleep(c5);
		        }
             }
	}
		
        else if (c6 == 2){b1 = 162; b3 = 18; c3 = 130; c2 = 20987;
	for (i=1; i<10;i++)
    	{
		b2 = b1+76;

		for (j=75; j<b2; j++)			
		{
		    c4 = j*c3;
		    c5 = c2-c4;
	 
		    set_pin(1,1);			
		    nsleep(c4);
		    set_pin(0,1);
		    nsleep(c5);
		}
	}
    }

	else if (c6 == 3){b1 = 144; b3 = 36; c3 = 146; c2 = 20741;
	for (i=1; i<10;i++)
	{
		b2 = b1+76;

	        for (j=75; j<b2; j++)			
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
	}
    }
	
	else if (c6 == 4){b1 = 138; b3 = 42; c3 = 150; c2 = 20741;
	for (i=1; i<10;i++)
	{
		b2 = b1+76;

	        for (j=75; j<b2; j++)			
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
            }
	}

	else if (c6 == 5){b1 = 124; b3 = 56; c3 = 166; c2 = 20741;
	for (i=1; i<10;i++)
	{
	        b2 = b1+76;

	        for (j=75; j<b2; j++)			
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
            }
	}
	
	else if (c6 == 6){b1 = 112; b3 = 68; c3 = 181; c2 = 20495;
	for (i=1; i<10;i++)
	{
		b2 = b1+76;

	        for (j=75; j<b2; j++)			
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
            }
	}

	else if (c6 == 7){b1 = 100; b3 = 80; c3 = 202; c2 = 20495;
	for (i=1; i<10;i++)
	{
		b2 = b1+76;

	        for (j=75; j<b2; j++)			
                {
                    c4 = j*c3;
                    c5 = c2-c4;
	 
                    set_pin(1,1);			
   	            nsleep(c4);
	            set_pin(0,1);
	            nsleep(c5);
                }
            }
	}
	else if(c6==0){msleep(100);}
    
    }

}