-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmpl3115a2.py
More file actions
executable file
·94 lines (71 loc) · 1.73 KB
/
Copy pathmpl3115a2.py
File metadata and controls
executable file
·94 lines (71 loc) · 1.73 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env python
import math
import time
from ctypes import *
#cdll.LoadLibrary("./bcm2835.so")
sensor = CDLL("./sensor.so")
class mpl3115a2:
def __init__(self):
if (0 == sensor.bcm2835_init()):
print "bcm3835 driver init failed."
return
def writeRegister(self, register, value):
sensor.MPL3115A2_WRITE_REGISTER(register, value)
def readRegister(self, register):
return sensor.MPL3115A2_READ_REGISTER(register)
def active(self):
sensor.MPL3115A2_Active()
def standby(self):
sensor.MPL3115A2_Standby()
def initAlt(self):
sensor.MPL3115A2_Init_Alt()
def initBar(self):
sensor.MPL3115A2_Init_Bar()
def readAlt(self):
return sensor.MPL3115A2_Read_Alt()
def readTemp(self):
return sensor.MPL3115A2_Read_Temp()
def setOSR(self, osr):
sensor.MPL3115A2_SetOSR(osr);
def setStepTime(self, step):
sensor.MPL3115A2_SetStepTime(step)
def getTemp(self):
t = self.readTemp()
t_m = (t >> 8) & 0xff;
t_l = t & 0xff;
if (t_l > 99):
t_l = t_l / 1000.0
else:
t_l = t_l / 100.0
return (t_m + t_l)
def getAlt(self):
alt = self.readAlt()
alt_m = alt >> 8
alt_l = alt & 0xff
if (alt_l > 99):
alt_l = alt_l / 1000.0
else:
alt_l = alt_l / 100.0
return self.twosToInt(alt_m, 16) + alt_l
def getBar(self):
alt = self.readAlt()
alt_m = alt >> 6
alt_l = alt & 0x03
if (alt_l > 99):
alt_l = alt_l
else:
alt_l = alt_l
return (self.twosToInt(alt_m, 18))
def twosToInt(self, val, len):
# Convert twos compliment to integer
if(val & (1 << len - 1)):
val = val - (1<<len)
return val
mpl = mpl3115a2()
mpl.initAlt()
#mpl.initBar()
mpl.active()
time.sleep(1)
while 1:
print "MPL3115:", "\tAlt.", mpl.getAlt(), "\tTemp:", mpl.getTemp()
time.sleep(0.1)