master2be1 / 400plus

0 stars 0 forks source link

Launch scripts from shutter button #218

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Please, describe the enhancement of feature requested below:

Could the scripts be launched using the shutter button? Would it be useful? 
Does it really makes sense?

Original issue reported on code.google.com by eduardo....@gmail.com on 5 Apr 2012 at 7:30

GoogleCodeExporter commented 9 years ago
IMO, we should leave the shutter button to it's default action.

Original comment by fired...@gmail.com on 6 Apr 2012 at 1:16

GoogleCodeExporter commented 9 years ago
Yes, of course; last think I want are random scripts firing then I try to take 
a photograph. We would need first to agree how / when this feature should be 
active. Obviously, this needs more polishing.

Original comment by eduardo....@gmail.com on 6 Apr 2012 at 1:34

GoogleCodeExporter commented 9 years ago
As for now  we have separate button for launching scripts.
As it seems not all scripts would be appropriate to be launched with the 
shutter button, which script you see interesting to be assigned to the shutter ?

Original comment by fired...@gmail.com on 6 Apr 2012 at 1:38

GoogleCodeExporter commented 9 years ago
For my use, the Extended AEB is the real force of 400+, but somewhat useless as 
the only way to use it is with the awkward set-button.
Avoid random script-firing by use in combination with the Av-button:
1 Av button down (assign shutter to script)
2 Shoot
This way there is no need to discuss what scripts to assign: User is in charge.
Alternatively, Sergeis code, assigning the shutter in AV and TV mode works well 
too.

Original comment by TEEM...@gmail.com on 8 Jul 2012 at 7:28

GoogleCodeExporter commented 9 years ago
This button is out of our reach, it is handled in the MPU.

Original comment by fired...@gmail.com on 7 Feb 2013 at 4:01

GoogleCodeExporter commented 9 years ago
What do you mean "out if our reach" ?
I think you mean "out of our mind" :-)
Sergei did it and it works perfect:
http://chdk.setepontos.com/index.php?topic=3290.msg83755#msg83755

Original comment by TEEM...@gmail.com on 7 Feb 2013 at 5:36

GoogleCodeExporter commented 9 years ago
Serguei's code launches a script after the camera has taken a photograph, not 
when the user presses the shutter. Looks similar, but it isn't the same. For 
example, the first photograph is always taken by the camera, with no 
intervention from any script.

Original comment by eduardo....@gmail.com on 7 Feb 2013 at 6:03

GoogleCodeExporter commented 9 years ago
Ahaa, thanks for clarifying. So actually, the shutter triggers a script to 
finish the sequence.

Original comment by TEEM...@gmail.com on 7 Feb 2013 at 7:38

GoogleCodeExporter commented 9 years ago
By "out of our reach" I mean that it is not possible to catch the button 
pressing. It is not happening in our processor. Think of this like someone 
wrote you a Private message in some social network. Then you receive an email 
informing you that you have a message waiting for you.
So in this example, you are informed about some event (the message), but the 
action (button press) is already in the past, and the consequence is already 
there (the message is stored on the server).
So the flow is like this:
1. action - writing a message / button press 
2. consequence - message stored / picture taken
3. event - you receive mail / our code receives the event

I'm not a native English speaker, so I only hope that I explained this good 
enough.

Basically this means that we cannot execute any code on shutter press.
I have not seen Sergei's code, but Edu explained how it works. Unfortunately it 
is not the way this issue were addressing.

Original comment by fired...@gmail.com on 7 Feb 2013 at 8:17

GoogleCodeExporter commented 9 years ago
Though, it could be possible in other means, like Sergei's.
This is just an idea (not verified): If all the buttons are memory mapped (like 
the TRASH which we use to skip the hack loading on startup), it could be 
possible to detect the actual button press, but we would not be able to block 
it's actual meaning - taking a photo. This basically means that it will behave 
the same like in Sergei's variant.

note: on some cameras ML uses the half-press of the shutter to skip the hack 
loading.

Original comment by fired...@gmail.com on 7 Feb 2013 at 8:21

GoogleCodeExporter commented 9 years ago
Actually, I understand programmers language better than social networking :)
I guess you catch an event after taking a picture. Then launch the script.

Is it because the mapping of the shutter is not known or simply because is is 
not possible to use it in same way as the other buttons (sorry for going off 
topic, I am just curious)?

So that mean that using the shutter, will always take the picture as the camera 
is configured and can only be used for some scripts (like AEB).

Original comment by TEEM...@gmail.com on 7 Feb 2013 at 9:28

GoogleCodeExporter commented 9 years ago
heh, then sorry for the social BS explanations...
perhaps i should have spent these comments explaining how the buttons are 
handled in first place.

Basically our code runs on the ARM CPU, where the Original FirmWare [OFW] runs.
There is an OS (VxWorks) where the canon application runs, there are multiple 
threads/processes of it - called Tasks.
We are just starting few separate Tasks to handle our stuff...

There is another MicroProcessor [MPU] - Tx109a, where all the buttons and other 
stuff like lens and flash, mirror, sensor are connected.
This MPU scans the button matrix then sends this information to the CPU (and 
thus the OFW) pulling an IRQ line.
Unfortunately not all buttons are sent to CPU straight forward (like the MENU, 
SET, TRASH, etc...). Some of them (like half/full shutter, DOF, FLASH, etc) are 
not sent directly, they are handled by this MPU, then only a notification is 
sent to CPU (and not for all of them).

Basically this means that the most low-level job is done in the MPU.
Your assumption about the shutter button is correct. It will always take a 
photo.
(At least with the knowledge we have so far).

BTW, what I just wrote is half proved, half guessed by the camera behavior and 
scattered knowledge from here and there.

Original comment by fired...@gmail.com on 7 Feb 2013 at 10:00