Примеры для C¶
Поиск устройств RF62X¶
Ниже приведен пример поиска сканеров серии RF627 v2.x.x:
#include <stdio.h>
#include <stdlib.h>
#include "network.h"
#include "rf62Xcore.h"
#include "rf62X_sdk.h"
#include "rf62X_types.h"
int main()
{
printf("#########################################\n");
printf("# #\n");
printf("# Search Example v2.x.x #\n");
printf("# #\n");
printf("#########################################\n");
// Initialize sdk library
core_init();
// Print return rf627 sdk version
printf("SDK version: %s\n", sdk_version());
printf("=========================================\n");
// Create value for scanners vector's type
vector_t* scanners = (vector_t*)calloc(1, sizeof (vector_t));
// Initialization vector
vector_init(&scanners);
// Iterate over all available network adapters in the current operating
// system to send "Hello" requests.
uint32_t count = 0;
for (int i=0; i<GetAdaptersCount(); i++)
{
uint32_t host_ip_addr = ntohl(inet_addr(GetAdapterAddress(i)));
uint32_t host_mask = ntohl(inet_addr(GetAdapterMasks(i)));
// call the function to change adapter settings inside the library.
set_platform_adapter_settings(host_mask, host_ip_addr);
// Search for rf627old devices over network by Service Protocol.
if (host_ip_addr != 0)
{
// Get another IP Addr and set this changes in adapter settings.
printf("Search scanners from:\n "
"* IP Address\t: %s\n "
"* Netmask\t: %s\n",
GetAdapterAddress(i), GetAdapterMasks(i));
search_scanners(scanners, kRF627_SMART, 300, kSERVICE);
// Print count of discovered rf627old in network
printf("Discovered\t: %d RF627\n",(int)vector_count(scanners)-count);
printf("-----------------------------------------\n");
count = (int)vector_count(scanners);
}
}
// Print count of discovered rf627smart in network
printf("Was found\t: %d RF627 v2.x.x", (int)vector_count(scanners));
for (int i = 0; i < (int)vector_count(scanners); i++)
{
hello_information result =
get_info_about_scanner(vector_get(scanners,i), kSERVICE);
rf627_smart_hello_info_by_service_protocol* info =
result.rf627smart.hello_info_service_protocol;
printf("\n\nID scanner in list: %d\n", i);
printf("-----------------------------------------\n");
printf("Device information: \n");
printf("* Name \t: %s\n", info->user_general_deviceName);
printf("* Serial\t: %d\n", info->fact_general_serial);
printf("* IP Addr\t: %s\n", info->user_network_ip);
printf("* MAC Addr\t: %s\n", info->fact_network_macAddr);
printf("\nWorking ranges: \n");
printf("* Zsmr, mm\t: %d\n", info->fact_general_smr);
printf("* Zmr , mm\t: %d\n", info->fact_general_mr);
printf("* Xsmr, mm\t: %d\n", info->fact_general_xsmr);
printf("* Xemr, mm\t: %d\n", info->fact_general_xemr);
printf("\nVersions: \n");
printf("* Firmware\t: %d.%d.%d\n",
info->fact_general_firmwareVer[0],
info->fact_general_firmwareVer[1],
info->fact_general_firmwareVer[2]);
printf("* Hardware\t: %d\n", info->fact_general_hardwareVer);
printf("-----------------------------------------\n");
}
core_cleanup();
}
Ниже приведён результат вывода приложения при успешном обнаружении сканера в сети:
#########################################
# #
# Search Example v2.x.x #
# #
#########################################
SDK version: 2.17.2
=========================================
Search scanners from:
* IP Address : 192.168.1.2
* Netmask : 255.255.255.0
Discovered : 1 RF627
-----------------------------------------
Search scanners from:
* IP Address : 192.168.2.104
* Netmask : 255.255.255.0
Discovered : 0 RF627
-----------------------------------------
Was found : 1 RF627 v2.x.x
ID scanner in list: 0
-----------------------------------------
Device information:
* Name : RF627 scanner
* Serial : 190068
* IP Addr : 192.168.1.30
* MAC Addr : 00:0A:35:6E:07:F5
Working ranges:
* Zsmr, mm : 70
* Zmr , mm : 50
* Xsmr, mm : 30
* Xemr, mm : 42
Versions:
* Firmware : 2.7.1
* Hardware : 302388224
-----------------------------------------
Press <RETURN> to close this window...
Вы можете открыть и скомпилировать этот пример с помощью Qt Creator:
Загрузите файл CMakeLists.txt из папки Examples/C/RF627_SMART/SEARCH_EXAMPLE через File > Open File or Project (укажите файл CMakeLists.txt)
Выберите компилятор (MinGW, MSVC, Clang) и нажмите Configure Project
Запустите проект
Получение профиля сканера¶
Ниже приведен пример получение профиля со сканера серии RF627 v2.x.x:
#include <stdio.h>
#include <stdlib.h>
#include "network.h"
#include "rf62Xcore.h"
#include "rf62X_sdk.h"
#include "rf62X_types.h"
int main()
{
printf("#########################################\n");
printf("# #\n");
printf("# Profile Example v2.x.x #\n");
printf("# #\n");
printf("#########################################\n");
// Initialize sdk library
core_init();
// Print return rf627 sdk version
printf("SDK version: %s\n", sdk_version());
printf("=========================================\n");
// Create value for scanners vector's type
vector_t* scanners = (vector_t*)calloc(1, sizeof (vector_t));
// Initialization vector
vector_init(&scanners);
// Iterate over all available network adapters in the current operating
// system to send "Hello" requests.
uint32_t count = 0;
for (int i=0; i<GetAdaptersCount(); i++)
{
uint32_t host_ip_addr = ntohl(inet_addr(GetAdapterAddress(i)));
uint32_t host_mask = ntohl(inet_addr(GetAdapterMasks(i)));
// call the function to change adapter settings inside the library.
set_platform_adapter_settings(host_mask, host_ip_addr);
// Search for rf627old devices over network by Service Protocol.
if (host_ip_addr != 0)
{
// Get another IP Addr and set this changes in adapter settings.
printf("Search scanners from:\n "
"* IP Address\t: %s\n "
"* Netmask\t: %s\n",
GetAdapterAddress(i), GetAdapterMasks(i));
search_scanners(scanners, kRF627_SMART, 300, kSERVICE);
// Print count of discovered rf627old in network
printf("Discovered\t: %d RF627\n",(int)vector_count(scanners)-count);
printf("-----------------------------------------\n");
count = (int)vector_count(scanners);
}
}
// Print count of discovered rf627smart in network
printf("Was found\t: %d RF627 v2.x.x", (int)vector_count(scanners));
for (int i = 0; i < (int)vector_count(scanners); i++)
{
scanner_base_t* scanner = vector_get(scanners,i);
hello_information _info = get_info_about_scanner(scanner, kSERVICE);
rf627_smart_hello_info_by_service_protocol* info =
_info.rf627smart.hello_info_service_protocol;
printf("\n\nID scanner in list: %d\n", i);
printf("-----------------------------------------\n");
printf("Device information: \n");
printf("* Name\t\t: %s\n", info->user_general_deviceName);
printf("* Serial\t: %d\n", info->fact_general_serial);
printf("* IP Addr\t: %s\n", info->user_network_ip);
// Establish connection to the RF627 device
uint8_t is_connected = connect_to_scanner(scanner, kSERVICE);
if (!is_connected)
continue;
// Read params from RF627 device
uint8_t is_read = read_params_from_scanner(scanner, 3000, kSERVICE);
if (!is_read)
continue;
uint8_t zero_points = TRUE;
uint8_t realtime = TRUE;
// Get profile from scanner's data stream by Service Protocol.
rf627_profile2D_t* result = get_profile2D_from_scanner(
scanner, zero_points, realtime, kSERVICE);
rf627_smart_profile2D_t* profile2D = result->rf627smart_profile2D;
if (profile2D != NULL)
{
printf("Profile information: \n");
switch (profile2D->header.data_type)
{
case (int)DTY_PixelsNormal:
{
printf("* DataType\t: PIXELS\n");
uint32_t count = profile2D->pixels_format.pixels_count;
printf("* Count\t\t: %d\n", count);
break;
}
case (int)DTY_PixelsInterpolated:
{
printf("* DataType\t: PIXELS_INTRP\n");
uint32_t count = profile2D->pixels_format.pixels_count;
printf("* Count\t\t: %d\n", count);
break;
}
case (int)DTY_ProfileNormal:
{
printf("* DataType\t: PROFILE\n");
uint32_t count = profile2D->profile_format.points_count;
printf("* Count\t\t: %d\n", count);
break;
}
case (int)DTY_ProfileInterpolated:
{
printf("* DataType\t: PROFILE_INTRP\n");
uint32_t count = profile2D->profile_format.points_count;
printf("* Count\t\t: %d\n", count);
break;
}
}
printf("Profile was successfully received!\n");
printf("-----------------------------------------\n");
free_profile2D(result);
}else
{
printf("Profile was not received!\n");
printf("-----------------------------------------\n");
}
disconnect_from_scanner(scanner, kSERVICE);
}
// Cleanup resources allocated with core_init()
core_cleanup();
}
Ниже приведён результат вывода приложения при успешном получении профиля:
#########################################
# #
# Profile Example v2.x.x #
# #
#########################################
SDK version: 2.17.2
=========================================
Search scanners from:
* IP Address : 192.168.1.2
* Netmask : 255.255.255.0
Discovered : 1 RF627
-----------------------------------------
Search scanners from:
* IP Address : 192.168.2.104
* Netmask : 255.255.255.0
Discovered : 0 RF627
-----------------------------------------
Was found : 1 RF627 v2.x.x
ID scanner in list: 0
-----------------------------------------
Device information:
* Name : RF627 scanner
* Serial : 190068
* IP Addr : 192.168.1.30
Profile information:
* DataType : PROFILE
* Count : 648
Profile was successfully received!
-----------------------------------------
Press <RETURN> to close this window...
Вы можете открыть и скомпилировать этот пример с помощью Qt Creator:
Загрузите файл CMakeLists.txt из папки Examples/C/RF627_SMART/PROFILE_EXAMPLE через File > Open File or Project (укажите файл CMakeLists.txt)
Выберите компилятор (MinGW, MSVC, Clang) и нажмите Configure Project
Запустите проект
Получение кадра матрицы¶
Ниже приведен пример получение кадра матрицы со сканера серии RF627 v2.x.x:
#include <stdio.h>
#include <stdlib.h>
#include "network.h"
#include "rf62Xcore.h"
#include "rf62X_sdk.h"
#include "rf62X_types.h"
int main()
{
printf("#########################################\n");
printf("# #\n");
printf("# Frame Example v2.x.x #\n");
printf("# #\n");
printf("#########################################\n");
// Initialize sdk library
core_init();
// Print return rf627 sdk version
printf("SDK version: %s\n", sdk_version());
printf("=========================================\n");
// Create value for scanners vector's type
vector_t* scanners = (vector_t*)calloc(1, sizeof (vector_t));
// Initialization vector
vector_init(&scanners);
// Iterate over all available network adapters in the current operating
// system to send "Hello" requests.
uint32_t count = 0;
for (int i=0; i<GetAdaptersCount(); i++)
{
uint32_t host_ip_addr = ntohl(inet_addr(GetAdapterAddress(i)));
uint32_t host_mask = ntohl(inet_addr(GetAdapterMasks(i)));
// call the function to change adapter settings inside the library.
set_platform_adapter_settings(host_mask, host_ip_addr);
// Search for rf627old devices over network by Service Protocol.
if (host_ip_addr != 0)
{
// Get another IP Addr and set this changes in adapter settings.
printf("Search scanners from:\n "
"* IP Address\t: %s\n "
"* Netmask\t: %s\n",
GetAdapterAddress(i), GetAdapterMasks(i));
search_scanners(scanners, kRF627_SMART, 300, kSERVICE);
// Print count of discovered rf627old in network
printf("Discovered\t: %d RF627\n",(int)vector_count(scanners)-count);
printf("-----------------------------------------\n");
count = (int)vector_count(scanners);
}
}
// Print count of discovered rf627smart in network
printf("Was found\t: %d RF627 v2.x.x", (int)vector_count(scanners));
for (int i = 0; i < (int)vector_count(scanners); i++)
{
scanner_base_t* scanner = vector_get(scanners,i);
hello_information _info = get_info_about_scanner(scanner, kSERVICE);
rf627_smart_hello_info_by_service_protocol* info =
_info.rf627smart.hello_info_service_protocol;
printf("\n\nID scanner in list: %d\n", i);
printf("-----------------------------------------\n");
printf("Device information: \n");
printf("* Name\t\t: %s\n", info->user_general_deviceName);
printf("* Serial\t: %d\n", info->fact_general_serial);
printf("* IP Addr\t: %s\n", info->user_network_ip);
// Establish connection to the RF627 device
uint8_t is_connected = connect_to_scanner(scanner, kSERVICE);
if (!is_connected)
continue;
// Read params from RF627 device
uint8_t is_read = read_params_from_scanner(scanner, 3000, kSERVICE);
if (!is_read)
continue;
rf627_frame_t* _frame = get_frame_from_scanner(scanner, kSERVICE);
if (_frame != NULL && _frame->rf627smart_frame != NULL)
{
uint32_t data_size = _frame->rf627smart_frame->data_size;
uint32_t frame_width = _frame->rf627smart_frame->fact_sensor_width;
uint32_t frame_height = _frame->rf627smart_frame->fact_sensor_height;
printf("Frame information: \n");
printf("* Data Size\t: %d\n", data_size);
printf("* Frame Width\t: %d\n", frame_width);
printf("* Frame Height\t: %d\n", frame_height);
printf("Frame was successfully received!\n");
printf("-----------------------------------------\n");
free_frame(_frame);
}
disconnect_from_scanner(scanner, kSERVICE);
}
// Cleanup resources allocated with core_init()
core_cleanup();
}
Ниже приведён результат вывода приложения при успешном получении кадра:
#########################################
# #
# Frame Example v2.x.x #
# #
#########################################
SDK version: 2.17.2
=========================================
Search scanners from:
* IP Address : 192.168.1.2
* Netmask : 255.255.255.0
Discovered : 1 RF627
-----------------------------------------
Search scanners from:
* IP Address : 192.168.2.104
* Netmask : 255.255.255.0
Discovered : 0 RF627
-----------------------------------------
Was found : 1 RF627 v2.x.x
ID scanner in list: 0
-----------------------------------------
Device information:
* Name : RF627 scanner
* Serial : 190068
* IP Addr : 192.168.1.30
Frame information:
* Data Size : 316224
* Frame Width : 648
* Frame Height : 488
Frame was successfully received!
-----------------------------------------
Press <RETURN> to close this window...
Вы можете открыть и скомпилировать этот пример с помощью Qt Creator:
Загрузите файл CMakeLists.txt из папки Examples/C/RF627_SMART/FRAME_EXAMPLE через File > Open File or Project (укажите файл CMakeLists.txt)
Выберите компилятор (MinGW, MSVC, Clang) и нажмите Configure Project
Запустите проект
Получение и установка параметров¶
Ниже приведен пример получения и изменения имени сканера и смены состояния лазера (включение/выключение):
#include <stdio.h>
#include <stdlib.h>
#include "network.h"
#include "rf62Xcore.h"
#include "rf62X_sdk.h"
#include "rf62X_types.h"
int main()
{
printf("#########################################\n");
printf("# #\n");
printf("# Parameter Example v2.x.x #\n");
printf("# #\n");
printf("#########################################\n");
// Initialize sdk library
core_init();
// Print return rf627 sdk version
printf("SDK version: %s\n", sdk_version());
printf("=========================================\n");
// Create value for scanners vector's type
vector_t* scanners = (vector_t*)calloc(1, sizeof (vector_t));
// Initialization vector
vector_init(&scanners);
// Iterate over all available network adapters in the current operating
// system to send "Hello" requests.
uint32_t count = 0;
for (int i=0; i<GetAdaptersCount(); i++)
{
uint32_t host_ip_addr = ntohl(inet_addr(GetAdapterAddress(i)));
uint32_t host_mask = ntohl(inet_addr(GetAdapterMasks(i)));
// call the function to change adapter settings inside the library.
set_platform_adapter_settings(host_mask, host_ip_addr);
// Search for rf627old devices over network by Service Protocol.
if (host_ip_addr != 0)
{
// Get another IP Addr and set this changes in adapter settings.
printf("Search scanners from:\n "
"* IP Address\t: %s\n "
"* Netmask\t: %s\n",
GetAdapterAddress(i), GetAdapterMasks(i));
search_scanners(scanners, kRF627_SMART, 300, kSERVICE);
// Print count of discovered rf627old in network
printf("Discovered\t: %d RF627\n",(int)vector_count(scanners)-count);
printf("-----------------------------------------\n");
count = (int)vector_count(scanners);
}
}
// Print count of discovered rf627smart in network
printf("Was found\t: %d RF627 v2.x.x", (int)vector_count(scanners));
for (int i = 0; i < (int)vector_count(scanners); i++)
{
scanner_base_t* scanner = vector_get(scanners,i);
printf("\n\nID scanner in list: %d\n", i);
printf("-----------------------------------------\n");
// Establish connection to the RF627 device
uint8_t is_connected = connect_to_scanner(scanner, kSERVICE);
if (!is_connected)
continue;
// Read params from RF627 device
uint8_t is_read = read_params_from_scanner(scanner, 3000, kSERVICE);
if (!is_read)
continue;
//
// Example of working with the parameter type:
// string
//
// Get/Set parameter of Device Name
parameter_t* name = get_parameter(scanner,"user_general_deviceName");
if (name != NULL)
{
char* value = name->val_str->value;
printf("Current Device Name\t: %s\n", value);
char* new_value = "TEST NAME";
printf("New Device Name\t\t: %s\n", new_value);
parameter_t* temp = create_parameter_from_type(name->base.type);
uint32_t name_size = strlen(name->base.name) + 1;
temp->base.name = platform_calloc(name_size, sizeof (char));
platform_memcpy(temp->base.name, name->base.name, name_size);
uint32_t value_size = strlen(new_value) + 1;
temp->val_str->value = platform_calloc(value_size, sizeof (char));
platform_memcpy(temp->val_str->value, new_value, value_size);
temp->base.size = value_size;
printf("-------------------------------------\n");
set_parameter(scanner, temp);
free_parameter(temp, scanner->type);
}
//
// Example of working with the parameter type:
// uint32_t
//
// Get/Set parameter of Laser Enabled
parameter_t* laser = get_parameter(scanner, "user_laser_enabled");
if (laser != NULL && strcmp(
laser->base.type, "uint32_t")== 0)
{
uint32_t isEnabled = laser->val_uint32->value;
printf("Current Laser State\t: %s\n", (isEnabled?"ON":"OFF"));
// Change the current state to the opposite
isEnabled = !isEnabled;
laser->val_uint32->value = isEnabled;
printf("New Laser State\t\t: %s\n", (isEnabled?"ON":"OFF"));
printf("-------------------------------------\n");
set_parameter(scanner, laser);
}
// Apply changed parameters to the device
char answer = 'n';
printf("Apply changed params to the device? (y/n): ");
scanf("%c", &answer);
if (answer == 'y' || answer == 'Y')
{
write_params_to_scanner(scanner, 3000, kSERVICE);
// Save changes to the device's memory
printf("\nSave changes to device's memory? (y/n): ");
scanf("%c", &answer);
if (answer == 'y' || answer == 'Y')
save_params_to_scanner(scanner, 3000, kSERVICE);
}
}
// Cleanup resources allocated with core_init()
core_cleanup();
}
Ниже приведён результат вывода приложения при успешной установке новых параметров:
#########################################
# #
# Parameter Example v2.x.x #
# #
#########################################
SDK version: 2.17.2
=========================================
Search scanners from:
* IP Address : 192.168.1.2
* Netmask : 255.255.255.0
Discovered : 1 RF627
-----------------------------------------
Search scanners from:
* IP Address : 192.168.2.104
* Netmask : 255.255.255.0
Discovered : 0 RF627
-----------------------------------------
Was found : 1 RF627 v2.x.x
ID scanner's list: 0
-----------------------------------------
Current Device Name : RF627 scanner
New Device Name : TEST NAME
-----------------------------------------
Current Laser State : ON
New Laser State : OFF
-----------------------------------------
Apply changed params to the device? (y/n): y
Save changes to device's memory? (y/n): n
Press <RETURN> to close this window...
Вы можете открыть и скомпилировать этот пример с помощью Qt Creator:
Загрузите файл CMakeLists.txt из папки Examples/C/RF627_SMART/PARAMETER_EXAMPLE через File > Open File or Project (укажите файл CMakeLists.txt)
Выберите компилятор (MinGW, MSVC, Clang) и нажмите Configure Project
Запустите проект
Запись и скачивание дампа¶
Ниже приведен пример записи дампа профилей и его скачивание:
#include <stdio.h>
#include <stdlib.h>
#include "network.h"
#include "rf62Xcore.h"
#include "rf62X_sdk.h"
#include "rf62X_types.h"
int main()
{
printf("#########################################\n");
printf("# #\n");
printf("# Dump Example v2.x.x #\n");
printf("# #\n");
printf("#########################################\n");
// Initialize sdk library
core_init();
// Print return rf627 sdk version
printf("SDK version: %s\n", sdk_version());
printf("=========================================\n");
// Create value for scanners vector's type
vector_t* scanners = (vector_t*)calloc(1, sizeof (vector_t));
// Initialization vector
vector_init(&scanners);
// Iterate over all available network adapters in the current operating
// system to send "Hello" requests.
uint32_t count = 0;
for (int i=0; i<GetAdaptersCount(); i++)
{
uint32_t host_ip_addr = ntohl(inet_addr(GetAdapterAddress(i)));
uint32_t host_mask = ntohl(inet_addr(GetAdapterMasks(i)));
// call the function to change adapter settings inside the library.
set_platform_adapter_settings(host_mask, host_ip_addr);
// Search for rf627old devices over network by Service Protocol.
if (host_ip_addr != 0)
{
// Get another IP Addr and set this changes in adapter settings.
printf("Search scanners from:\n "
"* IP Address\t: %s\n "
"* Netmask\t: %s\n",
GetAdapterAddress(i), GetAdapterMasks(i));
search_scanners(scanners, kRF627_SMART, 300, kSERVICE);
// Print count of discovered rf627old in network
printf("Discovered\t: %d RF627\n",(int)vector_count(scanners)-count);
printf("-----------------------------------------\n");
count = (int)vector_count(scanners);
}
}
// Print count of discovered rf627smart in network
printf("Was found\t: %d RF627 v2.x.x", (int)vector_count(scanners));
for (int i = 0; i < (int)vector_count(scanners); i++)
{
scanner_base_t* scanner = vector_get(scanners,i);
printf("\n\nID scanner in list: %d\n", i);
printf("-----------------------------------------\n");
// Establish connection to the RF627 device
uint8_t is_connected = connect_to_scanner(scanner, kSERVICE);
if (!is_connected)
continue;
// Read params from RF627 device
uint8_t is_read = read_params_from_scanner(scanner, 3000, kSERVICE);
if (!is_read)
continue;
uint8_t status = FALSE;
rf627_profile2D_t** dumps = NULL;
uint32_t profiles_in_dump = 0;
uint32_t count_of_profiles = 1000;
// Get parameter of user_dump_capacity
parameter_t* capacity = get_parameter(scanner,"user_dump_capacity");
if (capacity != NULL)
{
capacity->val_uint32->value = count_of_profiles;
set_parameter(scanner, capacity);
write_params_to_scanner(scanner, 300, kSERVICE);
}
// Get parameter of user_dump_enabled
parameter_t* enabled = get_parameter(scanner,"user_dump_enabled");
if (enabled != NULL && strcmp(enabled->base.type,"uint32_t")== 0)
{
enabled->val_uint32->value = TRUE;
set_parameter(scanner, enabled);
write_params_to_scanner(scanner, 300, kSERVICE);
}
printf("Start dump recording...\n");
printf("-----------------------------------------\n");
uint32_t size = 0;
// wait dump recording
do {
read_params_from_scanner(scanner, 300, kSERVICE);
size = get_parameter(scanner,"user_dump_size")->val_uint32->value;
printf("Current profiles in the dump: %d\n", size);
}while(size < count_of_profiles);
printf("-----------------------------------------\n");
printf("Start dump downloading...\n");
// Get parameter of user_dump_enabled
parameter_t* unit_size =get_parameter(scanner,"fact_dump_unitSize");
if (unit_size != NULL && strcmp(unit_size->base.type,"uint32_t")== 0)
{
dumps = calloc(count_of_profiles, sizeof (rf627_profile2D_t*));
uint32_t start_index = 0;
status = get_dumps_profiles_from_scanner(
scanner, start_index, count_of_profiles,
10000, kSERVICE,
dumps, &profiles_in_dump,
unit_size->val_uint32->value);
}
if (status) {
printf("%d Profiles in dump were downloaded!\n", profiles_in_dump);
printf("-----------------------------------------\n");
}else {
printf("Dump was not received!\n");
printf("-----------------------------------------\n");
}
for(uint32_t i = 0; i < profiles_in_dump; i++)
free_profile2D(dumps[i]);
free(dumps);
}
// Cleanup resources allocated with core_init()
core_cleanup();
}
Ниже приведён результат вывода приложения при успешной записи и скачивании дампа профилей:
#########################################
# #
# Parameter Example v2.x.x #
# #
#########################################
SDK version: 2.17.2
=========================================
Search scanners from:
* IP Address : 192.168.1.2
* Netmask : 255.255.255.0
Discovered : 1 RF627
-----------------------------------------
Search scanners from:
* IP Address : 192.168.2.104
* Netmask : 255.255.255.0
Discovered : 0 RF627
-----------------------------------------
Was found : 1 RF627 v2.x.x
ID scanner's list: 0
-----------------------------------------
Start dump recording...
-----------------------------------------
Current profiles in the dump: 0
Current profiles in the dump: 67
Current profiles in the dump: 205
Current profiles in the dump: 415
Current profiles in the dump: 702
Current profiles in the dump: 921
Current profiles in the dump: 1000
-----------------------------------------
Start dump downloading...
1000 Profiles were received!
-----------------------------------------
Press <RETURN> to close this window...
Вы можете открыть и скомпилировать этот пример с помощью Qt Creator:
Загрузите файл CMakeLists.txt из папки Examples/C/RF627_SMART/DUMP_EXAMPLE через File > Open File or Project (укажите файл CMakeLists.txt)
Выберите компилятор (MinGW, MSVC, Clang) и нажмите Configure Project
Запустите проект