Пример #1
0
void get_server(receiver_param *rp, struct frame_t *frame_info)
{
    error_code_t e;
    FILE *stream;
    long file_size;

    stream = fopen(frame_info->data, "r");
    if(!stream)
    {
        if(errno == EACCES)
            send_error(rp->source_sd, NO_PERMISSION, 0);
        else if (errno == ENOENT)
            send_error(rp->source_sd, NO_FILE, 0);
        return;
    }
        
    file_size = get_file_size(stream);
    e = send_d(rp, (char*)&file_size, sizeof(long), 0);
    if(e != OK)
    {
        fclose(stream);
        return;
    }

    file_transfer(rp, stream, 1, file_size);
    fclose(stream);
}
Пример #2
0
void packet_write(int socket, PACKET *packet) {
	send_i(socket, packet->command);
	send_i(socket, packet->args_count);
	
	for (int i = 0; i < packet->args_count; i ++) {
		PACKET_ARG *arg = packet->args[i];
		send_i(socket, arg->length);
		send_d(socket, arg->length, arg->arg);
	}
}
Пример #3
0
error_code_t put(receiver_param *rp, const char *command) // ou sd ao invez do rp
{
    char *file_name;
    unsigned char name_size;
    long file_size;
    error_code_t e;
    FILE *stream;

    if (command[3] != ' ' && command[3] != '\0')
        return INV_CMD;
    
    file_name = (char*)&command[4];

    name_size = (unsigned char)strlen(file_name);

    if (name_size > DATA_MAX_SIZE)
        return BIG_NAME;

    stream = fopen(file_name, "r");
    if (!stream)
    {
        switch (errno)
        {
        case EACCES:
            return NO_PERMISSION;
        case ENOENT:
            return NO_FILE;
        }        
    }

    e = remote_command(rp, 'P', file_name, name_size, NULL);
    if (e != OK)
    {
        fclose(stream);
        return e;
    }

    file_size = get_file_size(stream); // tamanho do arquivo

    e = send_d(rp, (char*)&file_size, sizeof(long), 1); // talvez colocar mais coisas que o tamanho do arquivo
    if (e != OK)
    {
        fclose(stream);
        return e;
    }

    file_transfer(rp, stream, 2, file_size);
    
    fclose(stream);

    return OK;
}
Пример #4
0
   //******** TRI STRIPS ********
   virtual void faceCB(CBvert* v, CBface* f) {
  
      assert(v && f);
      
	  glNormal3dv(f->norm().data());

	  if (v->has_color()) 
	  {
			GL_COL(v->color(), alpha*v->alpha());
	  }
	   

	 //pass texture coordinates to opengl
	  glTexCoord2dv(att_function->get_attrib(v,f).data());

	  send_d(v,f);
	 
   
      glVertex3dv(v->loc().data());     // vertex coordinates
   }
Пример #5
0
int main()
{
	DDRD=0xFF;
	DDRB=0xFF;
	int i,sleep=500,blink=50;
	unsigned  int adc_value;	

	PORTD=0xFF;
	PORTB=0x00;

	ADCSRA  = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0);
	ADMUX=0x05;

	int s;
  	while(1) {
		ADCSRA  |= (1<<ADSC);	// Start conversion
		while (ADCSRA &  (1<<ADSC));
		
		s=adc_value = ADCW;
			//Store ADC result

		if(s>1000)
		{
			PORTB=0xFF;
		}
		else
		{
			PORTB=0x00;
			//_delay_ms(5000);
		}
		
		continue;

		i=s/1000;
		s=s%1000;
		send_d(i);
		_delay_ms(sleep);



		i=s/100;
		s=s%100;
		send_d(i);
		_delay_ms(sleep);



		i=s/10;
		s=s%10;
		send_d(i);
		_delay_ms(sleep);



		//i=s%10;
		//s=s/10;
		send_d(s);
		_delay_ms(sleep);


		send_d(10);
		_delay_ms(1000);
	}

}