예제 #1
0
파일: dht.c 프로젝트: BrainHunter/ethersex
void
dht_periodic(void)
{
  if (dht_global.polling_delay == 0)
  {
    /* read sensor data */
    dht_read();
    dht_global.polling_delay = DHT_POLLING_INTERVAL * HZ;
  }
  else if (--dht_global.polling_delay == 0)
  {
    dht_start();
  }
}
예제 #2
0
파일: test_dht.c 프로젝트: ccbon/ocp
int main(int argc, char **argv) {
	jlg_init();
	
	JLG_LOG("starting");
	JLG_DEBUG_ON();
	dht_t *dhtp = dht_create();
	properties_set_filename(dhtp->p, "./dht.properties");
	properties_reload(dhtp->p);

	
	JLG_DEBUG("starting dht");
	JLG_TRY(dht_start(dhtp));
	
	// demarrer un client interactif permettant:
	// imprimer statut reseau
	// stocker une cle/valeur
	// retrouver une cle/valeur
	// trouver le node responsable d'une cle
	// quitter l'appli en fermant l'agent
	dht_client_t *clientp = dht_client_create(dhtp);
	dht_client_start(clientp);
	
	
	dll_node_t *nodep = dhtp->p->hashp->dlistp->nodep;
	while (nodep) {
		hash_pair_t *pairp = nodep->valuep;
		JLG_DEBUG("%s->%s", pairp->key, (char *) pairp->value);
		nodep = nodep->nextp;
	}

	dht_stop(dhtp);
	
	int ret = pthread_join(dhtp->tcp_serverp->server_thread, NULL);
	JLG_CHECK(ret, "Error while using pthread_join. Error code returned: %d\n", ret);
	
	dht_delete(&dhtp);
cleanup:
	return JLG_RETURN_CODE;
}
예제 #3
0
파일: dht11.c 프로젝트: zuzy/lumlink_STM8
void read_dht11(void)
{
  uint8_t i;
  //u8 j,k;
  u8 sensor[5];
  unsigned char string[10];
  //char hum_string[10],temp_string[10];
  //char hum_string[80],temp_string[80];
  
  if(dht_start())
  {
    for(i = 0;i < 5;++i)
    {
      sensor[i] = read_dht11_byte();
    }
    dht11_output();
    DHT11 = 0;
    //if((sensor[0] + sensor[1] + sensor[2] + sensor[3]) == sensor[4])
    if((sensor[0] + sensor[2]) == sensor[4])
    {
      
      
      /*
      for(j=0;j<2;++j)
      {
        string[0] = sensor[0+j*2]/10+'0';
        string[1] = sensor[0+j*2]%10+'0';
        string[2] = '.';
        string[3] = sensor[1+j*2]/10+'0';
        string[4] = sensor[0+j*2]%10+'0';
        string[5] = '\0';
        Lcd_Puts(4,j,string);
      }
      */
      
      string[0] = sensor[0]/10+'0';
      string[1] = sensor[0]%10+'0';
      string[2] = '%';
      string[3] = ' ';
      string[4] = sensor[2]/10+'0';
      string[5] = sensor[2]%10+'0';
      string[6] = 0xdf;
      string[7] = 'c';
      string[8] = '\0';
      //rintf(string+7,"c");
      Lcd_Puts(0,0,string);

      
/*   
      k=0;
      k += sprintf(string,"%d.",sensor[0]);
      k += sprintf(string+k,"%d%% ",sensor[1]);//小数部分读不出来?dht11精度就是5%和1摄氏度,所以没有小数
      k += sprintf(string+k,"%d.",sensor[2]);
      sprintf(string+k,"%d`c",sensor[3]);
      Lcd_Puts(0,0,string);
      //Lcd_Puts(0,1,temp_string);   
*/    
      
 /*     
      k=0;
      k += sprintf(string,"hum:%d.",sensor[0]);
      k += sprintf(string+k,"%2d ",sensor[1]);
      k += sprintf(string+k,"tem:%d.",sensor[2]);
      sprintf(string+k,"%2d",sensor[3]);
      Lcd_Puts(0,0,string);
      //Lcd_Puts(0,1,temp_string);
*/ 
      
    }
  }
}