C/C++¶
Способы интеграции C++
Создание объекта
Перед началом работы с устройством необходимо получить указатель на конкретный экземпляр объекта, который должен передаваться в каждую вызываемую функцию драйвера.
typedef void* libptr;
int create(libptr* handle);
Добавление и получение параметров
Добавление и получение параметров возможно через специальные функции, учитывающие тип данных этих параметров:
int set_int_param(libptr handle, int param_type, int64_t value);
int set_string_param(libptr handle, int param_type, std::string value);
int set_wstring_param(libptr handle, int param_type, std::wstring value);
int set_bytes_array_param(libptr handle, int param_type, std::vector<std::byte> value);
int get_int_param(libptr handle, int param_type, int64_t& param_value);
int get_string_param(libptr handle, int param_type, std::string& param_value);
int get_wstring_param(libptr handle, int param_type, std::wstring& param_value);
int get_bytes_array_param(libptr handle, int param_type, std::vector<std::byte>& param_value);
Подсказка
Список типов параметров приведён в разделе с общими принципами работы с драйвером.
Выполнение команд
Для отправки любой поддерживаемой команды на весы нужно воспользоваться универсальной функцией выполнения команды и указать в качестве аргумента числовой эквивалент нужной команды.
int execute_command(libptr handle, int command);
После успешного выполнения команды функция вернёт значение «0». В противном случае вернётся код ошибки.
Подсказка
Список всех поддерживаемых команд приведён в разделе с общими принципами работы с драйвером.
Пример работы
static int example(){
using namespace nativedriver;
libptr ptr;
create(&ptr);
set_string_param(ptr, 1, std::string("192.168.0.101"));
set_string_param(ptr, 2, std::string("1111"));
set_string_param(ptr, 3, std::string("1234"));
int connection_result = execute_command(ptr, CONNECT);
std::wstring shop_name_wstr;
std::string shop_name_str;
//Получение название магазина
set_int_param(ptr, StringNumber, 1);
int get_shop_name_result = execute_command(ptr, GET_NAME_SHOP);
get_wstring_param(ptr, ShopName, shop_name_wstr);
//Запись нового названия магазина
auto new_name = std::string("Назв. маг. 3");
set_int_param(ptr, StringNumber, 1);
set_string_param(ptr, ShopName, new_name);
int set_shop_name_result = execute_command(ptr, SET_NAME_SHOP);
//Получение нового названия магазина
set_int_param(ptr, StringNumber, 1);
get_shop_name_result = execute_command(ptr, GET_NAME_SHOP);
get_wstring_param(ptr, ShopName, shop_name_wstr);
return connection_result;
}