diff --git a/edg/abstract_parts/AbstractTestPoint.py b/edg/abstract_parts/AbstractTestPoint.py index 528e1225f..d3944a2c8 100644 --- a/edg/abstract_parts/AbstractTestPoint.py +++ b/edg/abstract_parts/AbstractTestPoint.py @@ -196,3 +196,25 @@ def contents(self): def connected(self, io: Port[CanLogicLink]) -> 'CanControllerTestPoint': cast(Block, builder.get_enclosing_block()).connect(io, self.io) return self + + +class CanDiffTestPoint(TypedTestPoint, Block): + """Two test points for CAN differential-side canh and canl""" + + @init_in_parent + def __init__(self, tp_name: StringLike = ""): + super().__init__() + self.io = self.Port(CanDiffPort(DigitalBidir.empty()), [InOut]) + self.tp_name = self.ArgParameter(tp_name) + + def contents(self): + super().contents() + name_prefix = (self.tp_name == '').then_else(self.io.link().name(), self.tp_name) + self.tp_canh = self.Block(DigitalTestPoint(name_prefix + '.canh')) + self.tp_canl = self.Block(DigitalTestPoint(name_prefix + '.canl')) + self.connect(self.tp_canh.io, self.io.canh) + self.connect(self.tp_canl.io, self.io.canl) + + def connected(self, io: Port[CanLogicLink]) -> 'CanDiffTestPoint': + cast(Block, builder.get_enclosing_block()).connect(io, self.io) + return self diff --git a/edg/abstract_parts/__init__.py b/edg/abstract_parts/__init__.py index 26f9031d7..2d6d877c1 100644 --- a/edg/abstract_parts/__init__.py +++ b/edg/abstract_parts/__init__.py @@ -77,7 +77,7 @@ from .AbstractDebugHeaders import SwdCortexTargetConnector, SwdCortexTargetConnectorReset, \ SwdCortexTargetConnectorSwo, SwdCortexTargetConnectorTdi from .AbstractTestPoint import TestPoint, GroundTestPoint, VoltageTestPoint, DigitalTestPoint, DigitalArrayTestPoint, \ - AnalogTestPoint, I2cTestPoint, SpiTestPoint, CanControllerTestPoint + AnalogTestPoint, I2cTestPoint, SpiTestPoint, CanControllerTestPoint, CanDiffTestPoint from .AbstractTestPoint import AnalogRfTestPoint from .AbstractJumper import Jumper, DigitalJumper from .PassiveConnector import PassiveConnector, FootprintPassiveConnector