diff --git a/b b/b index a77e05cb66dba18688565911354234c3ff36e0e9..b819b9b8792adc4b207fb1a01855dbb2ac25e4a0 160000 --- a/b +++ b/b @@ -1 +1 @@ -Subproject commit a77e05cb66dba18688565911354234c3ff36e0e9 +Subproject commit b819b9b8792adc4b207fb1a01855dbb2ac25e4a0 diff --git a/dox/c++_scrap b/dox/c++_scrap new file mode 100644 index 0000000000000000000000000000000000000000..9d666a1fcc7d38c10be6ae3b5f1ed828e1a6ee7f --- /dev/null +++ b/dox/c++_scrap @@ -0,0 +1,80 @@ +//open cam + // if ( VmbErrorSuccess == (* iter)->Open( VmbAccessModeFull ) ) + // { + // qDebug() << " Camera opened "; + // // emit() + // } + // else + // { + // // cameras. + // qDebug() << "Coudn't open camera"; + // } + +// (*iter)->AcquireSingleImage() +// (*iter)->GetFeatureByName +// (*iter)->GetFeatures +// (*iter)->AcquireMultipleImages() +// (*iter)->StartContinuousImageAcquisition() +// (*iter)->StartCapture() +// // (*iter)->GetPayloadSize(VmbUint32_t &nPayloadSize) + // (*iter)->GetInterface(InterfacePtr &pInterface) + // (*iter)->LoadSettings() + // (*iter)->SaveSettings(const VmbFilePathChar_t *filePath) + + + + // std::string str; + // (*iter)->GetID( str ); + // camInfo << QString::fromStdString(str); + + +// auto mf = std::bind(&Core::getCamInfo, this, std::placeholders::_1); //weird syntax for calling non-static memberfunction in for_each... + // std::for_each( cameras.begin(), cameras.end(), mf ); + +############################### +CONSOLE + +if it takes userinput interactively, create threads to not-block the main thread eventloop +-> connect via signal slots +------------------------------- +Style / Naming convetions: +> use camelCase! + +############################### +on Qthread +https://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/ +############################### +https://stackoverflow.com/questions/7543313/how-to-handle-keypress-events-in-a-qt-console-application#18889631 +void initTermios(int echo) +{ + tcgetattr(0, &oldSettings); /* grab old terminal i/o settings */ + newSettings = oldSettings; /* make new settings same as old settings */ + newSettings.c_lflag &= ~ICANON; /* disable buffered i/o */ + newSettings.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */ + tcsetattr(0, TCSANOW, &newSettings); /* use these new terminal i/o settings now */ +} +############################### + +// usleep(500000); // sleep 0.5s + +# use Qt wrapper for stdout/stdin/stderr, for better QString handling. +# > not working with userinput, cause not flushed properly... +QTextStream qout(stdout); //2d make global to access from anywhere + QTextStream qin(stdin); + qin.skipWhiteSpace(); // Remove white characters that interrupt + QTextStream qerr(stderr); + + qout << "Please enter your name: " << endl; + qout.flush(); // clears the keyboard buffer + + QString inpu = qin.readLine(); + qout << "u typed " << inpu.toLower() << endl; + + return 3; + +############################### +eventfilter +evt->key() +evt->modifiers() + +pushButton->installEventFilter(keyPressEater); diff --git a/dox/cam_features_reference.pdf b/dox/cam_features_reference.pdf new file mode 120000 index 0000000000000000000000000000000000000000..0999cbe7c4cdd581d3f782c040fb3983feb69f5e --- /dev/null +++ b/dox/cam_features_reference.pdf @@ -0,0 +1 @@ +../a/hardware/alvium_features_reference.pdf \ No newline at end of file diff --git a/dox/cam_spec.pdf b/dox/cam_spec.pdf new file mode 120000 index 0000000000000000000000000000000000000000..6dae3bb726666f3f6d9a98fe04daab3cd5c1e2a6 --- /dev/null +++ b/dox/cam_spec.pdf @@ -0,0 +1 @@ +../a/hardware/alvium_spec.pdf \ No newline at end of file diff --git a/dox/cam_user_guide.pdf b/dox/cam_user_guide.pdf new file mode 120000 index 0000000000000000000000000000000000000000..30d05bb94dfcdd5e1fef42118c7f3be77303632a --- /dev/null +++ b/dox/cam_user_guide.pdf @@ -0,0 +1 @@ +../../a/hardware/alvium_g1_user_guide.pdf \ No newline at end of file diff --git a/dox/notes_B b/dox/notes_B index a48007ba699a2a7af5979097ce339e4e036e10fa..b52b7e2e6b8dda0b47877289b9ef2f9f2bc18d70 100644 --- a/dox/notes_B +++ b/dox/notes_B @@ -9,21 +9,18 @@ Does use opencv to convert raw cam images into JPEG pixel format ############################### -map cam -> MAC -> IP -> ID -> name - cam1 000A4708ED3F 172.18.227.210 04ytr allied-alviumg1-240c-04ytr.idiv.de - cam2 000A471C0C9D 172.18.227.211 04ytp allied-alviumg1-240c-04ytp.idiv.de - cam3 000A47372777 172.18.225.164 04ytn allied-alviumg1-240c-04ytn.idiv.de - cam4 000A471D2A66 172.18.227.213 04ytm allied-alviumg1-240c-04ytm.idiv.de - cam5 000A471D208D 172.18.225.129 04ytt allied-alviumg1-240c-04ytt.idiv.de - cam6 000A47139EA6 - -## connect VM +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 + camtron3 000A47372777 172.18.225.164 allied-alviumg1-240c-04ytn.idiv.de + camtron4 000A471D2A66 172.18.227.213 allied-alviumg1-240c-04ytm.idiv.de + camtron5 000A471D208D 172.18.225.129 allied-alviumg1-240c-04ytt.idiv.de + camtron6 000A47139EA6 172.18.227.215 allied-alviumg1-240c-04ytv.idiv.de + +## connect VM + setup ssh ssh kr69sugu@idivtibcam01.usr.idiv.de - see `cmds "login ssh without password"` for config - -#old vm - #tibcamtrack.idiv.de (172.18.225.181) #?? WS ??? #idivlabo2KARL.idiv.de (172.18.226.44) ? @@ -42,9 +39,9 @@ ssh kr69sugu@idivtibcam01.usr.idiv.de > see Vimba_installation_under_Linux.pdf > unpack Vimba SDK > tar -xzf ./Vimba.tgz + . cti/SetGenTLPath.sh > install TL -> sa VimbaX/doc/VimbaX_ReleaseNotes/GigETL.html - . SetGenTLPath.sh sudo VimbaGigETL_Install.sh #add api to path ## All APIs cover the following functions: diff --git a/dox/todo_ct b/dox/todo_ct index 78545c217930a2dd1a56bc592f0bf54ade43bbd7..9e33d300e14bbdc746d771cd52e30c8bac66717a 100644 --- a/dox/todo_ct +++ b/dox/todo_ct @@ -16,11 +16,34 @@ B) recorder - camera produces frames and timestamps ============================ > wait and detect cams > produce frames & timestamps - > build GUI - --> Q: might a console app be feasable?? ============================ + > new architecture: console app (later: gui app) + Core. + CONSOLE APP: + in extra thread to not block main thread! + listen to user keys + + CORE APP + functions / args: + > out_dir: + parse dir arg and create it if it doesnt exist >> finish it / with proper user in/ output >> or cancel if it doesnt exist + >> EASIER: + no userinput which could complicate GUI app later... + > list cameras: + > store/load cam settings + > calibrate + > record + > stop recording + > consider using app settings in a json-file / QSettings + > cam mappings (IP/MAC/ID) + > out_dir + + GUI APP: + > build GUI + > ... parse output for -LISTCAMERAS- and put into tablewidget + +=============================== > get pix, using - - laptop + - laptop - direct connection + - laptop - local network - virtual machine > get video via vimbax-SDK > cam calibration (Use Viewer? Or own SW?) @@ -107,6 +130,9 @@ BACK-BURNER 2D Done ####################### +> start implementing new arch + > console app. thread. signal-slot connections. +> backup old tibcamtrack VM > get video in VV > connect VM. ssh and rdp > sort ct a bit: