Функции драйвера
~~~~~~~~~~~~~~~~
.. |br| raw:: html
Cоздание объекта
----------------
Перед началом работы с устройством необходимо получить указатель на конкретный экземпляр объекта,
с помощью которого будем использовать функции драйвера.
.. code:: C++
std::unique_ptr device = std::make_unique();
Oткрытие порта
--------------
Далее для работы с устройством необходимо открыть серийный порт.
Для этого необходимы не только правильные параметры порта, но и модель и протокол весов.
Для этого нужен объект структуры Connection.
.. code:: C++
CppWrapper::Connection data{};
data.portname = "COM3";
data.model = "M-ER 221F-32.5 III(средний)";
data.protocol = "POS2MProV1";
Переменная для ошибок
---------------------
Последний параметр функций драйвера является переменной для ошибок.
.. code:: C++
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
Для передачи в функцию она должна иметь значение приведенное сверху.
Функция Open
------------
Предназначена для открытия серийного порта.
.. code:: C++
device.Open(data, ecase);
Функция Close
-------------
Предназначена для закрытия серийного порта.
.. code:: C++
device.Close(ecase);
Функция IsOpen
--------------
Предназначена для проверки открытости серийного порта.
.. code:: C++
if(device.IsOpen(ecase))
.......
Функция ExecuteCommand
----------------------
Предназначена для выполнения команды.
.. code:: C++
device.ExecuteCommand(CppWrapper::Command::SetLightLevel, ecase);
Функция SetParam
----------------
Предназначена для установки параметра и значения.
.. code:: C++
device.SetParam(CppWrapper::ParamType::LightLevel, "1", ecase);
Функция GetParam
----------------
Предназначена для получения значения по параметру.
.. code:: C++
std::string result = device.GetParam(ptype, param, ecase);
Примеры использования
---------------------
Установить время автовыключения:
.. code:: C++
device.SetParam(CppWrapper::ParamType::AutoOff, "1", ecase);
device.ExecuteCommand(CppWrapper::Command::SetAutoOff, ecase);
Получить уровень подсветки:
.. code:: C++
device.ExecuteCommand(CppWrapper::Command::GetLightLevel, ecase);
std::string result = device.GetParam(CppWrapper::ParamType::LightLevel, ecase);
Перезагрузить весы:
.. code:: C++
device.ExecuteCommand(CppWrapper::Command::Reboot, ecase);
Cтатус весового канала (POS):
.. code:: C++
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);
.. hint:: Cписок всех поддерживаемых команд, типов параметров и значений приведён в разделе
`"Kоманды настроек весов" `_.
Функция CurrentVersion
----------------------
Предназначена для получения версии драйвера.
.. code:: C++
std::string version = CppWrapper::CurrentVersion(ecase);
.. _LoggingPath:
Функция LoggingPath
-------------------
Предназначена для получения пути к файлу логов драйвера.
.. code:: C++
std::string path = CppWrapper::LoggingPath(ecase);
Функция ChangeLoggingConfigFile
-------------------------------
Предназначена для изменения конфигурационного файла логгирования драйвера.
.. code:: C++
CppWrapper::ChangeLoggingConfigFile(config, ecase);
Функция GetDataFromLogConfigFIle
--------------------------------
Предназначена для получения данных из конфигурационного файла логгирования драйвера.
.. code:: C++
std::map currentSettings = CppWrapper::GetDataFromLogConfigFIle(ecase);
Функция GetErrorCaseDescription
-------------------------------
Предназначена для получения более детального описания ошибки (можно получить на русском языке).
.. code:: C++
CppWrapper::ErrorCase info = CppWrapper::ErrorCase::BoostSerialPortError;
CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
std::wstring error = CppWrapper::GetErrorCaseDescription(info,
CppWrapper::ErrorCaseDescriptionLanguage::Russian, ecase);
Kоманды
~~~~~~~
.. toctree::
:maxdepth: 2
:numbered:
driver_functions/scale_settings
driver_functions/weight_channel