This commit is contained in:
eddyem 2016-03-21 19:59:04 +03:00
parent 09bfdc51c2
commit 326e4d84eb
13 changed files with 14638 additions and 27 deletions

1
00-logs/Readme Normal file
View File

@ -0,0 +1 @@
http://eddy-em.livejournal.com/99494.html

View File

@ -1,3 +1,4 @@
#!/bin/bash #!/bin/bash
# convert saleae logs into data files
./proc_exp canon.txt > $1.dat ./proc_exp canon.txt > $1.dat
cp canon.txt $1.txt cp canon.txt $1.txt

9
00-logs/find_cmd Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
# find in which file of all *dat exists command $1
for f in *.dat; do
N=$(awk '{print $2}' $f | grep "$1" | wc -l)
if [ "$N" -ne 0 ]; then
printf "%-22s%d\n" $f $N
fi
done

4
00-logs/find_cmd_with_answ Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
# find given command and print it with $2 lines of answer
grep -A$2 " $1 " *.dat

9
00-logs/get_all_cmds Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
# get commands list in all files (no args) or in given filelist
[ "$*" = "" ] && LIST="*.dat" || LIST="$*"
function upper(){ echo $1 | tr [:lower:] [:upper:]; }
function hex2dec(){ echo "obase=10;ibase=16; $(upper $1)" | bc -l; }
./proc_historgram ${LIST}| awk '{print $2}' | sort -u| while read x; do echo "$x : $(hex2dec $x)"; done

View File

@ -1,2 +1,4 @@
#!/bin/bash #!/bin/bash
# make histogram of commands/answers
cat $* | awk '{print $2 " " $3}' | sort | uniq -c | sort -n cat $* | awk '{print $2 " " $3}' | sort | uniq -c | sort -n

View File

@ -1,52 +1,95 @@
() - кол-во аргументов () - кол-во байт ответа
i - при инициализации i - при инициализации (шапка каждого пакета запросов после долгой паузы)
[https://pickandplace.wordpress.com/2011/10/05/canon-ef-s-protocol-and-electronic-follow-focus/]
{http://www.rwpbb.ru/test/canonautosonyl.html}
0x01 i(6) 00000001
0x01 i(6) - встречается только в шапке запроса (при инициализации линии), ответ - 0xc8,0,0xc8, нули [lens ID, min/max zoom, proto, brand]
0x07 i(эхо) 00000101
0x05 (эхо) - только при автофокусе, за ним - 0x0f - [minAF]
0x0a i(1-2) 00000110
0x06 (эхо) - только при автофокусе, за ним - 0x0f - [maxAF]
0x0c i(эхо) 00000111
0x07 (эхо) - за ней разные команды {включить напряжение}
0x0e i(эхо) 00001000
-> 0x08 (эхо) - встречается лишь 1 раз в shot_mf20m, за ним - пауза перед получением эха {отключение двигателей}
0x0f i(эхо) 00001010
0x0a i(1) - [busy poll] в инициализационном пакете встречается 3 раза, далее - неоднократно в пакетах (за ним идет 0,b0); ответ - 0xaa
0x2x (1) 00001100
При автофокусе в начальной посылке вместо 0x2c проходит 0x2d с тем же ответом 0x50 0x0c i(эхо) - за командой перед эхом - пауза; эта команда завершает инициализационную шапку везде
При нажатии "быстро в бесконечность" - 2f
Периодические опросы различны в режимах MF и AF, в AF больше данных. 00001110
0x0e i(эхо) - за ней обычно идет 0x0f; редкая команда (при включении, автофокусе, экспозиции)
0x50 (1) 00001111
0x0f i(эхо) - за ней обычно следует что-нибудь из f0,0a,c0,90; -//-
0x80 (1) 00001011
0x13 (2) - установка диафрагмы. имеет аргумент, используется при экспозиции; арг: вернуть: 0x80; F/2.5: 0x07; F/4.0: 0x12; F/8.0: 0x22; F/16.0: 0x32; за аргументом обычно идет 0x90; ответ: 0x13,0x13 [{для некоторых объективов до нее нужно еще вызвать 0x07}]
0x90 (3) 01010000
Состояние кнопок объектива? 0x50 (2) - имеет аргумент: 0x2c..0x2f; ответ 0x50,0x50; 0x2c встречается при нажатии кнопки "set focus" и иногра при автофокусировке; 0x2d - при автофокусе и экспозиции на Finfty; 0x2e - автофокус и экспозиция на F2.5m; в остальных случаях - 0x2f (вкл-выкл, быстро в infty, движение F+/F-, экспозиция F>=5m)
0x99 10000000
0x80 i(2) - начинает стартовую инициализационную последовательность 0x80,0x0a,0x99[0x97] с ответом 0x81,0x87,0x00 (третий байт зависит от ответа на 2 первых) - модель?
0xa0 (1 или 2?) 10010000
-> 0x90 (3) - (значимы только первые 2 байта ответа) Состояние кнопок объектива? ans 0x00,0x10 - AF, 0x00,0x90 - MF, 0x20,0x80/0x84 - крутится chFoc
0xb0 (3 или 4) 10100000
0xa0 (?) - входит в состав порции данных при периодическом опросе (после инициализации) вида (вх) 0xa0,0x00,0xe4,0x00; ответ: 0x00,0xc8,0x9c,0x6a; за этой командой следует 0xb2 уже с разными ответами [current zoom]
0xb2 (4) - меняется при изменении фокуса в автофокусе, не меняется при ручной 10110000
-> 0xb0 (3) - идет после 0xf0 или 0x0a, ответ: 0x16, 0x16, 0x50; за ней бывают либо 0,0,a0, либо 0,0,c0, либо 7f,ff,0a -> ответ не меняется [min/max aperture]
0xc0 (3) - положение лимба 10110010
-> 0xb2 (4) - (значимы только 2 средних байта ответа), ответ: 0x5a,x,y,0x00
0xe0 (2) 11000000
-> 0xc0 (3) - (значимы только первые два байта ответа) положение лимба (в режиме "ручной фокус" возвращает нули в любом случае)
0xe4 (2) - ans 9c,6a 11100000
-> 0xe0 (2) - (меняется лишь второй байт ответа), ответ: 0xc2,x; за ней обычно следует 0xea
0xe8 (7) - меняется при изменении фокуса в автофокусе 11100100
0xe4 (2) - ans 9c,6a, за ней идет обычно 0xb2
0xea (6) - меняется при изменении фокуса в автофокусе 11101000
-> 0xe8 (7) - (значимы лишь первые 2 байта) меняется при изменении фокуса в автофокусе, за ней обычно следуют 0xf8, 0xfc; ответы при разных положениях MF: inf,20m,10m - 0x22,0x16; 5m - 0x21,0x66; 2.5m - 0x20,0xed;
0xf0 (1) - меняется при изменении фокуса в автофокусе 11101010
-> 0xea (6) - (значимы лишь первые 2 байта, остальные - нули) меняется при изменении фокуса в автофокусе, встречается и в экспозиции при ручном фокусе - диафрагма?
0xf8, 0xfc, 0xfa, 0xfe (1) - меняется при изменении фокуса в автофокусе 11110000
0xf0 (1) - зависит от фокуса (0x11 - infty,20m,10m, 0x0d - 5m, 0x12 - 2.5m ?), за ней всегда следует 0xb0
11111000
-> 0xf8 - начало последовательности 0xf8,0xfc,0xfa,0xfe, следующей после команды 0xe8 - при фокусировке и экспозиции, ответы меняются: 2.5m - bd,cb,be,cd; 5m - ba,c6,bd,ca; 10m,20m,inf - b3,be,ba,c5;
В состоянии poweroff нет команд 0x0e, 0x0f, остальные команды как в poweron (автофокус).
Есть при экспозиции, нет при нажатии "set focus": 0x08, 0x0e, 0x13, 0x25, 0x2d, 0x2e, 0x2f, 0x7f, 0xff
Есть только при нажатии "set focus": 0x2c
Нет в poweron: 0x05, 0x06, 0x08, 0x13, 0x25, 0x2c, 0x2d, 0x2e, 0x7f, 0xe0, 0xe8, 0xea, 0xf0, 0xf8, 0xfa, 0xfc, 0xfe, 0xff
Нет при включении в ручном фокусе: 0x07, 0x0c, 0x0e, 0x0f, 0xc0 (информация о параметрах объектива?)
Итого. Подозрительные на команды с действиями: 0x05, 0x06, 0x08, 0x13, 0x25, 0x2c, 0x2d, 0x2e, 0x7f, 0xe0, 0xe8, 0xea, 0xf0, 0xf8, 0xfa, 0xfc, 0xfe, 0xff
Нет при автофокусе, есть при экспозиции: 0x08, 0x13, 0x25, 0x7f, 0xff
Нет ТОЛЬКО при автофокусе: 0x2f
Есть только при автофокусе: 0x05
Есть только при экспозиции: 0x08, 0x13, 0x25, 0x7f, 0xff - все встречаются единожды
Команда 0x08 встретилась лишь при экспозиции на F20m

3881
00-logs/shot_infty_F1.8.dat Normal file

File diff suppressed because it is too large Load Diff

1700
00-logs/shot_infty_F16.0.dat Normal file

File diff suppressed because it is too large Load Diff

3038
00-logs/shot_infty_F2.5.dat Normal file

File diff suppressed because it is too large Load Diff

1485
00-logs/shot_infty_F4.0.dat Normal file

File diff suppressed because it is too large Load Diff

1823
00-logs/shot_infty_F8.0.dat Normal file

File diff suppressed because it is too large Load Diff

2615
00-logs/sw_AFMF.dat Normal file

File diff suppressed because it is too large Load Diff