diff --git a/htmlgen/htmlgen.py b/htmlgen/htmlgen.py index ba49a39e..58e73666 100644 --- a/htmlgen/htmlgen.py +++ b/htmlgen/htmlgen.py @@ -2,6 +2,23 @@ import os, sys, json, re +# copy&paste from dbfixup.py +zero_db = [ + "00_21 00_22 00_26 01_28|00_25 01_20 01_21 01_24", + "00_23 00_30 01_22 01_25|00_27 00_29 01_26 01_29", + "01_12 01_14 01_16 01_18|00_10 00_11 01_09 01_10", + "00_13 01_17 00_15 00_17|00_18 00_19 01_13 00_14", + "00_34 00_38 01_33 01_37|00_35 00_39 01_38 01_40", + "00_33 00_41 01_32 01_34|00_37 00_42 01_36 01_41", +] + +zero_bits = set() + +for zdb in zero_db: + a, b = zdb.split("|") + for bit in b.split(): + zero_bits.add(bit) + class UnionFind: def __init__(self): self.parents = dict() @@ -363,7 +380,13 @@ for segtype in segbits.keys(): grp_bits = set() for pip, bits in gdata.items(): grp_bits |= bits - grp_bits = sorted(grp_bits) + + def bit_key(b): + if b in zero_bits: + return "b" + b + return "a" + b + + grp_bits = sorted(grp_bits, key=bit_key) for bit in grp_bits: print("" % bit, file=f) @@ -399,6 +422,7 @@ for segtype in segbits.keys(): if len(shared_bits[bit]) > 1: if first_note: print("

Note(s):
", file=f) + print("Warning: Groups sharing bit %s: %s." % (bit, ", ".join(sorted(shared_bits[bit])))) print("Groups sharing bit %s: %s.
" % (bit, ", ".join(sorted(shared_bits[bit]))), file=f) first_note = False if not first_note: diff --git a/utils/dbcheck.sh b/utils/dbcheck.sh new file mode 100644 index 00000000..dbcb203a --- /dev/null +++ b/utils/dbcheck.sh @@ -0,0 +1,5 @@ +#!/bin/bash +python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clblm,int}_l.db +python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clblm,int}_r.db +python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clbll,int}_l.db +python3 ${XRAY_UTILS_DIR}/dbcheck.py ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits_{clbll,int}_r.db diff --git a/utils/dbfixup.py b/utils/dbfixup.py index 1d7ce43c..7e6b4afe 100644 --- a/utils/dbfixup.py +++ b/utils/dbfixup.py @@ -2,6 +2,15 @@ import sys, os, re +zero_db = [ + "00_21 00_22 00_26 01_28|00_25 01_20 01_21 01_24", + "00_23 00_30 01_22 01_25|00_27 00_29 01_26 01_29", + "01_12 01_14 01_16 01_18|00_10 00_11 01_09 01_10", + "00_13 01_17 00_15 00_17|00_18 00_19 01_13 00_14", + "00_34 00_38 01_33 01_37|00_35 00_39 01_38 01_40", + "00_33 00_41 01_32 01_34|00_37 00_42 01_36 01_41", +] + def add_zero_bits(tile_type): assert os.getenv("XRAY_DATABASE") == "artix7" dbfile = "%s/%s/segbits_%s.db" % (os.getenv("XRAY_DATABASE_DIR"), os.getenv("XRAY_DATABASE"), tile_type) @@ -23,6 +32,18 @@ def add_zero_bits(tile_type): bit = "%02d_%02d" % (fidx, bitidx) if bit not in bits: bits.add("!" + bit) + for zdb in zero_db: + a, b = zdb.split("|") + a = a.split() + b = b.split() + match = False + for bit in a: + if bit in bits: + match = True + if match: + for bit in b: + if bit not in bits: + bits.add("!" + bit) new_lines.add(" ".join([tag] + sorted(bits))) with open(dbfile, "w") as f: for line in sorted(new_lines): diff --git a/utils/environment.sh b/utils/environment.sh index df6bf646..671d8ab0 100644 --- a/utils/environment.sh +++ b/utils/environment.sh @@ -14,6 +14,7 @@ export XRAY_GENHEADER="${XRAY_UTILS_DIR}/genheader.sh" export XRAY_BITREAD="${XRAY_TOOLS_DIR}/bitread" export XRAY_MERGEDB="bash ${XRAY_UTILS_DIR}/mergedb.sh" export XRAY_DBFIXUP="python3 ${XRAY_UTILS_DIR}/dbfixup.py" +export XRAY_DBCHECK="bash ${XRAY_UTILS_DIR}/dbcheck.sh" export XRAY_MASKMERGE="bash ${XRAY_UTILS_DIR}/maskmerge.sh" export XRAY_SEGMATCH="${XRAY_TOOLS_DIR}/segmatch" export XRAY_SEGPRINT="python3 ${XRAY_UTILS_DIR}/segprint.py"