~aleteoryx/muditaos

ref: b95894a8abc10cddf0b58dda4b2569b01eec0d7e muditaos/module-bsp/drivers/lpuart/DriverLPUART.hpp -rw-r--r-- 930 bytes
b95894a8 — Lefucjusz [MOS-1064] Fix no input language selected for French/Spanish 1 year, 9 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <memory>
#include <devices/Device.hpp>
#include <magic_enum.hpp>

namespace drivers
{

    enum class LPUARTInstances
    {
        LPUART_1,
        LPUART_2,
        LPUART_3,
        LPUART_4,
        LPUART_5,
        LPUART_6,
        LPUART_7,
        LPUART_8
    };

    class DriverLPUART : public devices::Device
    {
      public:
        static std::shared_ptr<DriverLPUART> Create(std::string name, const LPUARTInstances inst);

        explicit DriverLPUART(std::string name, LPUARTInstances inst) : devices::Device(std::move(name)), instance(inst)
        {}

      protected:
        LPUARTInstances instance;

      private:
        static std::weak_ptr<DriverLPUART> singleton[magic_enum::enum_count<LPUARTInstances>()];
    };

} // namespace drivers