MCPcopy Create free account
hub / github.com/c-jimenez/open-ocpp / gen_centralsystem

Function gen_centralsystem

tools/json2cpp/json2cpp.py:764–841  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

762
763
764def 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)

Callers 1

json2cpp.pyFile · 0.85

Calls 3

appendMethod · 0.80
writeMethod · 0.80
closeMethod · 0.80

Tested by

no test coverage detected