// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include class SerialPortManagerClass { public: bool allocateMpptPort(int port); bool allocateBatteryPort(int port); void invalidateBatteryPort(); void invalidateMpptPorts(); private: enum Owner { BATTERY, MPPT }; std::map allocatedPorts; bool allocatePort(uint8_t port, Owner owner); void invalidate(Owner owner); static const char* print(Owner owner); }; extern SerialPortManagerClass SerialPortManager;