1 //
2 // Copyright (c) 2010-2022 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 using System;
9 using Antmicro.Renode.Core;
10 using Antmicro.Renode.Core.Structure;
11 using Antmicro.Renode.Peripherals.UART;
12 using Antmicro.Migrant;
13 
14 namespace Antmicro.Renode.Peripherals.SPI
15 {
16     public class UARTToSpiConverter : NullRegistrationPointPeripheralContainer<ISPIPeripheral>, IUART
17     {
UARTToSpiConverter(IMachine machine)18         public UARTToSpiConverter(IMachine machine) : base(machine)
19         {
20         }
21 
22         [field: Transient]
23         public event Action<byte> CharReceived;
24 
Reset()25         public override void Reset()
26         {
27         }
28 
WriteChar(byte value)29         public void WriteChar(byte value)
30         {
31             if(RegisteredPeripheral == null)
32             {
33                 return;
34             }
35             var charReceived = CharReceived;
36             var read = RegisteredPeripheral.Transmit(value);
37             charReceived(read);
38         }
39 
40         public Bits StopBits
41         {
42             get
43             {
44                 // StopBits are always None
45                 return Bits.None;
46             }
47         }
48 
49         public Parity ParityBit
50         {
51             get
52             {
53                 // Parity is always None
54                 return Parity.None;
55             }
56         }
57 
58         public uint BaudRate
59         {
60             get
61             {
62                 // BaudRate is always 0
63                 return 0;
64             }
65         }
66     }
67 }
68 
69