Skip to content

Commit 71197ea

Browse files
committed
Fix #8, #7, use macro to replace class static field. 1.0.4
1 parent 0ca48d0 commit 71197ea

7 files changed

Lines changed: 44 additions & 53 deletions

File tree

SimpleDHT.cpp

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ SOFTWARE.
2424

2525
#include "SimpleDHT.h"
2626

27-
int SimpleDHT::ErrSuccess = 0;
28-
int SimpleDHT::ErrStartLow = 100;
29-
int SimpleDHT::ErrStartHigh = 101;
30-
int SimpleDHT::ErrDataLow = 102;
31-
int SimpleDHT::ErrDataRead = 103;
32-
int SimpleDHT::ErrDataEOF = 104;
33-
int SimpleDHT::ErrDataChecksum = 105;
34-
3527
int SimpleDHT::confirm(int pin, int us, byte level) {
3628
// wait one more count to ensure.
3729
int cnt = us / 10 + 1;
@@ -48,7 +40,7 @@ int SimpleDHT::confirm(int pin, int us, byte level) {
4840
if (!ok) {
4941
return -1;
5042
}
51-
return ErrSuccess;
43+
return SimpleDHTErrSuccess;
5244
}
5345

5446
byte SimpleDHT::bits2byte(byte data[8]) {
@@ -67,24 +59,24 @@ int SimpleDHT::parse(byte data[40], byte* ptemperature, byte* phumidity) {
6759
byte check = bits2byte(data + 32);
6860
byte expect = humidity + humidity2 + temperature + temperature2;
6961
if (check != expect) {
70-
return ErrDataChecksum;
62+
return SimpleDHTErrDataChecksum;
7163
}
7264
*ptemperature = temperature;
7365
*phumidity = humidity;
74-
return ErrSuccess;
66+
return SimpleDHTErrSuccess;
7567
}
7668

7769
int SimpleDHT::read(int pin, byte* ptemperature, byte* phumidity, byte pdata[40]) {
78-
int ret = ErrSuccess;
70+
int ret = SimpleDHTErrSuccess;
7971

8072
byte data[40] = {0};
81-
if ((ret = sample(pin, data)) != ErrSuccess) {
73+
if ((ret = sample(pin, data)) != SimpleDHTErrSuccess) {
8274
return ret;
8375
}
8476

8577
byte temperature = 0;
8678
byte humidity = 0;
87-
if ((ret = parse(data, &temperature, &humidity)) != ErrSuccess) {
79+
if ((ret = parse(data, &temperature, &humidity)) != SimpleDHTErrSuccess) {
8880
return ret;
8981
}
9082

@@ -120,10 +112,10 @@ int SimpleDHT11::sample(int pin, byte data[40]) {
120112
// 1. PULL LOW 80us
121113
// 2. PULL HIGH 80us
122114
if (confirm(pin, 80, LOW)) {
123-
return ErrStartLow;
115+
return SimpleDHTErrStartLow;
124116
}
125117
if (confirm(pin, 80, HIGH)) {
126-
return ErrStartHigh;
118+
return SimpleDHTErrStartHigh;
127119
}
128120

129121
// DHT11 data transmite:
@@ -132,7 +124,7 @@ int SimpleDHT11::sample(int pin, byte data[40]) {
132124
// 3. PULL HIGH 70us, bit(1)
133125
for (int j = 0; j < 40; j++) {
134126
if (confirm(pin, 50, LOW)) {
135-
return ErrDataLow;
127+
return SimpleDHTErrDataLow;
136128
}
137129

138130
// read a bit, should never call method,
@@ -148,18 +140,18 @@ int SimpleDHT11::sample(int pin, byte data[40]) {
148140
delayMicroseconds(10);
149141
}
150142
if (!ok) {
151-
return ErrDataRead;
143+
return SimpleDHTErrDataRead;
152144
}
153145
data[j] = (tick > 3? 1:0);
154146
}
155147

156148
// DHT11 EOF:
157149
// 1. PULL LOW 50us.
158150
if (confirm(pin, 50, LOW)) {
159-
return ErrDataEOF;
151+
return SimpleDHTErrDataEOF;
160152
}
161153

162-
return ErrSuccess;
154+
return SimpleDHTErrSuccess;
163155
}
164156

165157
int SimpleDHT22::sample(int pin, byte data[40]) {
@@ -181,10 +173,10 @@ int SimpleDHT22::sample(int pin, byte data[40]) {
181173
// 1. PULL LOW 80us
182174
// 2. PULL HIGH 80us
183175
if (confirm(pin, 80, LOW)) {
184-
return ErrStartLow;
176+
return SimpleDHTErrStartLow;
185177
}
186178
if (confirm(pin, 80, HIGH)) {
187-
return ErrStartHigh;
179+
return SimpleDHTErrStartHigh;
188180
}
189181

190182
// DHT11 data transmite:
@@ -193,7 +185,7 @@ int SimpleDHT22::sample(int pin, byte data[40]) {
193185
// 3. PULL HIGH 70us, bit(1)
194186
for (int j = 0; j < 40; j++) {
195187
if (confirm(pin, 50, LOW)) {
196-
return ErrDataLow;
188+
return SimpleDHTErrDataLow;
197189
}
198190

199191
// read a bit, should never call method,
@@ -209,17 +201,17 @@ int SimpleDHT22::sample(int pin, byte data[40]) {
209201
delayMicroseconds(10);
210202
}
211203
if (!ok) {
212-
return ErrDataRead;
204+
return SimpleDHTErrDataRead;
213205
}
214206
data[j] = (tick > 3? 1:0);
215207
}
216208

217209
// DHT11 EOF:
218210
// 1. PULL LOW 50us.
219211
if (confirm(pin, 50, LOW)) {
220-
return ErrDataEOF;
212+
return SimpleDHTErrDataEOF;
221213
}
222214

223-
return ErrSuccess;
215+
return SimpleDHTErrSuccess;
224216
}
225217

SimpleDHT.h

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,30 +27,30 @@
2727

2828
#include <Arduino.h>
2929

30+
// Success.
31+
#define SimpleDHTErrSuccess 0
32+
// Error to wait for start low signal.
33+
#define SimpleDHTErrStartLow 100
34+
// Error to wait for start high signal.
35+
#define SimpleDHTErrStartHigh 101
36+
// Error to wait for data start low signal.
37+
#define SimpleDHTErrDataLow 102
38+
// Error to wait for data read signal.
39+
#define SimpleDHTErrDataRead 103
40+
// Error to wait for data EOF signal.
41+
#define SimpleDHTErrDataEOF 104
42+
// Error to validate the checksum.
43+
#define SimpleDHTErrDataChecksum 105
44+
3045
class SimpleDHT {
31-
public:
32-
// Success.
33-
static int ErrSuccess;
34-
// Error to wait for start low signal.
35-
static int ErrStartLow;
36-
// Error to wait for start high signal.
37-
static int ErrStartHigh;
38-
// Error to wait for data start low signal.
39-
static int ErrDataLow;
40-
// Error to wait for data read signal.
41-
static int ErrDataRead;
42-
// Error to wait for data EOF signal.
43-
static int ErrDataEOF;
44-
// Error to validate the checksum.
45-
static int ErrDataChecksum;
4646
public:
4747
// to read from dht11.
4848
// @param pin the DHT11 pin.
4949
// @param ptemperature output, NULL to igore.
5050
// @param phumidity output, NULL to ignore.
5151
// @param pdata output 40bits sample, NULL to ignore.
5252
// @remark the min delay for this method is 1s.
53-
// @return SimpleDHT11::ErrSuccess is success; otherwise, failed.
53+
// @return SimpleDHTErrSuccess is success; otherwise, failed.
5454
int read(int pin, byte* ptemperature, byte* phumidity, byte pdata[40]);
5555
protected:
5656
// confirm the OUTPUT is level in us,
@@ -76,7 +76,6 @@ class SimpleDHT {
7676
int parse(byte data[40], byte* ptemperature, byte* phumidity);
7777
};
7878

79-
8079
/*
8180
Simple DHT11
8281

examples/DHT11Default/DHT11Default.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ void loop() {
1919
// read without samples.
2020
byte temperature = 0;
2121
byte humidity = 0;
22-
int err = SimpleDHT::ErrSuccess;
23-
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHT::ErrSuccess) {
22+
int err = SimpleDHTErrSuccess;
23+
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
2424
Serial.print("Read DHT11 failed, err="); Serial.print(err);
2525
return;
2626
}

examples/DHT11WithRawBits/DHT11WithRawBits.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ void loop() {
2020
byte temperature = 0;
2121
byte humidity = 0;
2222
byte data[40] = {0};
23-
int err = SimpleDHT::ErrSuccess;
24-
if ((err = dht11.read(pinDHT11, &temperature, &humidity, data)) != SimpleDHT::ErrSuccess) {
23+
int err = SimpleDHTErrSuccess;
24+
if ((err = dht11.read(pinDHT11, &temperature, &humidity, data)) != SimpleDHTErrSuccess) {
2525
Serial.print("Read DHT11 failed, err="); Serial.print(err);
2626
return;
2727
}

examples/DHT22Default/DHT22Default.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ void loop() {
1919
// read without samples.
2020
byte temperature = 0;
2121
byte humidity = 0;
22-
int err = SimpleDHT::ErrSuccess;
23-
if ((err = dht22.read(pinDHT22, &temperature, &humidity, NULL)) != SimpleDHT::ErrSuccess) {
22+
int err = SimpleDHTErrSuccess;
23+
if ((err = dht22.read(pinDHT22, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
2424
Serial.print("Read DHT22 failed, err="); Serial.print(err);
2525
return;
2626
}

examples/TwoSensorsDefault/TwoSensorsDefault.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ void loop() {
2525
// read without samples.
2626
byte temperature = 0;
2727
byte humidity = 0;
28-
int err = SimpleDHT::ErrSuccess;
29-
if ((err = dht11.read(dataPinSensor1, &temperature, &humidity, NULL)) != SimpleDHT::ErrSuccess) {
28+
int err = SimpleDHTErrSuccess;
29+
if ((err = dht11.read(dataPinSensor1, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
3030
Serial.print("Communication error with Sensor 1, err="); Serial.print(err);
3131
return;
3232
}
@@ -47,7 +47,7 @@ void loop() {
4747

4848
byte temperature2 = 0;
4949
byte humidity2 = 0;
50-
if ((err = dht11.read(dataPinSensor2, &temperature, &humidity, NULL)) != SimpleDHT::ErrSuccess) {
50+
if ((err = dht11.read(dataPinSensor2, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
5151
Serial.print("Communication error with Sensor 2, err="); Serial.print(err);
5252
return;
5353
}

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=SimpleDHT
2-
version=1.0.2
2+
version=1.0.4
33
author=Winlin <winlin@vip.126.com>
44
maintainer=Winlin <winlin@vip.126.com>
55
sentence=Arduino Temp & Humidity Sensors for DHT11 and DHT22.

0 commit comments

Comments
 (0)