Функции драйвера
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оманды
- 1. Kоманды настроек весов
- 1.1. Установить версию протокола
- 1.2. Установить диапазон слежения за нулем
- 1.3. Запрос диапазона слежения за нулем
- 1.4. Задать время установки нуля
- 1.5. Запрос времени установки нуля
- 1.6. Установка времени автовыключения
- 1.7. Запрос времени автовыключения
- 1.8. Установка уровня подсветки
- 1.9. Запрос уровня подсветки
- 1.10. Установка режима энергосбережения
- 1.11. Запрос режима энергосбережения
- 1.12. Запрос модели весов
- 1.13. Запрос идентификационного наименования ПO
- 1.14. Запрос номера версии ПO
- 1.15. Запрос версии протокола
- 1.16. Запрос серийного номера
- 1.17. Запрос значения максимальной нагрузки
- 1.18. Запрос значения дискреты
- 1.19. Запрос cчётчика калибровки
- 1.20. Перезагрузка
- 1.21. Запрос версии протокола (также для старых моделей)
- 2. Kоманды весового канала