camera trigger : memset

This commit is contained in:
Mohammed Kabir
2015-06-14 17:41:54 +05:30
parent be89a7262e
commit 2dde99f0fc
@@ -161,6 +161,9 @@ CameraTrigger::CameraTrigger() :
memset(&_command, 0, sizeof(_command)); memset(&_command, 0, sizeof(_command));
memset(&_sensor, 0, sizeof(_sensor)); memset(&_sensor, 0, sizeof(_sensor));
memset(&_pollcall, 0, sizeof(_pollcall));
memset(&_firecall, 0, sizeof(_firecall));
/* Parameters */ /* Parameters */
polarity = param_find("TRIG_POLARITY"); polarity = param_find("TRIG_POLARITY");
activation_time = param_find("TRIG_ACT_TIME"); activation_time = param_find("TRIG_ACT_TIME");
@@ -213,15 +216,15 @@ CameraTrigger::start()
stop(); stop();
} }
poll(this); hrt_call_every(&_pollcall, 0, 1000, (hrt_callout)&CameraTrigger::poll, this);
} }
void void
CameraTrigger::stop() CameraTrigger::stop()
{ {
hrt_cancel(&_pollcall);
hrt_cancel(&_firecall); hrt_cancel(&_firecall);
hrt_cancel(&_pollcall);
delete camera_trigger::g_camera_trigger; delete camera_trigger::g_camera_trigger;
} }
@@ -266,17 +269,15 @@ CameraTrigger::poll(void *arg)
} }
if(!trig->_trigger_enabled) { if(!trig->_trigger_enabled) {
hrt_call_after(&trig->_pollcall, 1000, (hrt_callout)&CameraTrigger::poll, trig);
return; return;
} }
if (hrt_elapsed_time(&trig->_trigger_timestamp) > (trig->_transfer_time + trig->_integration_time)*1000 ) { if (hrt_elapsed_time(&trig->_trigger_timestamp) >= (trig->_transfer_time + trig->_integration_time)*1000 ) {
engage(trig); engage(trig);
hrt_call_after(&trig->_firecall, trig->_activation_time*1000, (hrt_callout)&CameraTrigger::disengage, trig);
trig->_trigger_timestamp = hrt_absolute_time(); trig->_trigger_timestamp = hrt_absolute_time();
hrt_call_after(&trig->_firecall, trig->_activation_time*1000, (hrt_callout)&CameraTrigger::disengage, trig);
orb_copy(ORB_ID(sensor_combined), trig->_sensor_sub, &trig->_sensor); orb_copy(ORB_ID(sensor_combined), trig->_sensor_sub, &trig->_sensor);
@@ -289,7 +290,6 @@ CameraTrigger::poll(void *arg)
trig->_trigger_pub = orb_advertise(ORB_ID(camera_trigger), &trig->_trigger); trig->_trigger_pub = orb_advertise(ORB_ID(camera_trigger), &trig->_trigger);
} }
hrt_call_after(&trig->_pollcall, (trig->_transfer_time + trig->_integration_time)*1000 , (hrt_callout)&CameraTrigger::poll, trig);
} }
} }