thermferm/devices.c

changeset 585
326cf2982eee
parent 584
ff7f038fae2f
child 586
504463dad07d
equal deleted inserted replaced
584:ff7f038fae2f 585:326cf2982eee
903 903
904 #ifdef HAVE_WIRINGPI_H 904 #ifdef HAVE_WIRINGPI_H
905 case DEVTYPE_DHT: 905 case DEVTYPE_DHT:
906 /* 906 /*
907 * Make sure we don't read the sensor within 2 seconds. 907 * Make sure we don't read the sensor within 2 seconds.
908 * But we use 20 seconds interval.
908 */ 909 */
909 now = time(NULL); 910 now = time(NULL);
910 if ((int)(now - dht11_last) > 2) { 911 if ((int)(now - dht11_last) > 20) {
911 dht11_pin = device->gpiopin; 912 dht11_pin = device->gpiopin;
912 dht11Read(); 913 dht11Read();
913 dht11_last = now; 914 dht11_last = now;
914 } 915 // }
915 if (device->subdevice == 0) { 916 if (device->subdevice == 0) {
916 piLock(LOCK_DEVICES); 917 piLock(LOCK_DEVICES);
917 if (dht11_valid) { 918 if (dht11_valid) {
918 device->value = dht11_temperature * 1000; 919 device->value = dht11_temperature * 1000;
919 device->timestamp = time(NULL); 920 device->timestamp = time(NULL);
931 } else { 932 } else {
932 device->present = DEVPRESENT_ERROR; 933 device->present = DEVPRESENT_ERROR;
933 } 934 }
934 piUnlock(LOCK_DEVICES); 935 piUnlock(LOCK_DEVICES);
935 } 936 }
937 }
936 break; 938 break;
937 939
938 case DEVTYPE_GPIO: 940 case DEVTYPE_GPIO:
939 if (device->direction == DEVDIR_IN_BIN) { 941 if (device->direction == DEVDIR_IN_BIN) {
940 piLock(LOCK_DEVICES); 942 piLock(LOCK_DEVICES);

mercurial