Функции драйвера¶
Создание объекта¶
Перед началом работы с устройством необходимо получить указатель на конкретный экземпляр объекта, с помощью которого будем использовать функции драйвера.
std::unique_ptr<CppWrapper::Device> device = std::make_unique<CppWrapper::Device>();
Открытие порта¶
Далее для работы с устройством необходимо открыть последовательный порт. Для этого необходимо задать параметры логического устройства (SetLogicDeviceParam), с которым собираемся работать. По умолчанию в JSON-файле логических устройств имеется одно устройство с ID = 1.
Параметры логического устройства, созданного по умолчанию:
"1": {
"is-current": "true",
"name": "default name",
"connection-type": "Serial Port",
"end-point": "COM1",
"baud-rate": "9600",
"model": "auto",
"protocol": "auto"
}
Доступные параметры: ID, Name, ConnectionType, EndPoint, BaudRate, Model, Protocol. Пример обращения к параметрам: CppWrapper::LogicDeviceParamType::Name
Переменная для ошибок¶
Последний параметр функций драйвера является переменной для ошибок.
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
Перед передачей в функцию ей нужно присвоить значение из приведённого выше списка.
Функция Open¶
Предназначена для открытия последовательного порта. Принимает ID логического устройства, параметры которого заданы заранее (пример для устройства с ID = 1).
device->Open(1, ecase);
Функция Close¶
Предназначена для закрытия последовательного порта.
device->Close(ecase);
Функция IsOpen¶
Предназначена для проверки открытости последовательного порта.
if (device->IsOpen(ecase))
{
// ...
}
Функция ExecuteCommand¶
Предназначена для выполнения команды.
device->ExecuteCommand(CppWrapper::Command::SetLightLevel, ecase);
Функция SetParam¶
Предназначена для установки параметра и значения.
device->SetParam(CppWrapper::ParamType::LightLevel, "1", ecase);
Функция GetParam¶
Предназначена для получения значения по параметру.
std::string result = device->GetParam(ptype, ecase);
Примеры использования¶
Установить время автовыключения:
device->SetParam(CppWrapper::ParamType::AutoOff, "1", ecase);
device->ExecuteCommand(CppWrapper::Command::SetAutoOff, ecase);
Получить уровень подсветки:
device->ExecuteCommand(CppWrapper::Command::GetLightLevel, ecase);
std::string result = device->GetParam(CppWrapper::ParamType::LightLevel, ecase);
Перезагрузить весы:
device->ExecuteCommand(CppWrapper::Command::Reboot, ecase);
Статус весового канала (POS):
device->ExecuteCommand(CppWrapper::Command::POSStatusOfWeightChannel, ecase);
std::string weight = device->GetParam(CppWrapper::ParamType::Weight, ecase);
std::string tare = device->GetParam(CppWrapper::ParamType::Tare, ecase);
std::string state = device->GetParam(CppWrapper::ParamType::WeightState, ecase);
Подсказка
Список всех поддерживаемых команд, типов параметров и значений приведён в разделе «Команды настроек весов».
Функция CurrentVersion¶
Предназначена для получения версии драйвера.
std::string version = CppWrapper::CurrentVersion(ecase);
Функция LoggingPath¶
Предназначена для получения пути к файлу логов драйвера.
std::string path = CppWrapper::LoggingPath(ecase);
Функция ChangeLoggingConfigFile¶
Предназначена для изменения конфигурационного файла логирования драйвера.
CppWrapper::ChangeLoggingConfigFile(config, ecase);
Функция GetDataFromLogConfigFile¶
Предназначена для получения данных из конфигурационного файла логирования драйвера.
std::map<std::string, std::string> currentSettings = CppWrapper::GetDataFromLogConfigFile(ecase);
Функция GetErrorCaseDescription¶
Предназначена для получения более детального описания ошибки (можно получить на русском языке).
CppWrapper::ErrorCase info = CppWrapper::ErrorCase::BoostSerialPortError;
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
std::wstring error = CppWrapper::GetErrorCaseDescription(info,
CppWrapper::ErrorCaseDescriptionLanguage::Russian, ecase);
Функция AddLogicDevice¶
Предназначена для добавления нового логического устройства в список логических устройств. ID добавленного устройства задаётся автоматически. Устройству присваивается наименьший свободный ID от 1 до 99.
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device->AddLogicDevice(ecase);
Функция DeleteLogicDevice¶
Предназначена для удаления выбранного логического устройства из списка логических устройств. Удаление устройства с ID = 3:
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device->DeleteLogicDevice(3, ecase);
Функция SetLogicDeviceParam¶
Предназначена для установки параметров выбранного логического устройства. Установка типа подключения у устройства с ID = 3:
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device->SetLogicDeviceParam(3, CppWrapper::LogicDeviceParamType::ConnectionType, "Serial Port", ecase);
Функция GetLogicDeviceParam¶
Предназначена для получения параметров выбранного логического устройства. Получение параметра «тип подключения» у устройства с ID = 3:
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
std::string param = device->GetLogicDeviceParam(3, CppWrapper::LogicDeviceParamType::ConnectionType, ecase);
Функция GetCurrentLogicDeviceID¶
Предназначена для получения номера текущего логического устройства.
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
int id = device->GetCurrentLogicDeviceID(ecase);
Функция SetCurrentLogicDeviceID¶
Предназначена для назначения текущего логического устройства. Назначение устройства с ID = 3 текущим:
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device->SetCurrentLogicDeviceID(3, ecase);
Функция GetAllSortedLogicDeviceID¶
Предназначена для получения отсортированного (в порядке возрастания) списка ID существующих логических устройств.
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
std::vector<int> allDevices = device->GetAllSortedLogicDeviceID(ecase);