public NativeSpi(Socket socket, Socket.SocketInterfaces.SpiConfiguration configuration, Socket.SocketInterfaces.SpiSharing sharing, Cpu.Pin chipSelectPin, Module module, Microsoft.SPOT.Hardware.SPI.SPI_module spiModule) { _hardwareInstance = GetAndUseInstance(socket, sharing, module, spiModule); _chipSelectPin = chipSelectPin; _configuration = ToNativeConfiguration(configuration, chipSelectPin, spiModule); if (_hardwareInstance.Interface == null && _configuration != null) { _hardwareInstance.Interface = new Microsoft.SPOT.Hardware.SPI(_configuration); } }
private static Microsoft.SPOT.Hardware.SPI.Configuration ToNativeConfiguration(Socket.SocketInterfaces.SpiConfiguration config, Cpu.Pin chipSelectPin, Microsoft.SPOT.Hardware.SPI.SPI_module spiModule) { if (config == null) { return(new Microsoft.SPOT.Hardware.SPI.Configuration(chipSelectPin, false, 0, 0, false, false, 0, spiModule)); } return(new Microsoft.SPOT.Hardware.SPI.Configuration( chipSelectPin, config.IsChipSelectActiveHigh, config.ChipSelectSetupTime, config.ChipSelectHoldTime, config.IsClockIdleHigh, config.IsClockSamplingEdgeRising, config.ClockRateKHz, spiModule)); }