Пример #1
0
    def __init__(self, port, simPort=None):
        """Constructor

        :param port: the physical SPI port
        :type port: :class:`.SPI.Port`
        :param simPort: This must be an object that implements all of
                        the spi* functions from hal_impl that you use.
                        See ``test_spi.py`` for an example.
        """
        
        if hal.HALIsSimulation():
            if simPort is None:
                raise ValueError("You will need to use a mock for this SPI port, or provide a simPort implementation")
            
            # Just check for basic functionality
            assert hasattr(simPort, 'spiInitialize')
            assert hasattr(simPort, 'spiClose')
            
            self._port = (simPort, port)
        else:
            self._port = port
        
        self.bitOrder = 0
        self.clockPolarity = 0
        self.dataOnTrailing = 0

        hal.spiInitialize(self._port)
        self.__finalizer = weakref.finalize(self, _freeSPI, self._port)

        SPI.devices += 1
        hal.HALReport(hal.HALUsageReporting.kResourceType_SPI, SPI.devices)
Пример #2
0
    def __init__(self, port):
        """Constructor

        :param port: the physical SPI port
        """
        self.port = port
        self.bitOrder = 0
        self.clockPolarity = 0
        self.dataOnTrailing = 0

        hal.spiInitialize(self.port)
        self._spi_finalizer = weakref.finalize(self, _freeSPI, self.port)

        SPI.devices += 1
        hal.HALReport(hal.HALUsageReporting.kResourceType_SPI, SPI.devices)
Пример #3
0
    def __init__(self, port, simPort=None):
        """Constructor

        :param port: the physical SPI port
        :type port: :class:`.SPI.Port`
        :param simPort: This must be an object that implements all of
                        the spi* functions from hal_impl that you use.
                        See ``test_spi.py`` for an example.
        """
        
        if port not in [self.Port.kOnboardCS0,
                        self.Port.kOnboardCS1,
                        self.Port.kOnboardCS2,
                        self.Port.kOnboardCS3,
                        self.Port.kMXP]:
            raise ValueError("Invalid value '%s' for SPI port" % port)
        
        if hal.HALIsSimulation():
            if simPort is None:
                # If you want more functionality, implement your own mock
                from hal_impl.spi_helpers import SPISimBase
                simPort = SPISimBase()
                
                msg = "Using stub simulator for SPI port %s" % port
                warnings.warn(msg)
            
            # Just check for basic functionality
            assert hasattr(simPort, 'spiInitialize')
            assert hasattr(simPort, 'spiClose')
            
            self._port = (simPort, port)
        else:
            self._port = port
        
        self.bitOrder = 0
        self.clockPolarity = 0
        self.dataOnTrailing = 0

        hal.spiInitialize(self._port)
        self.__finalizer = weakref.finalize(self, _freeSPI, self._port)

        SPI.devices += 1
        hal.HALReport(hal.HALUsageReporting.kResourceType_SPI, SPI.devices)
Пример #4
0
    def __init__(self, port, simPort=None):
        """Constructor

        :param port: the physical SPI port
        :type port: :class:`.SPI.Port`
        :param simPort: This must be an object that implements all of
                        the spi* functions from hal_impl that you use.
                        See ``test_spi.py`` for an example.
        """

        if port not in [
                self.Port.kOnboardCS0, self.Port.kOnboardCS1,
                self.Port.kOnboardCS2, self.Port.kOnboardCS3, self.Port.kMXP
        ]:
            raise ValueError("Invalid value '%s' for SPI port" % port)

        if hal.HALIsSimulation():
            if simPort is None:
                # If you want more functionality, implement your own mock
                from hal_impl.spi_helpers import SPISimBase
                simPort = SPISimBase()

                msg = "Using stub simulator for SPI port %s" % port
                warnings.warn(msg)

            # Just check for basic functionality
            assert hasattr(simPort, 'spiInitialize')
            assert hasattr(simPort, 'spiClose')

            self._port = (simPort, port)
        else:
            self._port = port

        self.bitOrder = 0
        self.clockPolarity = 0
        self.dataOnTrailing = 0

        hal.spiInitialize(self._port)
        self.__finalizer = weakref.finalize(self, _freeSPI, self._port)

        SPI.devices += 1
        hal.HALReport(hal.HALUsageReporting.kResourceType_SPI, SPI.devices)