Skip to content

Commit 06ff71e

Browse files
Merge pull request #20 from cuplsensor/dev
Dev
2 parents 2057e40 + 1714c35 commit 06ff71e

File tree

3 files changed

+73
-5
lines changed

3 files changed

+73
-5
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
setuptools.setup(
88
name="cuplcodec",
9-
version="2.0.3",
9+
version="2.0.4",
1010
author="Malcolm Mackay",
1111
author_email="malcolm@plotsensor.com",
1212
description="Package for creating and decoding URLs that contain temperature and humidity samples.",
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from datetime import datetime
2+
from .instrumented import InstrumentedSampleT, InstrumentedSampleTRH, InstrumentedSample
3+
4+
5+
def encode(format,
6+
serial,
7+
secretkey,
8+
baseurl,
9+
smplintervalmins,
10+
resetsalltime,
11+
batteryadc,
12+
resetcause,
13+
usehmac,
14+
httpsdisable,
15+
tagerror) -> InstrumentedSample:
16+
"""
17+
Python-wrapped encoder factory.
18+
19+
Returns
20+
--------
21+
InstrumentedSample
22+
An object containing a list of timestamped environmental sensor samples.
23+
24+
"""
25+
26+
encoder = _get_encoder(format)(serial=serial,
27+
secretkey=secretkey,
28+
baseurl=baseurl,
29+
smplintervalmins=smplintervalmins,
30+
resetsalltime=resetsalltime,
31+
batteryadc=batteryadc,
32+
resetcause=resetcause,
33+
usehmac=usehmac,
34+
httpsdisable=httpsdisable,
35+
tagerror=tagerror,
36+
format=format)
37+
return encoder
38+
39+
40+
def _get_encoder(format: int):
41+
"""
42+
Parameters
43+
-----------
44+
formatcode:
45+
Value of the codec format field. Specifies which decoder shall be returned.
46+
47+
Return
48+
-------
49+
Decoder class for the given format code.
50+
51+
"""
52+
encoders = {
53+
InstrumentedSampleTRH.FORMAT_HDC2021_TRH: InstrumentedSampleTRH,
54+
InstrumentedSampleT.FORMAT_HDC2021_TEMPONLY: InstrumentedSampleT
55+
}
56+
try:
57+
encoder = encoders[format]
58+
except KeyError:
59+
# We need to test sending an unsupported format code.
60+
encoder = encoders[InstrumentedSampleTRH.FORMAT_HDC2021_TRH]
61+
62+
return encoder

wscodec/encoder/pyencoder/instrumented.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ def rhsample(self, countermax, counterstep):
145145

146146

147147
class InstrumentedSampleT(InstrumentedSample):
148+
FORMAT_HDC2021_TEMPONLY = 2
149+
148150
def __init__(self,
149151
serial='ABCDEFGH',
150152
secretkey='AAAACCCC11112222',
@@ -155,14 +157,15 @@ def __init__(self,
155157
resetcause=0,
156158
usehmac=True,
157159
httpsdisable=False,
158-
tagerror=False
160+
tagerror=False,
161+
format=FORMAT_HDC2021_TEMPONLY
159162
):
160163
super(InstrumentedSampleT, self).__init__(baseurl,
161164
serial,
162165
secretkey,
163166
smplintervalmins,
164167
batteryadc=batteryadc,
165-
format=2,
168+
format=format,
166169
resetsalltime=resetsalltime,
167170
usehmac=usehmac,
168171
httpsdisable=httpsdisable)
@@ -179,6 +182,8 @@ def pushsamples(self, num):
179182

180183

181184
class InstrumentedSampleTRH(InstrumentedSample):
185+
FORMAT_HDC2021_TRH = 1
186+
182187
def __init__(self,
183188
serial='ABCDEFGH',
184189
secretkey='AAAACCCC11112222',
@@ -189,14 +194,15 @@ def __init__(self,
189194
resetcause=0,
190195
usehmac=True,
191196
httpsdisable=False,
192-
tagerror=False
197+
tagerror=False,
198+
format=FORMAT_HDC2021_TRH
193199
):
194200
super(InstrumentedSampleTRH, self).__init__(baseurl,
195201
serial,
196202
secretkey,
197203
smplintervalmins,
198204
batteryadc=batteryadc,
199-
format=1,
205+
format=format,
200206
resetsalltime=resetsalltime,
201207
usehmac=usehmac,
202208
httpsdisable=httpsdisable)

0 commit comments

Comments
 (0)