1 // 2 // Copyright (c) 2010-2021 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 using Antmicro.Renode.Peripherals.SPI; 9 using Antmicro.Renode.Logging; 10 11 namespace Antmicro.Renode.Peripherals.Sensors 12 { 13 public class GenericSPISensor : ISPIPeripheral 14 { GenericSPISensor()15 public GenericSPISensor() 16 { 17 samplesFifo = new SensorSamplesFifo<ScalarSample>(); 18 } 19 Reset()20 public void Reset() 21 { 22 // intentionally do nothing 23 } 24 FinishTransmission()25 public void FinishTransmission() 26 { 27 // intentionally do nothing 28 } 29 Transmit(byte b)30 public byte Transmit(byte b) 31 { 32 samplesFifo.TryDequeueNewSample(); 33 var result = (byte)samplesFifo.Sample.Value; 34 35 this.Log(LogLevel.Info, "Received byte 0x{0:X}, returning 0x{1:X}", b, result); 36 return result; 37 } 38 FeedSample(byte sample)39 public void FeedSample(byte sample) 40 { 41 samplesFifo.FeedSample(new ScalarSample(sample)); 42 } 43 FeedSamplesFromFile(string path)44 public void FeedSamplesFromFile(string path) 45 { 46 samplesFifo.FeedSamplesFromFile(path); 47 } 48 49 private readonly SensorSamplesFifo<ScalarSample> samplesFifo; 50 } 51 } 52 53