Generate the code for the central system features @param templates: Code templates @type templates: {string,string} @param params: Command line parameters @type params: Parameters @param msg_list: List of OCPP messages per roles @type msg_
(templates, params, msg_list)
| 762 | |
| 763 | |
| 764 | def gen_centralsystem(templates, params, msg_list): |
| 765 | ''' |
| 766 | Generate the code for the central system features |
| 767 | |
| 768 | @param templates: Code templates |
| 769 | @type templates: {string,string} |
| 770 | |
| 771 | @param params: Command line parameters |
| 772 | @type params: Parameters |
| 773 | |
| 774 | @param msg_list: List of OCPP messages per roles |
| 775 | @type msg_list: {string, [string]} |
| 776 | ''' |
| 777 | |
| 778 | # Create output directories |
| 779 | csms_dir = os.path.join(params.output_dir, "centralsystem") |
| 780 | csms_dirs = [csms_dir] |
| 781 | csms_dirs.append(os.path.join(csms_dir, "chargepoint")) |
| 782 | csms_dirs.append(os.path.join(csms_dir, "interface")) |
| 783 | for dir in csms_dirs: |
| 784 | if not os.path.exists(dir): |
| 785 | os.mkdir(dir) |
| 786 | |
| 787 | # Generate interfaces |
| 788 | csms_interface_dir = csms_dirs[2] |
| 789 | ocpp_version_suffix = params.ocpp_version[4:] |
| 790 | |
| 791 | gen_file_path = os.path.join(csms_interface_dir, f"ICentralSystem{ocpp_version_suffix}.h") |
| 792 | gen_file = open(gen_file_path, "wt") |
| 793 | env = jinja2.Environment() |
| 794 | template = env.from_string(templates["csms_icentralsystem"]) |
| 795 | rendered_template = template.render(csms_msgs = msg_list["from_csms"], cs_msgs = msg_list["from_cs"], ocpp_version_namespace = params.ocpp_version, ocpp_version_suffix = ocpp_version_suffix) |
| 796 | gen_file.write(rendered_template) |
| 797 | gen_file.close() |
| 798 | |
| 799 | gen_file_path = os.path.join(csms_interface_dir, f"IChargePointRequestHandler{ocpp_version_suffix}.h") |
| 800 | gen_file = open(gen_file_path, "wt") |
| 801 | env = jinja2.Environment() |
| 802 | template = env.from_string(templates["csms_ichargepointrequesthandler"]) |
| 803 | rendered_template = template.render(csms_msgs = msg_list["from_csms"], cs_msgs = msg_list["from_cs"], ocpp_version_namespace = params.ocpp_version, ocpp_version_suffix = ocpp_version_suffix) |
| 804 | gen_file.write(rendered_template) |
| 805 | gen_file.close() |
| 806 | |
| 807 | # Generate central system classes |
| 808 | chargepoint_dir = csms_dirs[1] |
| 809 | gen_file_path = os.path.join(chargepoint_dir, f"ChargePointProxy{ocpp_version_suffix}.h") |
| 810 | gen_file = open(gen_file_path, "wt") |
| 811 | env = jinja2.Environment() |
| 812 | template = env.from_string(templates["csms_chargepointproxy_header"]) |
| 813 | rendered_template = template.render(csms_msgs = msg_list["from_csms"], cs_msgs = msg_list["from_cs"], ocpp_version_namespace = params.ocpp_version, ocpp_version_suffix = ocpp_version_suffix) |
| 814 | gen_file.write(rendered_template) |
| 815 | gen_file.close() |
| 816 | |
| 817 | gen_file_path = os.path.join(chargepoint_dir, f"ChargePointProxy{ocpp_version_suffix}.cpp") |
| 818 | gen_file = open(gen_file_path, "wt") |
| 819 | env = jinja2.Environment() |
| 820 | template = env.from_string(templates["csms_chargepointproxy_impl"]) |
| 821 | rendered_template = template.render(csms_msgs = msg_list["from_csms"], cs_msgs = msg_list["from_cs"], ocpp_version_namespace = params.ocpp_version, ocpp_version_suffix = ocpp_version_suffix) |
no test coverage detected