GCC Code Coverage Report


Directory: ./
File: util/BBBUtils.h
Date: 2026-10-29 08:11:58
Exec Total Coverage
Lines: 15 15 100.0%
Functions: 5 5 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 #pragma once
2 /*
3 * This file is part of the Falcon Player (FPP) and is Copyright (C)
4 * 2013-2022 by the Falcon Player Developers.
5 *
6 * The Falcon Player (FPP) is free software, and is covered under
7 * multiple Open Source licenses. Please see the included 'LICENSES'
8 * file for descriptions of what files are covered by each license.
9 *
10 * This source file is covered under the LGPL v2.1 as described in the
11 * included LICENSE.LGPL file.
12 */
13
14 #include <string>
15 #include "fpp-json-fwd.h"
16 #include <vector>
17
18 #include "GPIOUtils.h"
19
20 enum BeagleBoneType {
21 Black,
22 BlackWireless,
23 Green,
24 GreenWireless,
25 PocketBeagle,
26 SanCloudEnhanced,
27 BeaglePlay,
28 Unknown,
29 };
30
31 BeagleBoneType getBeagleBoneType();
32
33 class BBBPinCapabilities : public GPIODCapabilities {
34 public:
35 BBBPinCapabilities(const std::string& n, uint32_t k);
36 BBBPinCapabilities(const std::string& n, uint32_t g, uint32_t offset);
37
38 virtual void releasePin() const override;
39 virtual int configPin(const std::string& mode = "gpio",
40 bool directionOut = true,
41 const std::string& desc = "") const override;
42
43 virtual bool setupPWM(int maxValueNS = 25500) const override;
44 virtual void setPWMValue(int valueNS) const override;
45 virtual int getPWMRegisterAddress() const override;
46
47 virtual int mappedGPIOIdx() const override;
48 virtual int mappedGPIO() const override;
49
50 virtual bool supportPWM() const override;
51 virtual Json::Value toJSON() const override;
52
53 4915 BBBPinCapabilities& setPRU(int p, int pin) {
54 4915 _pruPin[p] = pin;
55 4915 return *this;
56 }
57 BBBPinCapabilities& setGPIO(int chip, int pin) {
58 gpioIdx = chip;
59 gpio = pin;
60 return *this;
61 }
62 318 BBBPinCapabilities& setPwm(int p, int sub) {
63 318 pwm = p;
64 318 subPwm = sub;
65 318 return *this;
66 }
67 282 BBBPinCapabilities& setI2C(int i2c) {
68 282 i2cBus = i2c;
69 282 return *this;
70 }
71 2004 BBBPinCapabilities& setUART(const std::string& u) {
72 2004 uart = u;
73 2004 return *this;
74 }
75 28 uint8_t pruPin(int i) const {
76 28 return _pruPin[i];
77 }
78
79 private:
80 int8_t _pruPin[2];
81 };
82 class BBBPinProvider : public PinCapabilitiesProvider {
83 void Init();
84 const PinCapabilities& getPinByName(const std::string& name);
85 const PinCapabilities& getPinByGPIO(int chip, int gpio);
86 const PinCapabilities& getPinByUART(const std::string& n);
87
88 std::vector<std::string> getPinNames();
89 };
90