Bsp.hpp
1 //
2 // Created by xiong on 2022/6/27.
3 //
4 
5 #ifndef EMX_EmxBsp_HPP
6 #define EMX_EmxBsp_HPP
7 
8 #include "EmxCore.hpp"
9 
10 namespace Emx {
14  //通道号为-1代表默认通道
15  class Bsp {
16  public:
17  Bsp();
18 
19  virtual ~Bsp() {}
20 
21  class GpioLike {
22  public:
23  GpioLike() {}
24 
25  virtual ~GpioLike() {}
26 
27  virtual ErrCodeE Set(bool ena) { return ErrCodeE::OperationNotSupport; }
28 
29  virtual bool Get() { return false; }
30  };
31 
32  class Adc {
33  public:
34  Adc() {}
35 
36  virtual ~Adc() {}
37 
38  int GetLumaValue() { return GetLumaValue(-1); }
39 
40  virtual int GetLumaValue(int chn) { return -1; }
41 
42  int GetAdcValue() { return GetAdcValue(-1); }
43 
44  virtual int GetAdcValue(int chn) { return -1; }
45  };
46 
47  std::shared_ptr<Adc> adc;
48 
49  class IrCut {
50  public:
51  IrCut() {}
52 
53  virtual ~IrCut() {}
54 
55  ErrCodeE SwitchToNight(bool ena) { return SwitchToNight(ena, -1); }
56 
57  virtual ErrCodeE SwitchToNight(bool ena, int chn) { return ErrCodeE::OperationNotSupport; }
58  };
59 
60  std::shared_ptr<IrCut> irCut;
61 
62  class IrLight {
63  public:
64  IrLight() {}
65 
66  virtual ~IrLight() {}
67 
68  ErrCodeE SetEna(bool ena) { return SetEna(ena, -1); }
69 
70  virtual ErrCodeE SetEna(bool ena, int chn) { return ErrCodeE::OperationNotSupport; }
71 
72  bool GetEna() { return GetEna(-1); }
73 
74  virtual bool GetEna(int chn) { return false; }
75 
76  ErrCodeE SetLuma(int luma) { return SetLuma(luma, -1); }
77 
78  virtual ErrCodeE SetLuma(int luma, int chn) { return ErrCodeE::OperationNotSupport; }
79 
80  int GetLuma() { return GetLuma(-1); }
81 
82  virtual int GetLuma(int chn) { return -1; }
83  };
84 
85  std::shared_ptr<IrLight> irLight;
86 
87  class WhiteLight {
88  public:
89  static const int LumaMinValue = 0;
90  static const int LumaMaxValue = 1000;
91 
93 
94  virtual ~WhiteLight() {}
95 
96  ErrCodeE SetEna(bool ena) { return SetEna(ena, -1); }
97 
98  virtual ErrCodeE SetEna(bool ena, int chn) { return ErrCodeE::OperationNotSupport; }
99 
100  bool GetEna() { return GetEna(-1); }
101 
102  virtual bool GetEna(int chn) { return false; }
103 
104  ErrCodeE SetLuma(int luma) { return SetLuma(luma, -1); }
105 
106  virtual ErrCodeE SetLuma(int luma, int chn) { return ErrCodeE::OperationNotSupport; }
107 
108  int GetLuma() { return GetLuma(-1); }
109 
110  virtual int GetLuma(int chn) { return -1; }
111  };
112 
113  std::shared_ptr<WhiteLight> whiteLight;
114 
115  class KeyCall : public GpioLike {
116  public:
117  KeyCall() : GpioLike() {}
118  };
119 
120  std::shared_ptr<KeyCall> keyCall;
121 
122  class KeyReset : public GpioLike {
123  public:
125  };
126 
127  std::shared_ptr<KeyReset> keyReset;
128 
129  class Spk : public GpioLike {
130  public:
131  Spk() : GpioLike() {}
132  };
133 
134  std::shared_ptr<Spk> spk;
135 
136  class Rca : public GpioLike {
137  public:
138  Rca() : GpioLike() {}
139  };
140 
141  std::shared_ptr<Rca> rca;
142 
143  class RcaDetect : public GpioLike {
144  public:
146  };
147 
148  std::shared_ptr<RcaDetect> rcaDetect;
149 
150  class Wifi : public GpioLike {
151  public:
152  Wifi() : GpioLike() {}
153  };
154 
155  std::shared_ptr<Wifi> wifi;
156 
157  class Mobile : public GpioLike {
158  public:
159  Mobile() : GpioLike() {}
160  };
161 
162  std::shared_ptr<Mobile> mobile;
163 
164  class Led {
165  public:
166  Led() {}
167 
168  virtual ~Led() {}
169 
170  virtual ErrCodeE Set(bool ena, int chn) { return ErrCodeE::OperationNotSupport; }
171 
172  virtual bool Get(int chn) { return false; }
173 
174  virtual int GetChnsNum() const { return 0; }
175 
176  virtual ErrCodeE SetLuma(int luma, int chn) { return ErrCodeE::OperationNotSupport; }
177  };
178 
179  std::shared_ptr<Led> led;
180 
182  public:
184 
185  virtual ~UpdateIndicator() {}
186 
188 
190  };
191 
192  std::shared_ptr<UpdateIndicator> updateIndicator;
193 
194  //通用gpios
195  class GmGpio{
196  public:
197  GmGpio() {}
198 
199  virtual ~GmGpio() {}
200 
201  virtual ErrCodeE Set(int chn,bool ena) { return ErrCodeE::OperationNotSupport; }
202 
203  virtual bool Get(int chn) { return false; }
204 
205  virtual ErrCodeE SetDir(int chn,bool out) { return ErrCodeE::OperationNotSupport; }
206  };
207 
208  std::shared_ptr<GmGpio> gmGpio;
209 
210  };
212 }
213 
214 #endif //EMX_EmxBsp_HPP
Definition: Bsp.hpp:32
virtual int GetLumaValue(int chn)
Definition: Bsp.hpp:40
virtual int GetAdcValue(int chn)
Definition: Bsp.hpp:44
virtual ~Adc()
Definition: Bsp.hpp:36
int GetLumaValue()
Definition: Bsp.hpp:38
int GetAdcValue()
Definition: Bsp.hpp:42
Adc()
Definition: Bsp.hpp:34
Definition: Bsp.hpp:195
virtual ErrCodeE SetDir(int chn, bool out)
Definition: Bsp.hpp:205
virtual ~GmGpio()
Definition: Bsp.hpp:199
virtual ErrCodeE Set(int chn, bool ena)
Definition: Bsp.hpp:201
virtual bool Get(int chn)
Definition: Bsp.hpp:203
GmGpio()
Definition: Bsp.hpp:197
Definition: Bsp.hpp:21
virtual bool Get()
Definition: Bsp.hpp:29
virtual ErrCodeE Set(bool ena)
Definition: Bsp.hpp:27
virtual ~GpioLike()
Definition: Bsp.hpp:25
GpioLike()
Definition: Bsp.hpp:23
Definition: Bsp.hpp:49
virtual ErrCodeE SwitchToNight(bool ena, int chn)
Definition: Bsp.hpp:57
IrCut()
Definition: Bsp.hpp:51
virtual ~IrCut()
Definition: Bsp.hpp:53
ErrCodeE SwitchToNight(bool ena)
Definition: Bsp.hpp:55
Definition: Bsp.hpp:62
IrLight()
Definition: Bsp.hpp:64
int GetLuma()
Definition: Bsp.hpp:80
ErrCodeE SetLuma(int luma)
Definition: Bsp.hpp:76
virtual int GetLuma(int chn)
Definition: Bsp.hpp:82
virtual ErrCodeE SetLuma(int luma, int chn)
Definition: Bsp.hpp:78
bool GetEna()
Definition: Bsp.hpp:72
virtual bool GetEna(int chn)
Definition: Bsp.hpp:74
virtual ~IrLight()
Definition: Bsp.hpp:66
virtual ErrCodeE SetEna(bool ena, int chn)
Definition: Bsp.hpp:70
ErrCodeE SetEna(bool ena)
Definition: Bsp.hpp:68
Definition: Bsp.hpp:115
KeyCall()
Definition: Bsp.hpp:117
Definition: Bsp.hpp:122
KeyReset()
Definition: Bsp.hpp:124
Definition: Bsp.hpp:164
virtual bool Get(int chn)
Definition: Bsp.hpp:172
Led()
Definition: Bsp.hpp:166
virtual ~Led()
Definition: Bsp.hpp:168
virtual ErrCodeE SetLuma(int luma, int chn)
Definition: Bsp.hpp:176
virtual int GetChnsNum() const
Definition: Bsp.hpp:174
virtual ErrCodeE Set(bool ena, int chn)
Definition: Bsp.hpp:170
Definition: Bsp.hpp:157
Mobile()
Definition: Bsp.hpp:159
Definition: Bsp.hpp:143
RcaDetect()
Definition: Bsp.hpp:145
Definition: Bsp.hpp:136
Rca()
Definition: Bsp.hpp:138
Definition: Bsp.hpp:129
Spk()
Definition: Bsp.hpp:131
Definition: Bsp.hpp:181
UpdateIndicator()
Definition: Bsp.hpp:183
virtual ~UpdateIndicator()
Definition: Bsp.hpp:185
virtual ErrCodeE Start()
Definition: Bsp.hpp:187
virtual ErrCodeE Stop()
Definition: Bsp.hpp:189
Definition: Bsp.hpp:87
virtual ErrCodeE SetLuma(int luma, int chn)
Definition: Bsp.hpp:106
virtual ~WhiteLight()
Definition: Bsp.hpp:94
static const int LumaMinValue
Definition: Bsp.hpp:89
ErrCodeE SetLuma(int luma)
Definition: Bsp.hpp:104
virtual int GetLuma(int chn)
Definition: Bsp.hpp:110
virtual bool GetEna(int chn)
Definition: Bsp.hpp:102
bool GetEna()
Definition: Bsp.hpp:100
ErrCodeE SetEna(bool ena)
Definition: Bsp.hpp:96
static const int LumaMaxValue
Definition: Bsp.hpp:90
virtual ErrCodeE SetEna(bool ena, int chn)
Definition: Bsp.hpp:98
WhiteLight()
Definition: Bsp.hpp:92
int GetLuma()
Definition: Bsp.hpp:108
Definition: Bsp.hpp:150
Wifi()
Definition: Bsp.hpp:152
Definition: Bsp.hpp:15
std::shared_ptr< KeyCall > keyCall
Definition: Bsp.hpp:120
std::shared_ptr< Rca > rca
Definition: Bsp.hpp:141
std::shared_ptr< GmGpio > gmGpio
Definition: Bsp.hpp:208
std::shared_ptr< RcaDetect > rcaDetect
Definition: Bsp.hpp:148
std::shared_ptr< IrCut > irCut
Definition: Bsp.hpp:60
std::shared_ptr< KeyReset > keyReset
Definition: Bsp.hpp:127
std::shared_ptr< Spk > spk
Definition: Bsp.hpp:134
std::shared_ptr< WhiteLight > whiteLight
Definition: Bsp.hpp:113
std::shared_ptr< Mobile > mobile
Definition: Bsp.hpp:162
std::shared_ptr< UpdateIndicator > updateIndicator
Definition: Bsp.hpp:192
std::shared_ptr< Adc > adc
Definition: Bsp.hpp:47
std::shared_ptr< IrLight > irLight
Definition: Bsp.hpp:85
std::shared_ptr< Led > led
Definition: Bsp.hpp:179
std::shared_ptr< Wifi > wifi
Definition: Bsp.hpp:155
virtual ~Bsp()
Definition: Bsp.hpp:19
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
@ OperationNotSupport
操作不支持
Definition: EmxGpio.hpp:10