MCPcopy Create free account
hub / github.com/Klipper3d/klipper / generate_responses_code

Method generate_responses_code

scripts/buildcommands.py:359–401  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

357 out += " .max_size=%d," % (max_size,)
358 return out
359 def generate_responses_code(self):
360 encoder_defs = []
361 output_code = []
362 encoder_code = []
363 did_output = {}
364 for msgname, msg in self.encoders:
365 encoded_msgid = self.msg_to_encid[msg]
366 if encoded_msgid in did_output:
367 continue
368 did_output[encoded_msgid] = True
369 code = (' if (__builtin_strcmp(str, "%s") == 0)\n'
370 ' return &command_encoder_%s;\n'
371 % (msg, encoded_msgid))
372 if msgname is None:
373 parsercode = self.build_parser(encoded_msgid, msg, 'output')
374 output_code.append(code)
375 else:
376 parsercode = self.build_parser(encoded_msgid, msg, 'command')
377 encoder_code.append(code)
378 encoder_defs.append(
379 "const struct command_encoder command_encoder_%s PROGMEM = {"
380 " %s\n};\n" % (
381 encoded_msgid, parsercode))
382 fmt = """
383%s
384
385const __always_inline struct command_encoder *
386ctr_lookup_encoder(const char *str)
387{
388 %s
389 return NULL;
390}
391
392const __always_inline struct command_encoder *
393ctr_lookup_output(const char *str)
394{
395 %s
396 return NULL;
397}
398"""
399 return fmt % ("".join(encoder_defs).strip(),
400 "".join(encoder_code).strip(),
401 "".join(output_code).strip())
402 def generate_commands_code(self):
403 cmd_by_encid = {
404 self.msg_to_encid[self.messages_by_name.get(msgname, msgname)]: cmd

Callers 1

generate_codeMethod · 0.95

Calls 1

build_parserMethod · 0.95

Tested by

no test coverage detected