def inject_data_service(): target_code = flask.request.args.get("input", "") names = parse_ljsl.find_names(target_code) reg_maps = ljmmm.get_device_modbus_maps(expand_names=True, inc_orig=True) not_found_reg_names = [] tag_class_tuples = lj_scribe.find_classes_from_map(names, reg_maps, not_found_reg_names) tag_subtags_by_class = lj_scribe.fia_organize_tag_by_class(tag_class_tuples) target_code = lj_scribe.fix_not_found_reg_names(target_code, not_found_reg_names) original_names = map(lj_scribe.find_original_tag_str, names) summaries = map(lambda x: lj_scribe.render_tag_summary(*x), zip(tag_subtags_by_class, names, original_names)) original_names_to_summaries = zip(original_names, summaries) for (original_name, summary) in original_names_to_summaries: target_code = target_code.replace(original_name, summary) prefix = flask.render_template("scribe_prefix.html") postfix = flask.render_template("scribe_postfix.html") return prefix + target_code + postfix
def render_scribe(target_code, expand=False): names = parse_ljsl.find_names(target_code) not_found_reg_names = [] tag_class_tuples = lj_scribe.find_classes_from_map( names, reg_maps, not_found_reg_names ) tag_subtags_by_class = lj_scribe.fia_organize_tag_by_class(tag_class_tuples) target_code = lj_scribe.fix_not_found_reg_names( target_code, not_found_reg_names, ) original_names = map(lj_scribe.find_original_tag_str, names) summaries = map( lambda x: lj_scribe.render_tag_summary(*x ,expand=expand), zip(tag_subtags_by_class, names, original_names) ) original_names_to_summaries = zip(original_names, summaries) for (original_name, summary) in original_names_to_summaries: target_code = target_code.replace(original_name, summary) prefix = flask.render_template("scribe_prefix.html") postfix = flask.render_template("scribe_postfix.html") return prefix + target_code + postfix
def render_scribe(target_code): names = parse_ljsl.find_names(target_code) not_found_reg_names = [] tag_class_tuples = lj_scribe.find_classes_from_map( names, reg_maps, not_found_reg_names ) tag_subtags_by_class = lj_scribe.fia_organize_tag_by_class(tag_class_tuples) target_code = lj_scribe.fix_not_found_reg_names( target_code, not_found_reg_names ) original_names = map(lj_scribe.find_original_tag_str, names) summaries = map( lambda x: lj_scribe.render_tag_summary(*x), zip(tag_subtags_by_class, names, original_names) ) original_names_to_summaries = zip(original_names, summaries) for (original_name, summary) in original_names_to_summaries: target_code = target_code.replace(original_name, summary) prefix = flask.render_template("scribe_prefix.html") postfix = flask.render_template("scribe_postfix.html") return prefix + target_code + postfix
def inject_data(): """Controls to Inject data about register records into an HTML template. @return: HTML form through which the HTML template can be filled and rendered. @rtype: str or flask response (redirect) """ if flask.request.method == "GET": return flask.render_template("inject_data.html") target_code = flask.request.form.get("input", "") names = parse_ljsl.find_names(target_code) reg_maps = ljmmm.get_device_modbus_maps(expand_names=True, inc_orig=True) dev_regs = reg_maps[lj_scribe.TARGET_DEVICE] tag_class_tuples = 0 tag_subtags_by_class = 0 # This is NOT the best way to fix this issue. # The code should use lj_scribe.TARGET_DEVICES!!! try: tag_class_tuples = lj_scribe.find_classes(names, dev_regs) except lj_scribe.RegisterNotFoundError as e: dev_regs = reg_maps[lj_scribe.TARGET_DEVICE_DIGIT] try: tag_class_tuples = lj_scribe.find_classes(names, dev_regs) tag_subtags_by_class = lj_scribe.organize_tag_by_class(tag_class_tuples, dev_regs) except lj_scribe.RegisterNotFoundError as e: return "Register %s not found in Modbus map." % e.missing_reg_name tag_subtags_by_class = lj_scribe.organize_tag_by_class(tag_class_tuples, dev_regs) original_names = map(lj_scribe.find_original_tag_str, names) summaries = map(lambda x: lj_scribe.render_tag_summary(*x), zip(tag_subtags_by_class, names, original_names)) original_names_to_summaries = zip(original_names, summaries) for (original_name, summary) in original_names_to_summaries: target_code = target_code.replace(original_name, summary) prefix = flask.render_template("scribe_prefix.html") postfix = flask.render_template("scribe_postfix.html") return prefix + target_code + postfix
def test_render_tag_summary(self): with TEST_APP.test_request_context("/"): special_tag = parse_ljsl.TagComponent("", "PRE_", 100, 4, 3, "_POST", True, []) str_summary = lj_scribe.render_tag_summary( TEST_TAG_BY_CLASS_NAMES, [ special_tag, ANOTHER_ORIG_TAG, NO_LJMMM_ORIG_TAG ], "ORIG_TAG" ) self.assertEqual(str_summary.count("class-summary"), 3) self.assertEqual(str_summary.count("sub-tag"), 3) self.assertEqual(str_summary.count("individual-name"), 6) self.assertEqual(str_summary.count("individual-address"), 6) self.assertEqual(str_summary.count("ORIG_TAG"), 1)