summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2018-08-30 15:55:03 +0200
committerSuren A. Chilingaryan <csa@suren.me>2018-08-30 15:55:03 +0200
commit8dd39dc3a74012174a4869c969cc90ba9cf6ca4e (patch)
tree69f537a8235ee16282134fc04c7acda28b208774
parent010b46493f7393f2d67276b292e355e2b992f43f (diff)
downloadipecamera-8dd39dc3a74012174a4869c969cc90ba9cf6ca4e.tar.gz
ipecamera-8dd39dc3a74012174a4869c969cc90ba9cf6ca4e.tar.bz2
ipecamera-8dd39dc3a74012174a4869c969cc90ba9cf6ca4e.tar.xz
ipecamera-8dd39dc3a74012174a4869c969cc90ba9cf6ca4e.zip
Add a bit info about Desy camera and a pair of debugging scripts
-rw-r--r--docs/desy20.txt23
-rwxr-xr-xscripts/extract.sh12
-rwxr-xr-xscripts/list.sh10
3 files changed, 45 insertions, 0 deletions
diff --git a/docs/desy20.txt b/docs/desy20.txt
new file mode 100644
index 0000000..2b4dafa
--- /dev/null
+++ b/docs/desy20.txt
@@ -0,0 +1,23 @@
+Camera: 3840x5120
+======
+ - 5120 = 16 channels of 320 pixels each.
+ * In fact two lines returned simultaneously (in each payload). So, there is 8 channels per line and 640 payloads are transferred to complete 2 lines.
+ * Actually, 641. There is always 1 extra payload which is just skipped in libufodecode (starting with C0)
+ * Actually, 1 (last) payload is missing for the first two rows. So, total number of payloads is (3840/2) * (640 + 1) - 32
+
+
+Triggering
+==========
+ There is 2 bits of control register responsible for external triggering
+ bit 16 (from 1): enables external triggering (should be 1)
+ bit 15 (from 1): sets edge type of triggering (should be 1)
+
+ - Start external triggering
+ pci -w control 0x8000C201
+ - Stop external triggering
+ pci -w control 0x80008201
+
+
+Repeating line bug
+==================
+ - Happening with manual triggering, but do not happen in external trigger mode
diff --git a/scripts/extract.sh b/scripts/extract.sh
new file mode 100755
index 0000000..3e5be57
--- /dev/null
+++ b/scripts/extract.sh
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+[ -n "$1" ] || exit
+frame=$1
+
+list=$(./list.sh $1 | sort -n -k 3)
+echo -n > "frame$frame.raw"
+IFS=$'\n'
+for name in $list; do
+# echo "$name"
+ cat "$name" >> "frame$frame.raw"
+done
diff --git a/scripts/list.sh b/scripts/list.sh
new file mode 100755
index 0000000..eb4ebbe
--- /dev/null
+++ b/scripts/list.sh
@@ -0,0 +1,10 @@
+[ -n "$1" ] || exit
+frame=$1
+
+for name in frame*$frame/*; do
+ [[ $name =~ invalid$ ]] && continue;
+ [ -f "$name.invalid" ] && continue;
+ [ -f "$name.partial" ] && continue;
+
+ echo "$name"
+done \ No newline at end of file