CAMTRON PROCESSING PIPELINE
###########################
 A) setup / preparation
 B) recorder
 C) background-subtraction
 D) process scripts
 X) HPC
###########################
"tackle long-term complex projects from beginning to end"

B) recorder - camera produces frames and timestamps
###########################
	- 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
		- ‼️ 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

===============================
	- get pix, using VV and recorder
		- laptop - direct connection # DONE
		- laptop - local network
		- virtual machine
	- 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

	- where to store frames? estimate size.

A)
###########################
	- test vm, else buy ws!
	- ‼️ light
		- 2*LEDs: 1*day + 1*night
		- find ecolux hw (Boxes, DMX per unit, DMX splitter/controller)
	- ‼️ 🗣️ arenas
		- checkerboardpattern
		- floor: find big white paperrolle in BUG/Storage


C) background subtraction
###########################
	eval how much work to, update
		- opencv
		- bgs-algorithm

	ctb - calculates centroid points of all frames in a record
	- build
	- find test data (cp to 00 - ..)
	- process
	-----------
	- update bgs alg. opencv4 has its own bgs?


D) process scripts
###########################
 	ctd - calculated the mean speed in pixel / millisecond
	* can i reduce size of data (reduce length|fps|res)
	>- calc D) for test data set (get data from joerdis?)
	-- with all frames
	-- undersample, shorter length
	-- compare results. same?

	trajectory

	- figure out concrete steps. harmonize scripts? ..
		- trajr.
		- run calcVmeanForID.r on data
		- calc new values. max speed. angle. ...

X) HPC - High Performance Cluster
####################################
	- gamify - lvl up
	- try script to send over data
	- script that copies data once a day from VM to HPC
		- Secure-Shell-ID angepasst
		- cron
		or - II) vimba-software directly to HPC?


BACK-BURNER 2D
###############################
ctb
- GUI APP:
	- build GUI
	- ... parse output for -LISTCAMERAS- and put into tablewidget
- calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...)

- Documentation
	- sketch
		- chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio
		- lab: chambers+workstations+HPC

	- costs. update with what we actually buy!
	- sketch: technical: cam (QuantumEfficiency) + IRLED
	- sketch: setup plan for a chamber
	- copy last setup plan from thomas




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)
- HPC. store some data 2018/2019 + vids. delete rest. write HPC guy
- use copilot more efficiently -> read Tuts, configure -> see ai
- print and printlist()
- integrate versionstring in new arch
- mark current cam [*] <-- selected. others []
- write allied: submax MTU shouldnt be a huge performance hit!
- write mail HPC guy
- write joerdis
- list 1 cam and send to console via signal-slots
- version
- setup IDE (LSP plugins), QT, codecompletion
- get copilot
- automate + fix backup script
- get VM
- direct VV: got pictures, tested all 6 cams :)
- bup old camtrack
- start implementing new arch
	- console app. thread. signal-slot connections.