Функции драйвера¶
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;
Для передачи в функцию она должна иметь значение приведенное сверху.
Функция 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оманды¶
- 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оманды весового канала