#include <iostream>
class UARTDriver {
private:
int baud_rate;
public:
// Single constructor with a default starting value
UARTDriver() : baud_rate(9600) {}
// Validating Setter: Only allows hardware-supported discrete rates
void setBaudRate(int req) {
if (req == 9600 || req == 19200 || req == 115200) {
baud_rate = req;
} else {
// Keep the current rate and optionally log an error
std::cerr << "Invalid Baud Rate: " << req << ". Hardware not supported." << std::endl;
}
}
// Read-only getter
int getBaudRate() const {
return baud_rate;
}
};
int main() {
int N;
if (!(std::cin >> N)) return 0;
UARTDriver driver;
for (int i = 0; i < N; ++i) {
int req;
std::cin >> req;
// Use the validating API
driver.setBaudRate(req);
// Access via getter
std::cout << "Active: " << driver.getBaudRate() << std::endl;
}
return 0;
}
Input
3 50 150 -20
Expected Output
CCR: 50 CCR: 100 CCR: 0