Skip to content

Commit 099cc02

Browse files
committed
wip #109 fix #118p
1 parent 6a3d9a8 commit 099cc02

File tree

6 files changed

+15
-12
lines changed

6 files changed

+15
-12
lines changed

api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from tinydb.operations import delete
1212
from cachetools import cached, TTLCache
1313
from coderbot import CoderBot
14-
from program import ProgramEngine
14+
from program import ProgramEngine, Program
1515
from config import Config
1616

1717
bot_config = Config.get()
@@ -156,7 +156,7 @@ def saveProgram(data, overwrite):
156156
existing_program = prog_engine.load(data["name"])
157157
if existing_program and not overwrite:
158158
return "askOverwrite"
159-
elif existing_program and existing_program["default"] == True:
159+
elif existing_program and existing_program.is_default() == True:
160160
return "defaultOverwrite"
161161
program = Program(name=data["name"], code=data["code"], dom_code=data["dom_code"])
162162
prog_engine.save(program)

cv/image.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@
3939
MIN_MATCH_COUNT = 10
4040

4141
try:
42-
import zbar
43-
code_scanner = zbar.ImageScanner()
42+
from pyzbar.pyzbar import decode
4443
except:
4544
logging.info("zbar not availabe")
4645

@@ -259,8 +258,8 @@ def find_qr_code(self):
259258
text_found = None
260259
img_size = self._data.shape
261260
gray = cv2.cvtColor(self._data, cv2.COLOR_BGR2GRAY)
262-
image_code = zbar.Image(img_size[1], img_size[0], "Y800", gray.tostring())
263-
code_num = code_scanner.scan(image_code)
261+
image_code = decode(gray)
262+
logging.warning(str(image_code))
264263
for symbol in image_code:
265264
text_found = symbol.data
266265
break

data/programs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"_default": {"1": {"filename": "./data/program_cnn_test.json", "name": "cnn_test", "default": "False"}, "2": {"filename": "./data/program_test_record_sound.json", "name": "test_record_sound", "default": "False"}, "3": {"filename": "./data/program_event_test.data", "name": "event_test", "default": "False"}, "4": {"filename": "./data/defaults/programs/program_demo_obstacle_avoidance.json", "name": "demo_obstacle_avoidance", "default": "True"}, "5": {"filename": "./data/defaults/programs/program_demo_line_follower.json", "name": "demo_line_follower", "default": "True"}, "6": {"filename": "./data/defaults/programs/program_test_find_code.json", "name": "test_find_code", "default": "True"}, "7": {"filename": "./data/defaults/programs/program_demo_color_seeker.json", "name": "demo_color_seeker", "default": "True"}, "8": {"filename": "./data/defaults/programs/program_demo_sound_clap_control.json", "name": "demo_sound_clap_control", "default": "True"}, "9": {"filename": "./data/defaults/programs/program_test_sound_hear.json", "name": "test_sound_hear", "default": "True"}, "10": {"filename": "./data/defaults/programs/program_test_find_path_ahead.json", "name": "test_find_path_ahead", "default": "True"}, "11": {"filename": "./data/defaults/programs/program_test_find_face.json", "name": "test_find_face", "default": "True"}, "12": {"filename": "./data/defaults/programs/program_test_img_average.json", "name": "test_img_average", "default": "True"}, "13": {"filename": "./data/defaults/programs/program_test_cnn.json", "name": "test_cnn", "default": "True"}, "14": {"filename": "./data/defaults/programs/program_test_sound.json", "name": "test_sound", "default": "True"}, "15": {"filename": "./data/defaults/programs/program_test_find_text.json", "name": "test_find_text", "default": "True"}, "16": {"filename": "./data/defaults/programs/program_demo_ar.json", "name": "demo_ar", "default": "True"}, "17": {"filename": "./data/defaults/programs/program_test_find_color.json", "name": "test_find_color", "default": "True"}, "18": {"filename": "./data/defaults/programs/program_test_sonar.json", "name": "test_sonar", "default": "True"}, "19": {"filename": "./data/defaults/programs/program_test_sound_rec.json", "name": "test_sound_rec", "default": "True"}}}
1+
{"_default": {"1": {"default": "False", "filename": "./data/program_cnn_test.json", "name": "cnn_test"}, "2": {"default": "False", "filename": "./data/program_test_record_sound.json", "name": "test_record_sound"}, "3": {"default": "False", "filename": "./data/program_event_test.data", "name": "event_test"}, "4": {"default": "True", "filename": "./data/defaults/programs/program_demo_obstacle_avoidance.json", "name": "demo_obstacle_avoidance"}, "5": {"default": "True", "filename": "./data/defaults/programs/program_demo_line_follower.json", "name": "demo_line_follower"}, "6": {"default": "True", "filename": "./data/defaults/programs/program_test_find_code.json", "name": "test_find_code"}, "7": {"default": "True", "filename": "./data/defaults/programs/program_demo_color_seeker.json", "name": "demo_color_seeker"}, "8": {"default": "True", "filename": "./data/defaults/programs/program_demo_sound_clap_control.json", "name": "demo_sound_clap_control"}, "9": {"default": "True", "filename": "./data/defaults/programs/program_test_sound_hear.json", "name": "test_sound_hear"}, "10": {"default": "True", "filename": "./data/defaults/programs/program_test_find_path_ahead.json", "name": "test_find_path_ahead"}, "11": {"default": "True", "filename": "./data/defaults/programs/program_test_find_face.json", "name": "test_find_face"}, "12": {"default": "True", "filename": "./data/defaults/programs/program_test_img_average.json", "name": "test_img_average"}, "13": {"default": "True", "filename": "./data/defaults/programs/program_test_cnn.json", "name": "test_cnn"}, "14": {"default": "True", "filename": "./data/defaults/programs/program_test_sound.json", "name": "test_sound"}, "15": {"default": "True", "filename": "./data/defaults/programs/program_test_find_text.json", "name": "test_find_text"}, "16": {"default": "True", "filename": "./data/defaults/programs/program_demo_ar.json", "name": "demo_ar"}, "17": {"default": "True", "filename": "./data/defaults/programs/program_test_find_color.json", "name": "test_find_color"}, "18": {"default": "True", "filename": "./data/defaults/programs/program_test_sonar.json", "name": "test_sonar"}, "19": {"default": "True", "filename": "./data/defaults/programs/program_test_sound_rec.json", "name": "test_sound_rec"}}}

main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ def serve_vue_app(filename):
7272
"""
7373
return send_from_directory('dist', filename)
7474

75-
@app.route('/docs/<path:filename')
75+
@app.route('/docs/<path:filename>')
7676
def serve_docs_app(filename):
7777
"""
7878
Serve (a build of) the documentation
79-
'cb_docs' is the output of `npx vuepress build pages/`
79+
'cb_docs' is the output of `npx vuepress build pages/`
8080
from the 'docs' repository
8181
"""
8282
return send_from_directory('cb_docs', filename)

program.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,12 @@ def save(self, program):
8989
query = Query()
9090
self._program = program
9191
program_db_entry = program.as_dict()
92-
program_db_entry["filename"] = os.path.join(PROGRAM_PATH, PROGRAM_PREFIX, program.name, PROGRAM_SUFFIX)
92+
program_db_entry["filename"] = os.path.join(PROGRAM_PATH, PROGRAM_PREFIX + program.name + PROGRAM_SUFFIX)
9393
if self._programs.search(query.name == program.name) != []:
9494
self._programs.update(program_db_entry, query.name == program.name)
9595
else:
9696
self._programs.insert(program_db_entry)
97-
f = open(program_db_entry["filename"], 'w')
97+
f = open(program_db_entry["filename"], 'w+')
9898
json.dump(program.as_dict(), f)
9999
f.close()
100100

@@ -111,8 +111,8 @@ def delete(self, name):
111111
query = Query()
112112
program_db_entries = self._programs.search(query.name == name)
113113
if program_db_entries != []:
114+
os.remove(program_db_entries[0]["filename"])
114115
self._programs.remove(query.name == name)
115-
os.remove(program_db_entry["filename"])
116116

117117
def create(self, name, code):
118118
self._program = Program(name, code)
@@ -174,6 +174,9 @@ def check_end(self):
174174
def is_running(self):
175175
return self._running
176176

177+
def is_default(self):
178+
return self._default
179+
177180
def run(self):
178181
try:
179182
program = self

requirements_stub.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ protobuf==3.6.1
3030
Pypubsub==4.0.0
3131
pytz==2018.4
3232
pyyaml>=4.2b1
33+
pyzbar==0.1.7
3334
requests==2.20.0
3435
six==1.11.0
3536
smbus2==0.2.0

0 commit comments

Comments
 (0)