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

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

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

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

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

Далее для работы с устройством необходимо открыть серийный порт. Для этого необходимо задать параметры логического устройства (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

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

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);

Функция 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.SetLogicDevicesParam(3, CppWrapper::LogicDeviceParamType::ConnectionType, "Serial Port", ecase);

Функция GetLogicDeviceParam

Предназначена для получения параметров выбранного логического устройства. Получение параметра «тип подключения» у устройства с ID = 3:

CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
std::string param = device.GeteLogicDeviceParam(3, CppWrapper::LogicDeviceParamType::ConnectionType, ecase);

Функция GetCurrentLogicDeviceID

Предназначена для получения номера текущего логического устройства.

CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
int id = device.GetCurrentLogicDeviceID(ecase);

Функция SetCurrentLogicDevice

Предназначена для назначения текущего логического устройства. Назначение устройства с ID = 3 текущим:

CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device.SetCurrentLogicDevice(3, ecase);

Функция GetAllSortedLogicDeviceID

Предназначена для получения отсортированного в порядке возрастания списка ID существующих логических устройств.

std::vector<int> allDevices = CppWrapper::ErrorCase ecase = CppWrapper::ErrorCase::Correct;
device.GetAllSortedLogicDeviceID(ecase);

Kоманды