Skip to content

Commit 585835f

Browse files
committed
fix init CoderBot
1 parent 0d8fb94 commit 585835f

File tree

4 files changed

+21
-19
lines changed

4 files changed

+21
-19
lines changed

coderbot/api.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,7 @@
2626

2727
BUTTON_PIN = 16
2828

29-
config = Config.read()
30-
bot = CoderBot.get_instance(motor_trim_factor=float(config.get('move_motor_trim', 1.0)),
31-
motor_max_power=int(config.get('motor_max_power', 100)),
32-
motor_min_power=int(config.get('motor_min_power', 0)),
33-
hw_version=config.get('hardware_version'),
34-
pid_params=(float(config.get('pid_kp', 1.0)),
35-
float(config.get('pid_kd', 0.1)),
36-
float(config.get('pid_ki', 0.01)),
37-
float(config.get('pid_max_speed', 200)),
38-
float(config.get('pid_sample_time', 0.01))))
29+
bot = CoderBot.get_instance()
3930
audio_device = Audio.get_instance()
4031
cam = Camera.get_instance()
4132

coderbot/coderbot.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,10 @@ def exit(self):
157157
s.cancel()
158158

159159
@classmethod
160-
def get_instance(cls, motor_trim_factor=1.0, motor_max_power=100, motor_min_power=0, hw_version="5", pid_params=(0.8, 0.1, 0.01, 200, 0.01)):
160+
def get_instance(cls, motor_trim_factor=1.0, motor_max_power=100, motor_min_power=0, hw_version="5", pid_params=(0.8, 0.1, 0.01, 200, 0.01), from_defaults=True):
161161
if not cls.the_bot:
162+
if from_defaults:
163+
raise ValueError("incorrect CoderBot initialisation")
162164
cls.the_bot = CoderBot(motor_trim_factor=motor_trim_factor, motor_max_power= motor_max_power, motor_min_power=motor_min_power, hw_version=hw_version, pid_params=pid_params)
163165
return cls.the_bot
164166

coderbot/main.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,16 @@ def run_server():
6666
try:
6767
try:
6868
app.bot_config = Config.read()
69-
70-
bot = CoderBot.get_instance()
69+
bot = CoderBot.get_instance(motor_trim_factor=float(app.bot_config.get('move_motor_trim', 1.0)),
70+
motor_max_power=int(app.bot_config.get('motor_max_power', 100)),
71+
motor_min_power=int(app.bot_config.get('motor_min_power', 0)),
72+
hw_version=app.bot_config.get('hardware_version'),
73+
pid_params=(float(app.bot_config.get('pid_kp', 1.0)),
74+
float(app.bot_config.get('pid_kd', 0.1)),
75+
float(app.bot_config.get('pid_ki', 0.01)),
76+
float(app.bot_config.get('pid_max_speed', 200)),
77+
float(app.bot_config.get('pid_sample_time', 0.01))),
78+
from_defaults=False)
7179

7280
try:
7381
audio_device = Audio.get_instance()

coderbot/program.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,13 @@ def __init__(self):
8787
for filename in filenames:
8888
if PROGRAM_PREFIX in filename:
8989
program_name = filename[len(PROGRAM_PREFIX):-len(PROGRAM_SUFFIX)]
90-
logging.info("adding program %s in path %s as default %r", program_name, dirname, ("default" in dirname))
91-
with open(os.path.join(dirname, filename), "r") as f:
92-
program_dict = json.load(f)
93-
program_dict["default"] = "default" in dirname
94-
program = Program.from_dict(program_dict)
95-
self.save(program)
90+
if self._programs.search(query.name == program_name) == []:
91+
logging.info("adding program %s in path %s as default %r", program_name, dirname, ("default" in dirname))
92+
with open(os.path.join(dirname, filename), "r") as f:
93+
program_dict = json.load(f)
94+
program_dict["default"] = "default" in dirname
95+
program = Program.from_dict(program_dict)
96+
self.save(program)
9697

9798
@classmethod
9899
def get_instance(cls):

0 commit comments

Comments
 (0)