Update state to ALARM AFTER we have opened the event, so that we get the correct event Id. Fixes #2978 Fixes #2894

This commit is contained in:
Isaac Connor 2020-07-16 15:36:26 -04:00
parent c2a025300f
commit 3658c3b589
1 changed files with 1 additions and 6 deletions

View File

@ -1404,9 +1404,6 @@ bool Monitor::Analyse() {
score += trigger_data->trigger_score; score += trigger_data->trigger_score;
Debug(1, "Triggered on score += %d => %d", trigger_data->trigger_score, score); Debug(1, "Triggered on score += %d => %d", trigger_data->trigger_score, score);
if ( !event ) { if ( !event ) {
// How could it have a length already?
//if ( cause.length() )
//cause += ", ";
cause += trigger_data->trigger_cause; cause += trigger_data->trigger_cause;
} }
Event::StringSet noteSet; Event::StringSet noteSet;
@ -1514,7 +1511,6 @@ bool Monitor::Analyse() {
} // end if event } // end if event
if ( !event ) { if ( !event ) {
// Create event // Create event
event = new Event(this, *timestamp, "Continuous", noteSetMap, videoRecording); event = new Event(this, *timestamp, "Continuous", noteSetMap, videoRecording);
shared_data->last_event = event->Id(); shared_data->last_event = event->Id();
@ -1528,7 +1524,6 @@ bool Monitor::Analyse() {
if ( state == IDLE ) { if ( state == IDLE ) {
shared_data->state = state = TAPE; shared_data->state = state = TAPE;
} }
} // end if ! event } // end if ! event
} // end if function == RECORD || function == MOCORD) } // end if function == RECORD || function == MOCORD)
} // end if !signal_change && signal } // end if !signal_change && signal
@ -1552,7 +1547,6 @@ bool Monitor::Analyse() {
); );
} }
if ( (!pre_event_count) || (Event::PreAlarmCount() >= alarm_frame_count-1) ) { if ( (!pre_event_count) || (Event::PreAlarmCount() >= alarm_frame_count-1) ) {
shared_data->state = state = ALARM;
// lets construct alarm cause. It will contain cause + names of zones alarmed // lets construct alarm cause. It will contain cause + names of zones alarmed
std::string alarm_cause = ""; std::string alarm_cause = "";
for ( int i=0; i < n_zones; i++ ) { for ( int i=0; i < n_zones; i++ ) {
@ -1610,6 +1604,7 @@ bool Monitor::Analyse() {
event = new Event(this, *(image_buffer[pre_index].timestamp), cause, noteSetMap); event = new Event(this, *(image_buffer[pre_index].timestamp), cause, noteSetMap);
} // end if analysis_fps && pre_event_count } // end if analysis_fps && pre_event_count
shared_data->state = state = ALARM;
shared_data->last_event = event->Id(); shared_data->last_event = event->Id();
//set up video store data //set up video store data
snprintf(video_store_data->event_file, sizeof(video_store_data->event_file), "%s", event->getEventFile()); snprintf(video_store_data->event_file, sizeof(video_store_data->event_file), "%s", event->getEventFile());