[aravis] Re: understanding command events

  • From: Emmanuel Pacaud <emmanuel.pacaud@xxxxxxxxxxxxx>
  • To: aravis@xxxxxxxxxxxxx
  • Date: Sun, 25 Feb 2018 21:53:39 +0100

Hi,

Le dim. 25 févr. 2018 à 10:58, Ran Shalit <ranshalit@xxxxxxxxx> a écrit :

I have the same misunderstanding with other commands too.
for example, write memory is defined as
ARV_UVCP_COMMAND_WRITE_MEMORY_CMD = 0x0802,
in arvuvcp.h , and used here :

arv_device_write_memory->write_memory->arv_gv_device_write_memory->arv_uv_device_write_memory->_write_memory->arv_uvcp_packet_new_write_memory_cmd
I also assume that above is responsible for sending write commands.


But in the other list (in packet-gvcp.c)  I see it defined as:
#define GVCP_WRITEMEM_CMD (0x0086)

UVCP is related to USB3Vision, whereas GVCP refers to the GigEVision protocol. They are different.

and used as following:
dissect_gvcp ->DissectWriteMemCmd
What is DissectWriteMemCmd? Is it sending command write command to device ?

packet-gvcp.c is not part of the aravis sources. It is part of the Wireshark GigEVision dissector. It is included in aravis repository as a documentation source.

As we can not use the USB3Vision specification documents, the values you are
seeing come from freely available sources. Most probably from the usb3vision
 driver hosted on github and the protocol parsers from wireshark.

Is aravis using usb3vision git driver, or is it implementing the usb3
vision as part of the aravis package ?

Aravis implements the USB3Vision protocol using the user space libusb library. I'm not sure the performance would be that improved by using a kernel space driver like usb3vision hosted on github, but I would love to be proved wrong.

Cheers,

   Emmanuel.


Other related posts: