CVB GigE Vision Server : send file?

Dear colleagues,

Do you know if it’s possible to send/receive file with CVB GigE Server librairie ?

Thank you in advance for your help.

Best Regards,

Hi @ABallay, do you mean GenApi file up-/download or GigE Vision Stream Protocol’s FILE packet format?

For the GenApi file up-/download part this can be completely implemented with GenApi features. But nothing is prepared in this regard as of today.

For streaming files there is something very specific inside the library, but I think it is not available from the outside for general purpose file streaming. In this case you would need a GigE Vision receiver like the And this would also need to support the FILE format.

Hi @parsd,

Thank you for your answer.

For the moment, it’s just “open” question from one customer.
He wants to add information with the image.
He asked :

  • if it’s possible to create data with images (GSSendEventData function)
  • if it’s possible to send file with images.


FILE streaming
First, I checked the GEVServer header (i didn’t have access to it yesterday) and sending files is possible via GSSendBlock (in GEVServer 2 mode). Use GSFileDataBlock as header info.

Images with additional data
If you want to send images with associated extra data you would use chunk payload type. You can do this as with files, but use GSExtendedChunkDataBlock for that. For information about chunks see the GigE Vision standard (version 2 can be requested from the AIA free of charge). No automatic way to create chunks is implemented as of today.

Events are for asynchronous messages from the server to the client that are normally not associated with an image (like e.g sensor events like integration start). Also only a few bytes can be send this way and thus no images.

Customer’s question
What is meant by sending files with images? Loading files from hard disk and sending them? This is possible via the aforementioned GSSendBlock or via GSSendImage/GSSendImageCB. The preferred way would be as GEV images. You can load the image file via CVB’s LoadImageFile. Via
GSSendBlock and GSFileDataBlock you can also send the file as it is on HD. But not all clients accept FILEs.

The GenApi file up-/download part (with GenApi features) is the best solution.

What do you say with :“But nothing is prepared in this regard as of today”?
This function can’t be used with GigEServer?

Thank you in advance for your answer,

As hinted everybody can implement the necessary logic with the available nodes from the GEVServer. The necessary nodes and their behavior are described in the GenICam SFNC chapter 2.16 (details in chapter 18). For the IRegister buffer node an IStringReg can be used: CreateGSStringNode.

The comment was because, although it is possible, nothing has been implemented inside the server or in a tutorial for File Access Control. Client side up-/download is implemented in the CVGenApi (e.g. NMUploadFile).

But I would very much like to have a tutorial implementation! :wink: