Skip to content

Commit

Permalink
tools: add access-check option
Browse files Browse the repository at this point in the history
  • Loading branch information
EmmanuelP committed Apr 27, 2022
1 parent 4bfa241 commit 3c8ec49
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 3 deletions.
19 changes: 19 additions & 0 deletions src/arvcameratest.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ static char *arv_option_chunks = NULL;
static int arv_option_bandwidth_limit = -1;
static char *arv_option_register_cache = NULL;
static char *arv_option_range_check = NULL;
static char *arv_option_access_check = NULL;
static int arv_option_duration_s = -1;
static char *arv_option_uv_usb_mode = NULL;

Expand Down Expand Up @@ -173,6 +174,11 @@ static const GOptionEntry arv_option_entries[] =
{
"range-check", '\0', 0, G_OPTION_ARG_STRING,
&arv_option_range_check, "Range check policy",
"{disable|enable|debug}"
},
{
"access-check", '\0', 0, G_OPTION_ARG_STRING,
&arv_option_access_check, "Feature access check policy",
"{disable|enable}"
},
{
Expand Down Expand Up @@ -327,6 +333,7 @@ main (int argc, char **argv)
ArvStream *stream;
ArvRegisterCachePolicy register_cache_policy;
ArvRangeCheckPolicy range_check_policy;
ArvAccessCheckPolicy access_check_policy;
ArvGvPacketSizeAdjustment adjustment;
ArvUvUsbMode usb_mode;
GOptionContext *context;
Expand Down Expand Up @@ -377,6 +384,17 @@ main (int argc, char **argv)
return EXIT_FAILURE;
}

if (arv_option_access_check == NULL)
access_check_policy = ARV_ACCESS_CHECK_POLICY_DEFAULT;
else if (g_strcmp0 (arv_option_access_check, "disable") == 0)
access_check_policy = ARV_ACCESS_CHECK_POLICY_DISABLE;
else if (g_strcmp0 (arv_option_access_check, "enable") == 0)
access_check_policy = ARV_ACCESS_CHECK_POLICY_ENABLE;
else {
printf ("Invalid access check policy\n");
return EXIT_FAILURE;
}

if (arv_option_packet_size_adjustment == NULL)
adjustment = ARV_GV_PACKET_SIZE_ADJUSTMENT_DEFAULT;
else if (g_strcmp0 (arv_option_packet_size_adjustment, "always") == 0)
Expand Down Expand Up @@ -451,6 +469,7 @@ main (int argc, char **argv)

arv_camera_set_register_cache_policy (camera, register_cache_policy);
arv_camera_set_range_check_policy (camera, range_check_policy);
arv_camera_set_access_check_policy (camera, access_check_policy);

if (arv_option_chunks != NULL) {
char *striped_chunks;
Expand Down
30 changes: 27 additions & 3 deletions src/arvtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ static char *arv_option_device_address = NULL;
static char *arv_option_debug_domains = NULL;
static char *arv_option_register_cache = NULL;
static char *arv_option_range_check = NULL;
static char *arv_option_access_check = NULL;
static gboolean arv_option_show_time = FALSE;
static gboolean arv_option_show_version = FALSE;

Expand All @@ -55,6 +56,11 @@ static const GOptionEntry arv_option_entries[] =
{
"range-check", '\0', 0, G_OPTION_ARG_STRING,
&arv_option_range_check, "Range check policy",
"{disable|enable|debug}"
},
{
"access-check", '\0', 0, G_OPTION_ARG_STRING,
&arv_option_access_check, "Feature access check policy",
"{disable|enable}"
},
{
Expand Down Expand Up @@ -391,7 +397,8 @@ arv_tool_control (int argc, char **argv, ArvDevice *device)
static void
arv_tool_execute_command (int argc, char **argv, ArvDevice *device,
ArvRegisterCachePolicy register_cache_policy,
ArvRangeCheckPolicy range_check_policy)
ArvRangeCheckPolicy range_check_policy,
ArvAccessCheckPolicy access_check_policy)
{
ArvGc *genicam;
const char *command = argv[1];
Expand All @@ -402,6 +409,7 @@ arv_tool_execute_command (int argc, char **argv, ArvDevice *device,

arv_device_set_register_cache_policy (device, register_cache_policy);
arv_device_set_range_check_policy (device, range_check_policy);
arv_device_set_access_check_policy (device, access_check_policy);

genicam = arv_device_get_genicam (device);

Expand Down Expand Up @@ -460,6 +468,7 @@ main (int argc, char **argv)
ArvDevice *device;
ArvRegisterCachePolicy register_cache_policy;
ArvRangeCheckPolicy range_check_policy;
ArvAccessCheckPolicy access_check_policy;
GRegex *regex;
const char *device_id;
GOptionContext *context;
Expand Down Expand Up @@ -517,6 +526,17 @@ main (int argc, char **argv)
return EXIT_FAILURE;
}

if (arv_option_access_check == NULL)
access_check_policy = ARV_ACCESS_CHECK_POLICY_DEFAULT;
else if (g_strcmp0 (arv_option_access_check, "disable") == 0)
access_check_policy = ARV_ACCESS_CHECK_POLICY_DISABLE;
else if (g_strcmp0 (arv_option_access_check, "enable") == 0)
access_check_policy = ARV_ACCESS_CHECK_POLICY_ENABLE;
else {
printf ("Invalid access check policy\n");
return EXIT_FAILURE;
}

if (!arv_debug_enable (arv_option_debug_domains)) {
if (g_strcmp0 (arv_option_debug_domains, "help") != 0)
printf ("Invalid debug selection\n");
Expand All @@ -543,7 +563,9 @@ main (int argc, char **argv)
printf ("%s\n", device_id);
} else {
arv_tool_execute_command (argc, argv, device,
register_cache_policy, range_check_policy);
register_cache_policy,
range_check_policy,
access_check_policy);
}
g_object_unref (device);
} else {
Expand Down Expand Up @@ -582,7 +604,9 @@ main (int argc, char **argv)

if (ARV_IS_DEVICE (device)) {
arv_tool_execute_command (argc, argv, device,
register_cache_policy, range_check_policy);
register_cache_policy,
range_check_policy,
access_check_policy);

g_object_unref (device);
} else {
Expand Down

0 comments on commit 3c8ec49

Please sign in to comment.