Skip to content

Commit 9956ed2

Browse files
committed
caching database code
1 parent a45265a commit 9956ed2

3 files changed

Lines changed: 71 additions & 0 deletions

File tree

‎caching database/dockerfile‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM python:3.8-slim-buster
2+
3+
WORKDIR /app
4+
5+
COPY requirements.txt requirements.txt
6+
7+
RUN pip3 install -r requirements.txt
8+
9+
COPY . .
10+
11+
CMD ["python3", "index.py", "9600", "/dev/controller_sensor"]
12+
EXPOSE 3002

‎caching database/index.py‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
from flask import Flask, abort
2+
import serial, json, sys
3+
4+
####* User defined variables START *####
5+
try:
6+
sys.argv[1]
7+
except IndexError:
8+
baudrate = 9600 # defult value
9+
else:
10+
baudrate = sys.argv[1]
11+
12+
try:
13+
sys.argv[2]
14+
except IndexError:
15+
port = '/dev/controller_sensor' # defult value
16+
else:
17+
port = sys.argv[2]
18+
####! User defined variables END !####
19+
20+
# Flask app settings
21+
app = Flask(__name__)
22+
23+
# Serial port settings
24+
ser = serial.Serial()
25+
ser.baudrate = baudrate
26+
ser.port = port
27+
28+
# Openning serial port
29+
ser.open()
30+
31+
# Creating redis client
32+
redis = red.Redis(host='192.168.0.11', port=6379)
33+
34+
@app.route('/serial/caching/<action>')
35+
def caching_control(action):
36+
if action == 'START':
37+
while ser.is_open == True:
38+
message = ser.readline()
39+
decoded_message = message.decode('UTF-8')
40+
json_object = json.loads(decoded_message)
41+
redis.xadd(stream_name, json_object)
42+
return 'Caching done'
43+
44+
if action == 'CLOSE':
45+
ser.close()
46+
return 'Caching closed'
47+
48+
return abort(404)
49+
50+
if __name__ == '__main__':
51+
app.run(host='192.168.0.11', port=3002)

‎caching database/requirements.txt‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
click==7.1.2
2+
Flask==1.1.2
3+
itsdangerous==1.1.0
4+
Jinja2==2.11.3
5+
MarkupSafe==1.1.1
6+
pyserial==3.5
7+
redis==3.5.3
8+
Werkzeug==1.0.1

0 commit comments

Comments
 (0)