11#include " BLECamera.h"
22#include " bluefruit.h"
33
4- BLECamera::BLECamera (void ) : BLEClientService(" 8000FF00-FF00-FFFF-FFFF-FFFFFFFFFFFF" ), _remoteCommand(0xFF01 ), _remoteNotify(0xFF02 )
4+ BLECamera::BLECamera (void )
5+ : BLEClientService(" 8000FF00-FF00-FFFF-FFFF-FFFFFFFFFFFF" ),
6+ _remoteCommand(0xFF01 ),
7+ _remoteNotify(0xFF02 ),
8+ _shutterStatus(0 ),
9+ _focusStatus(0 ),
10+ _recordingStatus(0 ),
11+ _last_message(0 ),
12+ _focusHeld(false )
513{
6- rs = rs-> access ();
14+ rs = RemoteStatus:: access ();
715}
816
917void camera_notify_cb (BLEClientCharacteristic *chr, uint8_t *data, uint16_t len)
@@ -116,8 +124,8 @@ bool BLECamera::disableNotify(void)
116124
117125bool BLECamera::pressTrigger (void )
118126{
119- // hack until I get this to work
120- uint32_t timeout = millis () + 3000 ;
127+ // Timeout for focus and shutter operations
128+ uint32_t startTime = millis ();
121129
122130 if (!_focusHeld)
123131 {
@@ -129,11 +137,12 @@ bool BLECamera::pressTrigger(void)
129137
130138 if (mode == AUTO_FOCUS)
131139 {
140+ // Wait for focus acquisition (with timeout)
132141 while (_focusStatus != 0x20 )
133142 {
134143 yield ();
135144
136- if (timeout < millis ())
145+ if (( millis () - startTime) >= 3000 )
137146 {
138147 break ;
139148 }
@@ -144,19 +153,20 @@ bool BLECamera::pressTrigger(void)
144153 // Release back to focus
145154 _remoteCommand.write16_resp (HOLD_FOCUS);
146155
147- // Reset focus status
156+ // Reset shutter status
148157 _shutterStatus = 0x00 ;
149158
150159 // Shutter
151160 _remoteCommand.write16_resp (TAKE_PICTURE);
152161
153162 if (mode == AUTO_FOCUS)
154163 {
164+ // Wait for shutter completion (with timeout)
155165 while (_shutterStatus != 0x20 )
156166 {
157167 yield ();
158168
159- if (timeout < millis ())
169+ if (( millis () - startTime) >= 3000 )
160170 {
161171 break ;
162172 }
@@ -176,6 +186,8 @@ bool BLECamera::releaseTrigger(void)
176186
177187 // Let go?
178188 _remoteCommand.write16_resp (SHUTTER_RELEASED);
189+
190+ return true ;
179191}
180192
181193
0 commit comments