-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCameraPowerController.cpp
39 lines (34 loc) · 1.04 KB
/
CameraPowerController.cpp
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
#include <stdexcept>
#include "CameraPowerController.h"
namespace
{
const std::filesystem::path kSerialDevicePathForVariantA{
"/dev/CoolCompanyDevice"};
const auto kBaudRateForVariantA = 9600;
const std::filesystem::path kSerialDevicePathForVariantB{"COM3"};
const auto kBaudRateForVariantB = 115200;
} // namespace
CameraPowerController::CameraPowerController(ProductVariant productVariant)
{
switch (productVariant)
{
case ProductVariant::A:
mAsioSerialPortManager = std::make_unique<AsioSerialPortManager>(
kSerialDevicePathForVariantA, kBaudRateForVariantA);
return;
case ProductVariant::B:
mAsioSerialPortManager = std::make_unique<AsioSerialPortManager>(
kSerialDevicePathForVariantB, kBaudRateForVariantB);
return;
default:
throw std::logic_error("Unknown variant");
}
}
void CameraPowerController::turnOnCamera()
{
mAsioSerialPortManager->asioWrite("ON");
}
void CameraPowerController::turnOffCamera()
{
mAsioSerialPortManager->asioWrite("OFF");
}