Canon 1200D

Started by akkotyni, July 12, 2014, 02:48:26 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

matija

2017Sep19
Sorry, yes, you are right about old files. Enabling everything works with clean installation.
Stubs:
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x42908494
[Pass] dst = fio_malloc(size) => 0x4310c4a4
[Pass] memcmp(dst, src, 4097) => 0xfffffff1
[Pass] edmac_memcpy(dst, src, 4097) => 0x4310c4a4
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x4310c4a4
[Pass] memcmp(dst, src, size) => 0xffffffc6
[Pass] edmac_memcpy(dst, src, size) => 0x4310c4a4
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffffcb
[Pass] edmac_memcpy_start(dst, src, size) => 0x4310c4a4
       dt => 0x315f
[Pass] copied => 0x40275c
[Pass] copied => 0x40275c
[Pass] copied => 0x40275c
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x59
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xcb7f0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x4f0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xef
[Pass] tries[1] => 0xfc
[Pass] tries[2] => 0xf8
[Pass] tries[3] => 0x105
[Pass] failr[0] => 0xa2
[Pass] failw[0] => 0xd0
[Pass] failr[1] => 0x89
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xe0
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x1d
       times[1] / tries[1] => 0x1d
       times[2] / tries[2] => 0x20
       times[3] / tries[3] => 0x21
Cache tests finished.

[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[FAIL] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x409ade3c
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x42908494
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x9de0
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x2
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x9e06
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x6e0
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x16e
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0x128
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0x22c
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x6e2
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x2e8
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x2a0
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0x227
       t0 = *(uint32_t*)0xC0242014 => 0x3fc9
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x40d13
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x1
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x30
       Date/time: 2017/09/20 10:53:48
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x31
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
       m0 = MALLOC_FREE_MEMORY => 0x30138
[Pass] p = (void*)_malloc(50*1024) => 0xd4710
[Pass] CACHEABLE(p) => 0xd4710
       m1 = MALLOC_FREE_MEMORY => 0x23928
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x30138
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x10353c
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xbe1cd0
[Pass] CACHEABLE(p) => 0xbe1cd0
       m1 = GetFreeMemForAllocateMemory() => 0xc352c
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x10353c
[Pass] ABS((m0-m1) - 256*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x30138
       m02 = GetFreeMemForAllocateMemory() => 0x10353c
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40be1d10
[Pass] UNCACHEABLE(p) => 0x40be1d10
[Pass] CACHEABLE(p) => 0xbe1d10
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40be1d10
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x4a000074
[Pass] UNCACHEABLE(p) => 0x4a000074
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x30138
       m12 = GetFreeMemForAllocateMemory() => 0x10353c
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xc89e0
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8a08
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xc89e0
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1f68000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8a08
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1f68000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xc89e0
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8a08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x16f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42908480
[Pass] UNCACHEABLE(p) => 0x42908480
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8a68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1af4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100070
[Pass] UNCACHEABLE(p) => 0x42100070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8aa0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x26f8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413f8070
[Pass] UNCACHEABLE(p) => 0x413f8070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8ad8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xc89e0
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x6
[Pass] suite->size => 0x4700000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8a08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x16f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42908480
[Pass] UNCACHEABLE(p) => 0x42908480
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8a68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1af4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100070
[Pass] UNCACHEABLE(p) => 0x42100070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8aa0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3a5c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8ad8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4660000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413f8070
[Pass] UNCACHEABLE(p) => 0x413f8070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b10
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x46f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf68100
[Pass] UNCACHEABLE(p) => 0x4bf68100
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4700000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49f68100
[Pass] UNCACHEABLE(p) => 0x49f68100
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4700000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x16bc34
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x16bc00
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x16bbe0
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0x16d800c2
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x16da00a2
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0x16dc0334
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0x16de00be
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
=========================================================
Test complete, 11854 passed, 5 failed.



I

matija

LUA test fails with Canon EF 85mm 1:1,8 USM, it does not even try to AF. I watched what was going on. The other result was with a different lens (EF-S 10-18mm STM) which I don't have with me, will test it in the evening when I get home with all lenses I have (not that many). So I retested, turned AF off, but it asked me to remove the lens, which I did, put it back on immediately after the test was skipped.


===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2017-9-20 10:55:29
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "API_TEST.LUA"
camera = table:
  shutter = table:
    raw = 109
    apex = 6.625
    ms = 10
    value = 0.010131
  aperture = table:
    raw = 22
    apex = 1.75
    value = 1.8
    min = table:
      raw = 22
      apex = 1.75
      value = 1.8
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 0
    apex = 0
    value = 0
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 6000
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 1200D"
  model_short = "1200D"
  firmware = "1.0.1"
  temperature = 171
  state = 0
  burst = function: p
  shoot = function: p
  wait = function: p
  reboot = function: p
  bulb = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  clear = function: p
  show = function: p
  write = function: p
  hide = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  resume = function: p
  start = function: p
  pause = function: p
  wait = function: p
  stop = function: p
  info = function: p
lens = table:
  name = "EF85mm f/1.8 USM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 257
  autofocus = function: p
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  load = function: p
  pixel = function: p
  notify_box = function: p
  draw = function: p
  rect = function: p
  circle = function: p
  screenshot = function: p
  line = function: p
  off = function: p
  clear = function: p
  print = function: p
  on = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  get = function: p
  block = function: p
  open = function: p
  set = function: p
  new = function: p
  select = function: p
  close = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 12
  ms_clock = 12792
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/104CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 366
    folder_number = 104
    free_space = 18394816
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 366
    folder_number = 104
    free_space = 18394816
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    month = 9
    wday = 4
    isdst = false
    year = 2017
    min = 55
    day = 20
    hour = 10
    yday = 263
    sec = 30
  rename = function: p
  directory = function: p
  call = function: p
  remove = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:32: in function <ML/SCRIPTS/API_TEST.LUA:31>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/API_TEST.LUA:31: in function 'globals.print_table'
ML/SCRIPTS/API_TEST.LUA:77: in function 'globals.generic_tests'
ML/SCRIPTS/API_TEST.LUA:1155: in function 'globals.api_tests'
ML/SCRIPTS/API_TEST.LUA:1180: in main chunktask = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing menu API...
Menu tests completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
B:/DCIM/104CANON/IMG_0367.CR2: 23810416
B:/DCIM/104CANON/IMG_0367.JPG: 2710390
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
B:/DCIM/104CANON/ABC_0368.CR2: 23814043
B:/DCIM/104CANON/ABC_0368.JPG: 2724669
B:/DCIM/104CANON/ABC_0369.CR2: 23808578
B:/DCIM/104CANON/ABC_0369.JPG: 2721762
Bracketed pictures...
B:/DCIM/104CANON/IMG_0370.CR2: 25670783
B:/DCIM/104CANON/IMG_0370.JPG: 5388578
B:/DCIM/104CANON/IMG_0371.CR2: 23800626
B:/DCIM/104CANON/IMG_0371.JPG: 2702120
B:/DCIM/104CANON/IMG_0372.CR2: 17434352
B:/DCIM/104CANON/IMG_0372.JPG: 375754
Bulb picture...
Elapsed time: 11827
B:/DCIM/104CANON/IMG_0373.CR2: 14255761
B:/DCIM/104CANON/IMG_0373.JPG: 365013
Picture taking tests completed.

Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.

Testing half-shutter...
Half-shutter test OK.

Testing module 'lv'...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.


Testing lens focus functionality...
Autofocus outside LiveView...

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2017-9-20 11:10:39
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "API_TEST.LUA"
camera = table:
  shutter = table:
    raw = 75
    apex = 2.374999
    ms = 193
    value = 0.192776
  aperture = table:
    raw = 22
    apex = 1.75
    value = 1.8
    min = table:
      raw = 22
      apex = 1.75
      value = 1.8
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 104
    apex = 9
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 6000
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 1200D"
  model_short = "1200D"
  firmware = "1.0.1"
  temperature = 152
  state = 0
  bulb = function: p
  shoot = function: p
  wait = function: p
  reboot = function: p
  burst = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  clear = function: p
  hide = function: p
  show = function: p
  write = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  stop = function: p
  info = function: p
  wait = function: p
  pause = function: p
  resume = function: p
  start = function: p
lens = table:
  name = "EF85mm f/1.8 USM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = false
  af_mode = 259
  focus = function: p
  autofocus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  screenshot = function: p
  on = function: p
  print = function: p
  notify_box = function: p
  pixel = function: p
  circle = function: p
  line = function: p
  rect = function: p
  clear = function: p
  draw = function: p
  load = function: p
  off = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  new = function: p
  select = function: p
  set = function: p
  block = function: p
  open = function: p
  close = function: p
  get = function: p
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 17
  ms_clock = 17208
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/104CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 373
    folder_number = 104
    free_space = 18228896
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 373
    folder_number = 104
    free_space = 18228896
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    month = 9
    min = 10
    day = 20
    isdst = false
    year = 2017
    yday = 263
    hour = 11
    wday = 4
    sec = 39
  remove = function: p
  rename = function: p
  directory = function: p
  call = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:32: in function <ML/SCRIPTS/API_TEST.LUA:31>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/API_TEST.LUA:31: in function 'globals.print_table'
ML/SCRIPTS/API_TEST.LUA:77: in function 'globals.generic_tests'
ML/SCRIPTS/API_TEST.LUA:1155: in function 'globals.api_tests'
ML/SCRIPTS/API_TEST.LUA:1180: in main chunktask = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing menu API...
Menu tests completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
B:/DCIM/104CANON/IMG_0374.CR2: 23241287
B:/DCIM/104CANON/IMG_0374.JPG: 1337113
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
B:/DCIM/104CANON/ABC_0375.CR2: 22612555
B:/DCIM/104CANON/ABC_0375.JPG: 716469
B:/DCIM/104CANON/ABC_0376.CR2: 22038983
B:/DCIM/104CANON/ABC_0376.JPG: 487110
Bracketed pictures...
B:/DCIM/104CANON/IMG_0377.CR2: 26115064
B:/DCIM/104CANON/IMG_0377.JPG: 6158309
B:/DCIM/104CANON/IMG_0378.CR2: 23082989
B:/DCIM/104CANON/IMG_0378.JPG: 768577
B:/DCIM/104CANON/IMG_0379.CR2: 14229183
B:/DCIM/104CANON/IMG_0379.JPG: 365013
Bulb picture...
Elapsed time: 11616
B:/DCIM/104CANON/IMG_0380.CR2: 14249369
B:/DCIM/104CANON/IMG_0380.JPG: 365013
Picture taking tests completed.

Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.

Testing half-shutter...
Half-shutter test OK.

Testing module 'lv'...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.


Testing lens focus functionality...
Please enable autofocus.
(or, remove the lens from the camera to skip this test)
Focus test skipped.

Testing exposure settings...
Camera    : Canon EOS 1200D (1200D) 1.0.1
Lens      :
Shoot mode: 3
Shutter   : ,5 (raw 75, 0.192776s, 193ms, apex 2.374999)
Aperture  : 0.0 (raw 0, f/0, apex 0)
Av range  : 0.0..0.0 (raw 0..0, f/0..f/0, apex 0..0)
ISO       : 1600 (raw 104, 1600, apex 9)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.


Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!



a1ex

The failed stub tests are related to autofocus outside LiveView. By pattern matching with other DIGIC 4 models, I'm unable to see what might be wrong with it.

However, you have reported Trap Focus working outside LiveView - these two features both depend on FOCUS_CONFIRMATION (from consts.h) to work correctly.

Best guess: AF was probably set on back button, and ML was unable to reconfigure it on half-shutter. But then, why did the test work in LiveView?!

matija

Ok, I reset custom settings (this includes back button focusing) and ML config, restarted, turned all ML modules on, restarted, went to ML menu and run stubs. Dial was on "M" and it was not in LV when tests started. I did switch to Movie mode when asked to do so.

Complete success. (I can paste the stubs if you really want them.)

Just to check the theory, I moved AF to the back button (It is marked with "zoom out" and "AF points" icons, there is no "real" back focus button.) ONE FAIL. (Included below.) Rebooted and reran the test. FIVE FAILS, nothing was changed. I suspected the AF capabilities, so I played a bit and noticed it was on AF Servo, so I put it to AF Single. (still in back button focusing). Re-ran stubs. Passed. I would call it as close to perfect as possible and move on.

Ran LUA test, passed as well, will be pasting it below.

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x426d0464
[Pass] dst = fio_malloc(size) => 0x42ed4474
[Pass] memcmp(dst, src, 4097) => 0xffffff56
[Pass] edmac_memcpy(dst, src, 4097) => 0x42ed4474
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42ed4474
[Pass] memcmp(dst, src, size) => 0xffffff84
[Pass] edmac_memcpy(dst, src, size) => 0x42ed4474
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x95
[Pass] edmac_memcpy_start(dst, src, size) => 0x42ed4474
       dt => 0x312d
[Pass] copied => 0x40286c
[Pass] copied => 0x40286c
[Pass] copied => 0x40286c
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xa4
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xcb7f0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x4c0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0x109
[Pass] tries[1] => 0xe5
[Pass] tries[2] => 0x103
[Pass] tries[3] => 0xf7
[Pass] failr[0] => 0xb1
[Pass] failw[0] => 0xdf
[Pass] failr[1] => 0x77
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xdd
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x1d
       times[1] / tries[1] => 0x1d
       times[2] / tries[2] => 0x20
       times[3] / tries[3] => 0x20
Cache tests finished.

[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x1
[Pass] lv_focus_status => 0x3
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] wait_focus_status(1000, 3) => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x2
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x2
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x2
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x2
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[FAIL] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x2
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x1
[Pass] get_focus_confirmation() => 0x0
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] lv_focus_status => 0x1
[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x409aec00
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x426d0464
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x99d2
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0xa
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x99f8
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x698
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x15e
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0x113
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xc4
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x69a
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x181
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x139
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0x9f
       t0 = *(uint32_t*)0xC0242014 => 0x624b3
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x9d4b4
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x9
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x22
       Date/time: 2017/09/20 16:27:34
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x23
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
       m0 = MALLOC_FREE_MEMORY => 0x301d0
[Pass] p = (void*)_malloc(50*1024) => 0xd4710
[Pass] CACHEABLE(p) => 0xd4710
       m1 = MALLOC_FREE_MEMORY => 0x239c0
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x301d0
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x102e3c
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xbe1ccc
[Pass] CACHEABLE(p) => 0xbe1ccc
       m1 = GetFreeMemForAllocateMemory() => 0xc2e2c
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x102e3c
[Pass] ABS((m0-m1) - 256*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x301d0
       m02 = GetFreeMemForAllocateMemory() => 0x102e3c
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40be1d0c
[Pass] UNCACHEABLE(p) => 0x40be1d0c
[Pass] CACHEABLE(p) => 0xbe1d0c
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40be1d0c
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x426d0454
[Pass] UNCACHEABLE(p) => 0x426d0454
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x301d0
       m12 = GetFreeMemForAllocateMemory() => 0x102e3c
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xc7a30
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8af8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x426d0450
[Pass] UNCACHEABLE(p) => 0x426d0450
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xc7a30
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1d3c000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8af8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1d3c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xc7a30
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x5
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8af8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x192c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x426d0450
[Pass] UNCACHEABLE(p) => 0x426d0450
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b30
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1d2c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100070
[Pass] UNCACHEABLE(p) => 0x42100070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3c94000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8ba0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3d28000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf68100
[Pass] UNCACHEABLE(p) => 0x4bf68100
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8bd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413f8070
[Pass] UNCACHEABLE(p) => 0x413f8070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xc7a30
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x5
[Pass] suite->size => 0x4700000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xc8af8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x192c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x426d0450
[Pass] UNCACHEABLE(p) => 0x426d0450
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b30
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1d2c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42100070
[Pass] UNCACHEABLE(p) => 0x42100070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8b68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3c94000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000070
[Pass] UNCACHEABLE(p) => 0x4a000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8ba0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x3d28000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf68100
[Pass] UNCACHEABLE(p) => 0x4bf68100
       chunk = GetNextMemoryChunk(suite, chunk) => 0xc8bd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4700000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413f8070
[Pass] UNCACHEABLE(p) => 0x413f8070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4700000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x16bc34
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x16bc00
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x16bbe0
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0x168000c0
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x168200a2
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0x1684032a
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0x16860086
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
=========================================================
Test complete, 11858 passed, 1 failed.
.



matija

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2017-9-20 17:00:24
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "API_TEST.LUA"
camera = table:
  shutter = table:
    raw = 112
    apex = 7.
    ms = 8
    value = 0.007812
  aperture = table:
    raw = 22
    apex = 1.75
    value = 1.8
    min = table:
      raw = 22
      apex = 1.75
      value = 1.8
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 104
    apex = 9
    value = 1600
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 6000
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 1200D"
  model_short = "1200D"
  firmware = "1.0.1"
  temperature = 158
  state = 0
  shoot = function: p
  bulb = function: p
  wait = function: p
  burst = function: p
  reboot = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  show = function: p
  hide = function: p
  clear = function: p
  write = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  info = function: p
  start = function: p
  resume = function: p
  wait = function: p
  pause = function: p
  stop = function: p
lens = table:
  name = "EF85mm f/1.8 USM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
  autofocus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  print = function: p
  load = function: p
  clear = function: p
  on = function: p
  rect = function: p
  pixel = function: p
  draw = function: p
  screenshot = function: p
  notify_box = function: p
  off = function: p
  circle = function: p
  line = function: p
key = table:
  last = 10
  wait = function: p
  press = function: p
menu = table:
  visible = false
  get = function: p
  close = function: p
  new = function: p
  select = function: p
  set = function: p
  open = function: p
  block = function: p
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 19
  ms_clock = 19299
  image_prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/105CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 426
    folder_number = 105
    free_space = 16899616
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 426
    folder_number = 105
    free_space = 16899616
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    month = 9
    day = 20
    wday = 4
    isdst = false
    year = 2017
    sec = 25
    min = 0
    hour = 17
    yday = 263
  remove = function: p
  call = function: p
  rename = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:32: in function <ML/SCRIPTS/API_TEST.LUA:31>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/API_TEST.LUA:31: in function 'globals.print_table'
ML/SCRIPTS/API_TEST.LUA:77: in function 'globals.generic_tests'
ML/SCRIPTS/API_TEST.LUA:1155: in function 'globals.api_tests'
ML/SCRIPTS/API_TEST.LUA:1180: in main chunktask = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing menu API...
Menu tests completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
B:/DCIM/105CANON/IMG_0427.CR2: 26470604
B:/DCIM/105CANON/IMG_0427.JPG: 4943669
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
B:/DCIM/105CANON/ABC_0428.CR2: 26489071
B:/DCIM/105CANON/ABC_0428.JPG: 4962688
B:/DCIM/105CANON/ABC_0429.CR2: 26473667
B:/DCIM/105CANON/ABC_0429.JPG: 4956692
Bracketed pictures...
B:/DCIM/105CANON/IMG_0430.CR2: 24545251
B:/DCIM/105CANON/IMG_0430.JPG: 5603438
B:/DCIM/105CANON/IMG_0431.CR2: 26469908
B:/DCIM/105CANON/IMG_0431.JPG: 4955454
B:/DCIM/105CANON/IMG_0432.CR2: 21649884
B:/DCIM/105CANON/IMG_0432.JPG: 848816
Bulb picture...
Elapsed time: 11598
B:/DCIM/105CANON/IMG_0433.CR2: 14242653
B:/DCIM/105CANON/IMG_0433.JPG: 365013
Picture taking tests completed.

Testing multitasking...
Only one task allowed to interrupt...
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Main task yielding.
Task C started.
Task C finished.
Main task back.
Multitasking tests completed.

Testing half-shutter...
Half-shutter test OK.

Testing module 'lv'...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.


Testing lens focus functionality...
Autofocus outside LiveView...
Focus distance: 2880
Autofocus in LiveView...
Focus distance: 11910
Focusing backward...
Focus distance: 655350
Focus motor position: 429
Focusing forward with step size 3, wait=true...
...................
Focus distance: 850
Focus motor position: -1267
Focusing backward with step size 3, wait=true...
................
Focus distance: 655350
Focus motor position: 417
Focus range: 19 steps forward, 16 steps backward.
Motor steps: 1696 forward, 1684 backward, 12 lost.
Focusing forward with step size 3, wait=false...
................................................
Focus distance: 900
Focus motor position: -1265
Focusing backward with step size 3, wait=false...
.............................................
Focus distance: 655350
Focus motor position: 415
Focus range: 48 steps forward, 45 steps backward.
Motor steps: 1682 forward, 1680 backward, 2 lost.
Focusing forward with step size 2, wait=true...
...
Focus distance: 850
Focus motor position: -1265
Focusing backward with step size 2, wait=true...
...
Focus distance: 655350
Focus motor position: 414
Focus range: 102 steps forward, 100 steps backward.
Motor steps: 1680 forward, 1679 backward, 1 lost.
Focusing forward with step size 2, wait=false...
...
Focus distance: 850
Focus motor position: -1265
Focusing backward with step size 2, wait=false...
...
Focus distance: 655350
Focus motor position: 414
Focus range: 186 steps forward, 192 steps backward.
Motor steps: 1679 forward, 1679 backward, 0 lost.
Focusing forward with step size 1, wait=true...
...
Focus distance: 850
Focus motor position: -1264
Focusing backward with step size 1, wait=true...
...
Focus distance: 655350
Focus motor position: 413
Focus range: 421 steps forward, 424 steps backward.
Motor steps: 1678 forward, 1677 backward, 1 lost.
Focusing forward with step size 1, wait=false...
...
Focus distance: 900
Focus motor position: -1264
Focusing backward with step size 1, wait=false...
...
Focus distance: 655350
Focus motor position: 414
Focus range: 641 steps forward, 641 steps backward.
Motor steps: 1677 forward, 1678 backward, 1 lost.

Focus test completed.

Testing exposure settings...
Camera    : Canon EOS 1200D (1200D) 1.0.1
Lens      : EF85mm f/1.8 USM
Shoot mode: 3
Shutter   : ,5 (raw 75, 0.192776s, 193ms, apex 2.374999)
Aperture  : 1.8 (raw 22, f/1.8, apex 1.75)
Av range  : 1.8..22 (raw 22..80, f/1.8..f/22.6, apex 1.75..9)
ISO       : 1600 (raw 104, 1600, apex 9)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.


Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!


I have briefly gone through many stuff, including video, all seems fine, except that overlay over overlay issue. It is not problematic, few clicks and canon overlay goes away.
Very useful as is, if you need more testing, let me know.

a1ex

Okay, that explains it - good to know. In other words, except for raw video, audio controls and some minor quirks, the port is in pretty good shape.

Are you able to compile ML?

matija

Yes. I don't know what criteria is to call it "done", but for me it's very stable and usable.
See PM for compiling.
Thank you.

ConnorBram

The current version is pretty great, fixed a lot of the previous problems but one thing that still bugs me is that you have to scroll the dial all the way from one to the other, as video mode is on the dial not a dedicated button. Leaving video mode and scrolling all the way to the other side to get to manual mode just to get into the magic lantern menu is quite tedious, especially when experimenting.
I understand why this is, because other cameras have a dedicated switch to video mode so you can keep manual settings between photo and video, but allowing the magic lantern menu in video mode would be great.
thanks again.

a1ex

@ConnorBram: please try the current build and report.

vanbov

Hi. I have recently discovered that there are ML on 1200D now, it is very awesome :o! Thanks to all who are working on this.
I've installed 1200D / Rebel T5 1.0.1 2017-10-01 and tried several features and it works, so cool!
If someone will need to test something, please let me know. About issue with accessing ML from video mode - I also can't get it by pressing AV button when I am in video mode (but looks like a1ex meant some another build which currently not available in nightly builds)
My dream is to try silent mode on it, so I tried to load "silent.mo", I tried to load it by extracting it from 700D 2017-09-29 nightly build archive, but when I tried to load it on 1200D I got:

so looks like this is not a correct way to go. I can try to build this module, and I am now reading previous messages from this thread so maybe it will answer to my question, but now it is just interesting why silent.mo is not bundled now, are there some stoppers?

a1ex

Yes - only the full-res version would work (not tested).

FYI, the port is blindly maintained (no developers have this camera).

vanbov

> FYI, the port is blindly maintained (no developers have this camera).

Yeah, I've got it, thanks.
I have just built FW from your latest commit named "1200D: attempt to fix ML menu in movie mode (not tested)" and I can approve that Av button now starts ML menu from movie mode, so it works for me.

vanbov

I compiled silent.mo and tried to test it at the current state.
My actions were performaed on latest commit https://bitbucket.org/hudson/magic-lantern/commits/643691f6ed71d60f06e57d3b014b51cd513f885a?at=1200D on 1200D branch:
I went to ~/magic-lantern/modules/silent, and performed make, it said
Will NOT load on:
    1200D (raw_lv_redirect_edmac, raw_lv_request, raw_lv_settings_still_valid, raw_lv_release)

Then I uncommented  #define CONFIG_RAW_LIVEVIEW in /platform/1200D.101/internals.h and rebuilt ML, rebuilt silent module and rebuilt ML again. Then re-uploaded firmware.

Results:

1. I can approve that Simple, DNG mode works: I enabled it and gone to live view, pressed shoot button once and it generated 1730 x 1154 DNG file and I was able to view it
2. Then I switched to Full-Res DNG, it said "Set picture quality to RAW", I switched to, pressed shoot button, it said "Raw error" and nothing happened after.
3. Then I switched to Full-Res MLV and loaded mlv_rec.mo. Again it said "Raw error"
Does anybody have any ideas in what direction should we dig to investigate why Full-Res mode may not work?

a1ex

Ah, got it, so mk11174 experimented with raw video and fine-tuned the 1200D-specific constants, but had it disabled in order to get the basic features in good shape. Enabled CONFIG_RAW_LIVEVIEW in the nightly builds, then.

"Raw error" appears when raw_update_params() returns failure - that means, something in the raw backend (raw.c). You could enable the debug messages there - RAW_DEBUG. I find this one odd, since I have the 1200D FRSP included in the QEMU test suite (look up FA_CaptureTestImage)

edit: trying to setup the same test on QEMU, with latest 1200D build, and I'm getting the same error (using the same input image as in the QEMU test suite), but in my case, it's from the trickery I'm using in QEMU to work around lack of LiveView emulation.

edit2: got it working! (had to use a gdb patch to fake the LiveView status, but otherwise I'm testing the latest 1200D build as unmodified binary)



Guess where this image comes from ;)

8)

vanbov

Hm, strange that it works in qemu for you and does not on camera. I enabled RAW_DEBUG in raw.c

#define RAW_DEBUG 1
// #undef RAW_DEBUG        /* define it to help with porting */


I used this commit as base: https://bitbucket.org/hudson/magic-lantern/commits/0d7addd66a4ed8534033764fde5f88a781920f02?at=1200D
Results, before click shoot in DNG, FullRes:



after click shoot in DNG, FullRes:



Mb these are useless, just will leave it here.

QuoteGuess where this image comes from
I have a feeling that I've already seen it somewhere ;)

a1ex

For some reason, it's returning to LiveView before displaying the image (and it shouldn't...)

What's your Image Review setting in Canon menu?

vanbov

it was "2 seconds". When I switch it to "off", it shows a black screen after each shoot press, and only reboot resets it. "Hold" option behaves in same way as "2 seconds"

a1ex

On the "image review off" code path from silent_pic_take_fullres, try turning on the display and adding some printf's to see how far it goes.

Also make sure "lv" is 0 before calling raw_update_params(); if it's not, try forcing it.

It it's a hard lock-up, try bmp_printf's, as these are displayed right away; regular printf's are printed by a background task, so it it really locks, the printf's would go unnoticed.

LED blinks and beeps are also useful for debugging.

vanbov

sorry for the confusion, after more tests I realized that FullRes mode works when image review is off! The black screen had confused me so I decided that it was some kind of hang up, but in fact, even with the black screen, it creates 5202x3464 images! When I added display_on(); to  "image review off" "if" branch I saw messages about successful saving, so I checked it on the card and they are there! So looks like all is ok, but I have not expected a black screen. Then I noticed that when I press "zoom minus" button it again turns on display even from a black screen. Thanks a lot for help and firmware!

a1ex

Okay, so the trouble is when switching to QuickReview mode?

If you comment out the prop_request_change call (the one with PROP_GUI_STATE) and replace it with:

        gui_state = GUISTATE_QR;


... then I'd expect it to save the DNG, but it won't trigger the overlays.

Can you also record a video to show what happens with the vanilla build?

vanbov

QuoteOkay, so the trouble
I would not call it trouble because as I mentioned before case when image review is off works so I think it is already a great result for 1200D port! :)
But of course, it will be nice to have the ability to preview after each shoot.
Here is video from vanilla build: https://drive.google.com/open?id=0B92mpHi4jIW4UmRIVi1Sa2lOcmM
After second case it created photo https://drive.google.com/open?id=0B92mpHi4jIW4WWt3Q1JYUmZiN2M . I am going to play more with this staff to better understand firmware and silent.mo

arshdsj

Hey i have 1300d , Can i install the same firmware ( i.e. available for 1200d ) on my camera , without bricking it.
Some one please help , i need Magic Lantern on my Canon 1300D.
As far as i know 1200D and 1300d are the same cameras with just wifi/nfc difference.


Thanks in Advance.

Walter Schulz

Nope, totally out of the question.

Mr_Propane

Rebel T5- Does magic lantern help fix the terrible autofocus of the official firmware? Also, I noticed the audio is silenced during video? Is that an option that can be turned back on so the audio can be recorded?

a1ex

Got a very easy coding task (trial and error, but the issue is likely hardware-specific, so it can only be solved with the camera in one's hands):

https://bitbucket.org/hudson/magic-lantern/issues/2821/green-display

It works fine in QEMU, so I'm unable to fix this error myself; please find some things to try on the issue tracker.

@Mr_Propane: all the audio options on this camera are in Canon menu.