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

Method generate_commands_code

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

Source from the content-addressed store, hash-verified

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
405 for msgname, cmd in self.commands.items()
406 }
407 max_cmd_encid = max(cmd_by_encid.keys())
408 index = []
409 externs = {}
410 for encoded_msgid in range(max_cmd_encid+1):
411 if encoded_msgid not in cmd_by_encid:
412 index.append(" {\n},")
413 continue
414 funcname, flags, msgname = cmd_by_encid[encoded_msgid]
415 msg = self.messages_by_name[msgname]
416 externs[funcname] = 1
417 parsercode = self.build_parser(encoded_msgid, msg, 'response')
418 index.append(" {%s\n .flags=%s,\n .func=%s\n}," % (
419 parsercode, flags, funcname))
420 index = "".join(index).strip()
421 externs = "\n".join(["extern void "+funcname+"(uint32_t*);"
422 for funcname in sorted(externs)])
423 fmt = """
424%s
425
426const struct command_parser command_index[] PROGMEM = {
427%s
428};
429
430const uint16_t command_index_size PROGMEM = ARRAY_SIZE(command_index);
431"""
432 return fmt % (externs, index)
433 def generate_param_code(self):
434 sorted_param_types = sorted(
435 [(i, a) for a, i in self.all_param_types.items()])

Callers 1

generate_codeMethod · 0.95

Calls 2

build_parserMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected