Skip to content

Commit 4967d4d

Browse files
committed
bumo deps
1 parent f50165b commit 4967d4d

File tree

3 files changed

+50
-64
lines changed

3 files changed

+50
-64
lines changed

coderbot/api.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,6 @@
3030

3131
BUTTON_PIN = 16
3232

33-
settings = Config.read().get("settings")
34-
network_settings = Config.read().get("network")
35-
cloud_settings = Config.read().get("cloud")
36-
37-
bot = CoderBot.get_instance(settings=settings, motor_trim_factor=float(settings.get('move_motor_trim', 1.0)),
38-
motor_max_power=int(settings.get('motor_max_power', 100)),
39-
motor_min_power=int(settings.get('motor_min_power', 0)),
40-
hw_version=settings.get('hardware_version'),
41-
pid_params=(float(settings.get('pid_kp', 1.0)),
42-
float(settings.get('pid_kd', 0.1)),
43-
float(settings.get('pid_ki', 0.01)),
44-
float(settings.get('pid_max_speed', 200)),
45-
float(settings.get('pid_sample_time', 0.01))))
46-
audio_device = Audio.get_instance(settings)
47-
cam = Camera.get_instance(settings)
48-
Motion.get_instance(settings)
49-
CNNManager.get_instance(settings)
50-
5133
def get_serial():
5234
"""
5335
Extract serial from cpuinfo file

coderbot/main.py

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
import logging.handlers
88
import picamera
99
import connexion
10-
11-
from flask_cors import CORS
10+
from connexion.options import SwaggerUIOptions
11+
from connexion.middleware import MiddlewarePosition
12+
from starlette.middleware.cors import CORSMiddleware
1213

1314
from camera import Camera
1415
from motion import Motion
@@ -23,29 +24,26 @@
2324
# Logging configuration
2425
logger = logging.getLogger()
2526
logger.setLevel(os.environ.get("LOGLEVEL", "INFO"))
26-
# sh = logging.StreamHandler()
27-
# formatter = logging.Formatter('%(message)s')
28-
# sh.setFormatter(formatter)
29-
# logger.addHandler(sh)
3027

3128
## (Connexion) Flask app configuration
32-
3329
# Serve a custom version of the swagger ui (Jinja2 templates) based on the default one
3430
# from the folder 'swagger-ui'. Clone the 'swagger-ui' repository inside the backend folder
35-
options = {"swagger_ui": True}
36-
connexionApp = connexion.App(__name__, options=options)
37-
38-
# Connexion wraps FlaskApp, so app becomes connexionApp.app
39-
app = connexionApp.app
40-
# Access-Control-Allow-Origin
41-
CORS(app)
42-
app.debug = False
31+
swagger_ui_options = SwaggerUIOptions(swagger_ui=True)
32+
app = connexion.App(__name__, swagger_ui_options=swagger_ui_options)
33+
app.add_middleware(
34+
CORSMiddleware,
35+
position=MiddlewarePosition.BEFORE_EXCEPTION,
36+
allow_origins=["*"],
37+
allow_credentials=True,
38+
allow_methods=["*"],
39+
allow_headers=["*"],
40+
)
4341
app.prog_engine = ProgramEngine.get_instance()
4442

4543
## New API and web application
4644

4745
# API v1 is defined in v1.yml and its methods are in api.py
48-
connexionApp.add_api('v1.yml')
46+
app.add_api('v1.yml')
4947

5048
def button_pushed():
5149
if app.settings.get('button_func') == "startstop":
@@ -67,41 +65,50 @@ def run_server():
6765
cam = None
6866
try:
6967
try:
70-
app.settings = Config.read().get("settings")
71-
72-
bot = CoderBot.get_instance()
73-
68+
settings = Config.read().get("settings")
69+
app.settings = settings
70+
network_settings = Config.read().get("network")
71+
cloud_settings = Config.read().get("cloud")
72+
73+
bot = CoderBot.get_instance(settings=settings, motor_trim_factor=float(settings.get('move_motor_trim', 1.0)),
74+
motor_max_power=int(settings.get('motor_max_power', 100)),
75+
motor_min_power=int(settings.get('motor_min_power', 0)),
76+
hw_version=settings.get('hardware_version'),
77+
pid_params=(float(settings.get('pid_kp', 1.0)),
78+
float(settings.get('pid_kd', 0.1)),
79+
float(settings.get('pid_ki', 0.01)),
80+
float(settings.get('pid_max_speed', 200)),
81+
float(settings.get('pid_sample_time', 0.01))))
7482
try:
75-
audio_device = Audio.get_instance()
76-
audio_device.set_volume(int(app.settings.get('audio_volume_level')), 100)
77-
audio_device.say(app.settings.get("sound_start"))
83+
audio_device = Audio.get_instance(settings)
84+
audio_device.set_volume(int(settings.get('audio_volume_level')), 100)
85+
audio_device.say(settings.get("sound_start"))
7886
except Exception:
7987
logging.warning("Audio not present")
80-
8188
try:
82-
cam = Camera.get_instance()
83-
Motion.get_instance()
89+
cam = Camera.get_instance(settings)
90+
Motion.get_instance(settings)
8491
except picamera.exc.PiCameraError:
8592
logging.warning("Camera not present")
8693

87-
CNNManager.get_instance(app.settings)
94+
CNNManager.get_instance(settings)
8895
EventManager.get_instance("coderbot")
8996

90-
if app.settings.get('load_at_start') and app.settings.get('load_at_start'):
91-
prog = app.prog_engine.load(app.settings.get('load_at_start'))
97+
if settings.get('load_at_start') and settings.get('load_at_start'):
98+
prog = app.prog_engine.load(settings.get('load_at_start'))
9299
prog.execute()
93100

94101
CloudManager.get_instance()
95102

96103
except ValueError as e:
97-
app.settings = {}
104+
settings = {}
98105
logging.error(e)
99106

100107
bot.set_callback(bot.GPIOS.PIN_PUSHBUTTON, button_pushed, 100)
101108

102109
remove_doreset_file()
103110

104-
app.run(host="0.0.0.0", port=5000, debug=False, use_reloader=False, threaded=True)
111+
app.run(host="0.0.0.0", port=5000)
105112
finally:
106113
if cam:
107114
cam.exit()

requirements.txt

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
# API framework
2-
connexion==2.14.2
3-
Flask==2.2.3
4-
Flask-Cors==3.0.10
5-
tinydb==4.7.1
6-
Werkzeug==2.2.3
2+
connexion[uvicorn,swagger-ui]==3.0.5
3+
tinydb==4.8.0
74
cloud_api_robot_client @ git+https://github.com/CoderBotOrg/cloud_api_robot_client.git
85

96
# Misc utils
10-
setuptools==67.4.0
7+
setuptools==69.0.3
118
event-channel==0.4.3
129

1310
# IO extensions
1411
pigpio==1.78
15-
smbus2==0.4.2
16-
spidev==3.5
12+
smbus2==0.4.3
13+
spidev==3.6
1714

1815
# Audio
1916
sox==1.4.1
20-
PyAudio==0.2.12
21-
pyalsaaudio==0.9.2
17+
PyAudio==0.2.14
18+
pyalsaaudio==0.10.0
2219

2320
# Computer Vision
24-
grpcio==1.48.1
25-
numpy==1.24.2
26-
Pillow==9.4.0
27-
protobuf==4.22.0
21+
grpcio==1.60.0
22+
numpy==1.24.3
23+
Pillow==10.1.0
24+
protobuf==4.25.1
2825
opencv-contrib-python==4.5.5.62
29-
tflite-runtime==2.11.0
26+
tflite-runtime==2.12.0
3027
pytesseract==0.3.10
3128
picamera==1.13
3229
pyzbar==0.1.9

0 commit comments

Comments
 (0)