mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-09-29 14:14:15 +02:00
Add electrical continuity checking to the scripting API
qet.checkContinuity(folioIndex) runs two structural checks against the live Terminal/Conductor object graph -- Terminal::conductors() and Conductor::relatedPotentialConductors(), the same primitive setConductorProperty() already uses -- rather than a heuristic read of the saved XML: - unconnected_terminal (info): a terminal with no conductor at all. Deliberately low severity -- routine (a spare relay contact, an unused optional pin), not necessarily a mistake. - potential_mismatch (error): two conductors electrically on the same potential (following bridged terminal strips and linked report elements, matching setConductorProperty()'s own scope) disagreeing on num/conductor_color/conductor_section/function/bus/cable. QElectroTech's own edits always keep every member of a potential identical, so any divergence found here came from hand-edited XML, a legacy file, or an external tool -- verified with a test that patches a saved file's XML directly to introduce exactly that. Documented plainly what this does NOT check and why: pin electrical direction/power conflicts and No/Nc/Common contact shorts, since QElectroTech's terminal data model (Generic/Inner/Outer/No/Nc/Common -- contact role within one relay, not signal direction) does not carry the information either would need. This is continuity/consistency checking, not full ERC. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -547,6 +547,11 @@ class QetScriptApi : public QObject
|
||||
const QString &pattern, const QString &replacement,
|
||||
bool useRegex, bool caseSensitive);
|
||||
|
||||
// -- electrical continuity / ERC: read-only, structural checks
|
||||
// against the live object graph rather than the XML -- see the
|
||||
// .cpp doc comment for exactly what is and is not covered --
|
||||
Q_INVOKABLE QVariantList checkContinuity(int folioIndex);
|
||||
|
||||
// -- navigate and message --
|
||||
Q_INVOKABLE bool selectElement(const QString &elementUuid);
|
||||
Q_INVOKABLE void deselectAll(int folioIndex);
|
||||
|
||||
Reference in New Issue
Block a user