-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathTHSensor_base.cpp
75 lines (58 loc) · 1.66 KB
/
THSensor_base.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "THSensor_base.h"
#include <Arduino.h>
#include <Wire.h>
void TempHumi::begin(uint8_t u8Reg) {
/* Start IIC */
TempHumi::I2c_Dev_Id = u8Reg;
Wire.begin();
/* THSensor don't need to software reset */
}
float TempHumi::ReadTemperature(void) {
//TO BE DEFINED IN HARDWARE CHILD CLASS
return 0;
}
float TempHumi::ReadHumidity(void) {
//TO BE DEFINED IN HARDWARE CHILD CLASS
return 0;
}
/****************************************************************************/
/*** Local Functions ***/
/****************************************************************************/
uint8_t TempHumi::isAvailable() {
//TO BE DEFINED IN HARDWARE CHILD CLASS
return 0;
}
void TempHumi::IIC_WriteCmd(uint8_t u8Cmd) {
/* Port to arduino */
Wire.beginTransmission(TempHumi::I2c_Dev_Id);
Wire.write(u8Cmd);
Wire.endTransmission();
}
/*num=1*/
uint8_t TempHumi::IIC_ReadReg(uint8_t u8Reg,uint8_t num) {
//TO BE DEFINED IN HARDWARE CHILD CLASS
return 0;
}
/*Write Reg*/
void TempHumi::IIC_WriteReg(uint8_t u8Reg, uint8_t u8Data) {
//TO BE DEFINED IN HARDWARE CHILD CLASSe.endTransmission();
}
uint16_t IIC_ReadData(void){
//TO BE DEFINED IN HARDWARE CHILD CLASS
return 0;
}
/**get data**/
uint16_t TempHumi::IIC_ReadData2byte(uint8_t u8Reg,uint8_t num){
uint16_t TempData = 0;
uint16_t tmpArray[num] = {0};
int cnt = 0;
IIC_WriteCmd(u8Reg);
Wire.requestFrom(TempHumi::I2c_Dev_Id, num);
while (Wire.available())
{
tmpArray[cnt] = Wire.read();
cnt++;
}
TempData = (tmpArray[num-2] << 8) | (tmpArray[num-1]);
return TempData;
}