Exemple #1
0
 public void Read(SpiDeviceConfig config, ushort[] buffer, ByteOrder byteOrder)
 {
     ConfigureBusForDevice(config);
     //todo validate byte order
     _spotSpi.WriteRead(new ushort[] { config.NoOpCommand },
                        buffer);
     throw new NotImplementedException();
 }
Exemple #2
0
 public void WriteRead(SpiDeviceConfig config,
                       byte[] writeBuffer,
                       int writeOffset,
                       int writeCount,
                       byte[] readBuffer,
                       int readOffset,
                       int readCount,
                       int startReadingAtOffset = 0)
 {
     ConfigureBusForDevice(config);
     _spotSpi.WriteRead(writeBuffer, writeOffset, writeCount, readBuffer, readOffset, readCount, startReadingAtOffset);
 }
Exemple #3
0
 public void WriteRead(SpiDeviceConfig config,
                       ushort[] writeBuffer,
                       int writeOffset,
                       int writeCount,
                       ushort[] readBuffer,
                       int readOffset,
                       int readCount,
                       ByteOrder byteOrder,
                       int startReadingAtOffset = 0)
 {
     ConfigureBusForDevice(config);
     //todo validate byte order
     _spotSpi.WriteRead(writeBuffer, writeOffset, writeCount, readBuffer, readOffset, readCount, startReadingAtOffset);
 }
Exemple #4
0
        private void ConfigureBusForDevice(SpiDeviceConfig config)
        {
            int newHash = config.GetHashCode();

            if (newHash == _lastConfigHash)
            {
                return;
            }
            //todo optomize better by building a simple registry table
            _spotSpi.Config = new SPI.Configuration(config.ChipSelect.Pin,
                                                    config.ChipSelect.ActiveState,
                                                    config.ChipSelect_SetupTime,
                                                    config.ChipSelect_HoldTime,
                                                    config.Clock_IdleState,
                                                    config.Clock_Edge,
                                                    config.Clock_RateKHz,
                                                    _module);
            //todo include feedback signal
            _noOpBuffer[0]  = config.NoOpCommand;
            _lastConfigHash = newHash;
        }
Exemple #5
0
 public void Write(SpiDeviceConfig config, ushort[] buffer, ByteOrder byteOrder)
 {
     ConfigureBusForDevice(config);
     //todo validate byte order
     _spotSpi.Write(buffer);
 }
Exemple #6
0
 public void Write(SpiDeviceConfig config, byte[] buffer)
 {
     ConfigureBusForDevice(config);
     _spotSpi.Write(buffer);
 }
Exemple #7
0
 public void Read(SpiDeviceConfig config, byte[] buffer)
 {
     ConfigureBusForDevice(config);
     _spotSpi.WriteRead(_noOpBuffer, buffer, 0);
 }