Функции драйвера

Cоздание объекта

Перед началом работы с устройством необходимо получить указатель на конкретный экземпляр объекта, с помощью которого будем использовать функции драйвера.

std::unique_ptr<CppWrapper::Device> device = std::make_unique<CppWrapper::Device>();

Oткрытие порта

Далее для работы с устройством необходимо открыть серийный порт. Для этого необходимы не только правильные параметры порта, но и модель и протокол весов.

Для этого нужен объект структуры Connection.

CppWrapper::Connection data{};
data.portname = "COM3";
data.model = "M-ER 221F-32.5 III(средний)";
data.protocol = "POS2MProV1";

Переменная для ошибок

Последний параметр функций драйвера является переменной для ошибок.

CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;

Для передачи в функцию она должна иметь значение приведенное сверху.

Функция Open

Предназначена для открытия серийного порта.

device.Open(data, 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, param, 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);

Cтатус весового канала (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);

Подсказка

Cписок всех поддерживаемых команд, типов параметров и значений приведён в разделе «Kоманды настроек весов».

Функция 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);

Kоманды