diff --git a/b b/b index 50f1bc23ad420cb0a36ed18cacdc36a68db7c3c4..09360a19353558f2fb58580d08aedbb15713c655 160000 --- a/b +++ b/b @@ -1 +1 @@ -Subproject commit 50f1bc23ad420cb0a36ed18cacdc36a68db7c3c4 +Subproject commit 09360a19353558f2fb58580d08aedbb15713c655 diff --git a/dox/notes_B b/dox/notes_B index 1252e288e3bd01721513399e09bd5402c57790f9..e22612edee8b2a2e891c1c339ced818d61d15c7a 100644 --- a/dox/notes_B +++ b/dox/notes_B @@ -1,15 +1,15 @@ ############################### ## PART B ############################### -V git@gitlab.idiv.de:sugu/vimba.git Does - > camera produces frames and timestamps + > camera produces frames and stores them with timestamps +############################### +use opencv to convert raw cam images into JPEG pixel format ############################### - * camera sends the raw pictures to a storage server via a network (IP/UDP) connection -* internal real time clock and delivers high precision time stamps, which were simultaneous recorded for every frame (use milliseconds) +* internal real time clock and delivers high precision TIME STAMPS, which were simultaneous recorded for every frame (use milliseconds) * compress frames as jpeg used opencv version 3.2 imwrite() with parameter: IMWRITE_JPEG_QUALITY 100; IMWRITE_JPEG_OPTIMIZE 1; IMWRITE_JPEG_RST_INTERVAL 4; @@ -98,17 +98,20 @@ vimbasystem = api > init / shutdown > access to cams and if's -cam -interface +api > cam > feature (settings like exposuretime or pixelformat) + cam > frames > img data + > ancillary data (cam settings at time of acquisition -> can be queried via feature access) +api > interface > settings/feature frames = img data + ancillaryData > create by api and queue in cam > when image is rcv, frame will be filled -> notification - > process and re-enqueue1111 + > process and re-enqueue at cam GenICam - camera standard TL - Transport Layer - transports data from cam to sw + Buffer management ############################### Every image acquisition requires allocating memory and handling frame buffers: @@ -116,11 +119,33 @@ Every image acquisition requires allocating memory and handling frame buffers: 2. Announce the buffer (this hands the frame buffer over to the API). 3. Queue a frame (prepare buffer to be filled). 4. Vimba fills the buffer with an image from the camera. - 5. Vimba returns the filled buffer (and hands it over to the user). + 5. Vimba returns the filled buffer (and hands it over to the user -> notification). 6. Work with the image + > store as jpeg + > send to HPC 7. Requeue the frame to hand it over to the API +Img Capture and Acquisition C++ +############################### sync acquisition <> async acquisition +Vimba API *captures* images <> camera *acquires* images + +1. prepare img acquisition + cam.AnnounceFrame() # make vimba aware of buffer + cam.StartCapture() # start capture engine + cam.QueueFrame() # hand buffer to vimba +2. start img acquisition + AcquisitionStart() +3. image in callback func + cam.QueueFrame() +4. stop img acquisition + AcquisitionStop() +5. clean up + cam.EndCapture() + cam.FlushQueue() + cam.RevokeAllFrames() +>> conveninence funcs() + 1 buffer | X buffers restrained fps | unrestrained fps | while working with img, the nxt img is acquired! @@ -131,14 +156,17 @@ Notifications > register event handler > different thread -> !!caution! when using shared data > ! Not all func from API can be called in event handler -> during event handler Vimba API might be blocked -> exit AFAP -> +> during event handler Vimba API might be blocked -> exit AFA +P> difference? AcquisitionFrameRateAbs <> AcquisitionFrameRate +-> cam feature? (== cam setting) + + -Frame: +## Frame: getImage - img data getBuffer - img data + ancillary data GetAncillaryData - ancillary data [~ genicam chunk data] diff --git a/dox/notes_C b/dox/notes_C index e2bfeea1f5ffe78d6da399db3d0ba773838eb6f3..84ada140fad666e729333f2d079106909350dfca 100644 --- a/dox/notes_C +++ b/dox/notes_C @@ -1,7 +1,6 @@ ############################### ## PART C ############################### -CT, bgs git@gitlab.idiv.de:sugu/camtron.git Does diff --git a/dox/notes_D b/dox/notes_D index c4f193113fcba6870f68e74326a034d0ad0f7c11..594e6095e312ac8092b941a4652a07573ac6decb 100644 --- a/dox/notes_D +++ b/dox/notes_D @@ -1,7 +1,6 @@ ########################### ## PART D ########################### -CTD git@gitlab.idiv.de:tb55xemi/itrackl-process-scripts.git Does: