diff --git a/a/setup/camo-big.png b/a/setup/camo-big.png new file mode 100644 index 0000000000000000000000000000000000000000..9977c6a950af7c51dc1b475252bf81b2ad31998e Binary files /dev/null and b/a/setup/camo-big.png differ diff --git a/a/setup/camo-big.xcf b/a/setup/camo-big.xcf new file mode 100644 index 0000000000000000000000000000000000000000..68062fce7a5cdc32b415e0de9aedea2b47e78e1f Binary files /dev/null and b/a/setup/camo-big.xcf differ diff --git a/a/setup/camo-pattern.xcf b/a/setup/camo-pattern.xcf new file mode 100644 index 0000000000000000000000000000000000000000..6384b135e80c4b556dd419532513a13e0aa452e1 Binary files /dev/null and b/a/setup/camo-pattern.xcf differ diff --git a/a/setup/camocalc b/a/setup/camocalc new file mode 100644 index 0000000000000000000000000000000000000000..929e2e3cae46dadc52eb7af6a10c31ca7bea8744 --- /dev/null +++ b/a/setup/camocalc @@ -0,0 +1,24 @@ + +22 x 20cm - 2598 x 2362px - ne 8tel der breite und haelfte der hoehe +export as pattern to ~/.config/GIMP/2.10/patterns/camo.pat +176 x 40cm - 20784 x 4724px (3px zu klein in der breite) +fill with pattern + +add 5cm border overlap on right side +181 x 40cm - 21375 x 4724 + +druck max +160 x 106cm + + +############################### +88 x 40cm - 10394 x 4724px - 0.5breite + 1hoehe +add 5cm border overlap on right side +93 x 40cm - 10984 x 4724px + +23.75€ * 2 - 47.5 +18.95€ * 10 - 189.5 +18.95€ * 12 - 228 + +aufkleber +72€ * 12 - 864€ diff --git a/b b/b index aaaaf3faf667d2e3a66349bf1d6aa64321a6739b..baf20feef3380d7ac1193f54ecf761454eb466c6 160000 --- a/b +++ b/b @@ -1 +1 @@ -Subproject commit aaaaf3faf667d2e3a66349bf1d6aa64321a6739b +Subproject commit baf20feef3380d7ac1193f54ecf761454eb466c6 diff --git a/dox/c++_scrap b/dox/c++_scrap index 9d666a1fcc7d38c10be6ae3b5f1ed828e1a6ee7f..9702b42c80bf28472f6c59a2218b7cfde42dac01 100644 --- a/dox/c++_scrap +++ b/dox/c++_scrap @@ -1,3 +1,40 @@ +//############################### +// parse arguments +//############################### + // QCommandLineParser parser; + // parser.setApplicationDescription("a commandline app that is meant to be standalone and communicates with the camera"); + // parser.addHelpOption(); + // parser.addVersionOption(); + // parser.addOptions({ + // {{"o", "out-dir"}, "store frames to <out-dir>", "out_dir"}, + // {{"l", "list-cams"}, "list available cams"}, + // {{"e", "export-cam-config"}, "export camera config" "settings.xml"}, + // {{"i", "import-cam-config"}, "import camera config" "settings.xml"}, + // {{"c", "calibrate"}, "calibrate cam"}, + // {{"r", "start record"}, "record"}, + // {{"s", "stop record"}, "stop recording"}, + // // {{"f", "force"}, "Overwrite existing files."}, + // // {{"n", "dry-run"}, "Do nothing. For testing purposes."}, + // // {{"p", "progress"}, "Show progress during copy."}, + // // {{"v", "verbose"}, "verbose"}, + // }); + + // parser.process(a); + + // const QStringList args = parser.positionalArguments(); + // // source is args.at(0), destination is args.at(1) + // qDebug() << "args: " << args.join(", ") << "\n"; + + // if( parser.isSet("o") ) + // { + // maybeCreateDir(parser.value("o")); + // } + + + +//############################### +// curCam->StartContinuousImageAcquisition(int bufferCount, const IFrameObserverPtr &pObserver) +//############################### //open cam // if ( VmbErrorSuccess == (* iter)->Open( VmbAccessModeFull ) ) // { diff --git a/dox/notes_a b/dox/notes_a index 6f86d371edadcd720fe74ba2fea4c16b8faa0779..f03ccaabc9baf068666fa53e8843fbe5e6835b20 100644 --- a/dox/notes_a +++ b/dox/notes_a @@ -15,12 +15,7 @@ Does ############################### # arena: - kg rohr 1m@500mm 162 DN550 https://www.hornbach.de/p/kg-rohr-dn-500-laenge-1-00m/8042036/ - - 55cm gummiring - https://www.amazon.de/Leeadwaey-Barstuhl-Fahrgestell-rutschfeste-Gummiring-rutschfest/dp/B0C1NB1PLD/ref=sr_1_40?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=QCF6AKJ2PTIJ&keywords=gummiring%2B55cm&qid=1695054808&sprefix=gummuring%2B55cm%2Caps%2C98&sr=8-40&th=155cm lamp ring https://www.dannells.com/55cm-circular-lampshade-ringset-2765-p.asp - https://www.amazon.de/Austauschbarer-Gummiring-Rutschfester-Bodenschutz-Gummidichtung/dp/B09XXH9PP8/ref=sr_1_43?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=QCF6AKJ2PTIJ&keywords=gummiring+55cm&qid=1695055336&sprefix=gummuring+55cm%2Caps%2C98&sr=8-43 - + 3D printed PETG-Arena diff --git a/dox/notes_b b/dox/notes_b index a4baf0df92f6b29ec94ccde5c83720d8738bf998..1369f57d2bbc0ee5d6ed732f062e12bf87c5e8ad 100644 --- a/dox/notes_b +++ b/dox/notes_b @@ -9,10 +9,13 @@ Does use opencv to convert raw cam images into JPEG pixel format ############################### + + VmbSystem::RegisterCameraListObserver For being notified whenever a camera is detected, disconnected, or changes its open state, use + map cam -> MAC -> IP -> name (contains ID) camtron1 000A4708ED3F 172.18.227.210 allied-alviumg1-240c-04ytr.idiv.de camtron2 000A471C0C9D 172.18.227.211 allied-alviumg1-240c-04ytp.idiv.de @@ -23,15 +26,21 @@ map cam -> MAC -> IP -> name (contains ID) direct: 169.254.75.147 + + camtron1/// 169.254.158.10 fixed ip: 172.18.205.201 + 255.255.255.0 gateway should: 172.18.205.254 gateway is: 0.0.0.0 + + wired settings 169.254.100.3 255.255.0.0 + + ## connect VM + setup ssh ssh kr69sugu@idivtibcam01.usr.idiv.de - see `cmds "login ssh without password"` for config diff --git a/dox/timeplan_milestones.ods b/dox/timeplan_milestones.ods index 79c6e203e4c5bcd897cb17c9483ee24fba1b5326..05908b03092a8dd4c446c24ebddd0566eff2451d 100644 Binary files a/dox/timeplan_milestones.ods and b/dox/timeplan_milestones.ods differ diff --git a/dox/todo_ct b/dox/todo_ct index e4dd6d1286692374d49e9b27171158c23dd8f033..f38802e526726d2acf7e5428d332420332a9997e 100644 --- a/dox/todo_ct +++ b/dox/todo_ct @@ -10,38 +10,45 @@ CAMTRON PROCESSING PIPELINE B) recorder - camera produces frames and timestamps ########################### - - ðŸ—£ï¸ sebastian hostname-fix IP -> â€¼ï¸ cam works with VM? - - wait and detect cams - - â€¼ï¸ produce frames & timestamps & save as jpg - - put cams in own thread + - test if solved ... ðŸ—£ï¸ sebastian hostname-fix IP -> â€¼ï¸ cam works with VM? + - BUG occasionaly frames are incomplete -> calling VV once fixes issues. why? maybe PACKSIZE ADjustment? + - â€¼ï¸ BUG files are not closed, causing OS limit crash (ulimit -n, too many open files...). why? + - test with 1 cam + - test with x cams ============================ CORE - - list cameras - - test: core::listCams worx with multiple cams? - - store/load cam and app settings (opencv or vimba or QT) - - cam mappings (IP/MAC/ID) - - out_dir - - calibrate + - â€¼ï¸ cam settings - save/load + - add camera name to filename + - framerate, brightness ... + - opencv or vimba? + - eval: use same settings(file) for all cams!? + - app settings: + - save/load settings + - out_dir, threads_per_cam, + - camName (hostname possible?), ... + - record duration + - â€¼ï¸ calibrate - see opencv tut + code/bash cali example - ada-HPC-CALISW - - record - - stop recording =============================== - get pix, using VV and recorder - - laptop - direct connection + - laptop - direct connection # DONE - laptop - local network - virtual machine - - get video via vimbax-SDK - get video for 3 cams simultaneously - do tests and see if frames are dropped + - cam > acquisition framrate + framerate enable + - getFramerate + - stream > statistics + - stats frame dropped + - state frame rate + - central config - threads for started recordings [PID] - storage folder - - export settings with viewer - - load settings with sw - - how and where to store frames? + - where to store frames? estimate size. A) ########################### @@ -49,9 +56,9 @@ A) - â€¼ï¸ light - 2*LEDs: 1*day + 1*night - find ecolux hw (Boxes, DMX per unit, DMX splitter/controller) - - â€¼ï¸ ðŸ—£ï¸ arenas - @laura asks 3D-Printer - - Acrylzylinder in 2 teile gesaegt. - - floor: find big white paperrolle in BUG/Storage + - â€¼ï¸ ðŸ—£ï¸ arenas + - checkerboardpattern + - floor: find big white paperrolle in BUG/Storage C) background subtraction @@ -117,6 +124,16 @@ ctb Done ####################### +- put cams in own class +- name / id +- state open/close, recording/stopped, timer +- track states - need to update open / closed states +- update state: camObserver: cameraOpenStateChanged(CameraPtr); +- detect cams -> camera interface listener! +- MS! produce frames & timestamps & save as jpg â˜ºï¸ + - frameObser + frameProcessor + - start recording + - stop recording - use new api VimbaX - read manual (c++ / vimba) - write alliedvision (MTU)