Problem with SCRIPT_WAIT_SAVE in the Ixus55 port - General Discussion and Assistance - CHDK Forum  

Problem with SCRIPT_WAIT_SAVE in the Ixus55 port

  • 1 Replies
  • 2634 Views
Problem with SCRIPT_WAIT_SAVE in the Ixus55 port
« on: 01 / March / 2008, 11:38:45 »
Advertisements
Hi all,
I have a strange problem during script execution in the Ixus55 port: Every time I use the "shoot" command, the command is executed but the script does not continue afterwards. What I have found out so far is the following:

- The "shoot" command executes kbd_sched_shoot (form core/kbd.c). Here several commands are executed incl. waits for flash receicling and so on.
- Aparently script execution hangs in KBD_STACK_PUSH(SCRIPT_WAIT_SAVE). When I comment that out everything works as expected.
- The SCRIPT_WAIT_SAVE is processed in process_script (also in kbd.c):

Code: [Select]
   case SCRIPT_WAIT_SAVE:{
            if (state_shooting_progress == SHOOTING_PROGRESS_DONE)
                kbd_int_stack_ptr-=1; // pop op.
            return;

- state_shooting_progress is updated in platform/generic/shooting.c:

Code: [Select]
int shooting_in_progress()
{
    int t = 0;
    _GetPropertyCase(PROPCASE_SHOOTING, &t, sizeof(&t));
    return t != 0;
}

- Since the Ixus55 is using the DIGIC II processer, PROPCASE_SHOOTING is set to 205

- When I observe this property-case during normal shooting it behaves ok, that means it is set to 1 during shooting process and back to 0 afterwards.

- During script execution, however, it seems that PROPCASE_SHOOTING is never set back to zero leading to an infinite loop in SCRIPT_WAIT_SAVE. I have tried to verify that by inserting some debug code into the case SCRIPT_WAIT_SAVE and it always prints 1 for the property case 205 inside the script execution.

What is going on here? Apparently the Ixus70 port had a similar problem although that might have been caused by calling the  wrong property case. I am absolutely running out of ideas...

Thx in advance
- 3DBruce

Re: Problem with SCRIPT_WAIT_SAVE in the Ixus55 port
« Reply #1 on: 21 / March / 2008, 11:13:40 »
Hi all,

what I did in the meantime:

- commented out call to capt_seq_hook to just use the standard capture sequence routines: Result is the same, so I don't think anything in capt_seq.c is causing this problem.
- rechecked some entries in stubs_min and stubs_entry*. If found two definitions that were not correct but even after fixing them the problem persists.

I even played around with the parameter script-shoot delay but since the camera hangs one step before that, I didn't expect this to fix the problem and it didn't.

Any new ideas where to look for?

Thanks
- 3DBruce

 

Related Topics