From ad32466aa4c43197555187f24a0be2080b7a411a Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Mon, 31 Jan 2022 18:17:31 -0500 Subject: [PATCH] Remove function, replacing with capturing, analysing, recording. Adjust formatting of list function --- src/zmu.cpp | 74 ++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/zmu.cpp b/src/zmu.cpp index ba568a045..5ddb07bff 100644 --- a/src/zmu.cpp +++ b/src/zmu.cpp @@ -498,9 +498,9 @@ int main(int argc, char *argv[]) { printf("Monitor %u(%s)\n", monitor->Id(), monitor->Name()); } - if (monitor->GetFunction() == Monitor::NONE) { + if (monitor->Capturing() == Monitor::CAPTURING_NONE) { if (verbose) { - printf("Current state: None\n"); + printf("Current capturing state: None\n"); } else { printf("%d", Monitor::UNKNOWN); } @@ -603,35 +603,31 @@ int main(int argc, char *argv[]) { monitor->DumpZoneImage(zoneString); } if ( function & ZMU_ALARM ) { - if ( monitor->GetFunction() == Monitor::Function::MONITOR ) { - printf("A Monitor in monitor mode cannot handle alarms. Please use NoDect\n"); + Monitor::State state = monitor->GetState(); + + if (verbose) { + printf("Forcing alarm on current state: %s, event %" PRIu64 "\n", + state==Monitor::ALARM?"Alarm":(state==Monitor::ALERT?"Alert":"Idle"), + monitor->GetLastEventId() + ); + } + + // Ensure that we are not recording. So the forced alarm is distinct from what was recording before + monitor->ForceAlarmOff(); + monitor->ForceAlarmOn(config.forced_alarm_score, "Forced Web"); + + Microseconds wait_time = Seconds(10); + while ((monitor->GetState() != Monitor::ALARM) and !zm_terminate and wait_time > Seconds(0)) { + // Wait for monitor to notice. + Microseconds sleep = Microseconds(1); + std::this_thread::sleep_for(sleep); + wait_time -= sleep; + } + + if (monitor->GetState() != Monitor::ALARM and wait_time == Seconds(0)) { + Error("Monitor failed to respond to forced alarm."); } else { - Monitor::State state = monitor->GetState(); - - if ( verbose ) { - printf("Forcing alarm on current state: %s, event %" PRIu64 "\n", - state==Monitor::ALARM?"Alarm":(state==Monitor::ALERT?"Alert":"Idle"), - monitor->GetLastEventId() - ); - } - - // Ensure that we are not recording. So the forced alarm is distinct from what was recording before - monitor->ForceAlarmOff(); - monitor->ForceAlarmOn(config.forced_alarm_score, "Forced Web"); - - Microseconds wait_time = Seconds(10); - while ((monitor->GetState() != Monitor::ALARM) and !zm_terminate and wait_time > Seconds(0)) { - // Wait for monitor to notice. - Microseconds sleep = Microseconds(1); - std::this_thread::sleep_for(sleep); - wait_time -= sleep; - } - - if (monitor->GetState() != Monitor::ALARM and wait_time == Seconds(0)) { - Error("Monitor failed to respond to forced alarm."); - } else { - printf("Alarmed event id: %" PRIu64 "\n", monitor->GetLastEventId()); - } + printf("Alarmed event id: %" PRIu64 "\n", monitor->GetLastEventId()); } } // end if ZMU_ALARM @@ -756,9 +752,9 @@ int main(int argc, char *argv[]) { } if ( function & ZMU_LIST ) { - std::string sql = "SELECT `Id`, `Function`+0 FROM `Monitors`"; + std::string sql = "SELECT `Id`, `Capturing`+0, `Analysing`+0, `Recording`+0 FROM `Monitors`"; if (!verbose) { - sql += "WHERE `Function` != 'None'"; + sql += " WHERE `Capturing` != 'None'"; } sql += " ORDER BY Id ASC"; @@ -768,19 +764,23 @@ int main(int argc, char *argv[]) { } Debug(1, "Got %" PRIu64 " monitors", static_cast(mysql_num_rows(result))); - printf("%4s%5s%6s%9s%14s%6s%6s%8s%8s\n", "Id", "Func", "State", "TrgState", "LastImgTim", "RdIdx", "WrIdx", "LastEvt", "FrmRate"); + printf("%4s %9s %9s %9s %5s %8s %13s %5s %5s %9s %9s\n", + "Id", "Capturing", "Analysing", "Recording", "State", "TrgState", + "LastImageTime", "RdIdx", "WrIdx", "LastEvent", "FrameRate"); for ( int i = 0; MYSQL_ROW dbrow = mysql_fetch_row(result); i++ ) { int monitor_id = atoi(dbrow[0]); - int monitor_function = atoi(dbrow[1]); + int monitor_capturing = atoi(dbrow[1]); if ( !user || user->canAccess(monitor_id) ) { - if ( monitor_function > 1 ) { + if (monitor_capturing > Monitor::CAPTURING_NONE) { std::shared_ptr monitor = Monitor::Load(monitor_id, false, Monitor::QUERY); if ( monitor && monitor->connect() ) { SystemTimePoint timestamp = monitor->GetTimestamp(); - printf( "%4d%5d%6d%9d%14.2f%6d%6d%8" PRIu64 "%8.2f\n", + printf("%4d %9d %9d %9d %5d %8d %13.2f %5d %5d %9" PRIu64 "%10.2f\n", monitor->Id(), - monitor_function, + monitor->Capturing(), + monitor->Analysing(), + monitor->Recording(), monitor->GetState(), monitor->GetTriggerState(), FPSeconds(timestamp.time_since_epoch()).count(),