add feature to extend preclusive zone alarm state by x frames
This commit is contained in:
parent
16c59f7cb0
commit
26777487dc
|
@ -15,3 +15,6 @@ ALTER TABLE Monitors modify column Type enum('Local','Remote','File','Ffmpeg','L
|
|||
--
|
||||
ALTER TABLE `Monitors` ADD `User` VARCHAR(32) NOT NULL AFTER `SubPath`;
|
||||
ALTER TABLE `Monitors` ADD `Pass` VARCHAR(32) NOT NULL AFTER `User`;
|
||||
|
||||
-- Add extend alarm frame count to zone definition
|
||||
ALTER TABLE `Zones` ADD `ExtendAlarmFrames` smallint(5) unsigned not null default 0 AFTER `OverloadFrames`;
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
zoneminder (1.27.0-1) precise; urgency=high
|
||||
|
||||
* Add preclusive Zone Alarm extension feature
|
||||
|
||||
-- Martin Bene <hub@bene.priv.at> Sun, 09 Mar 2014 17:00:12 -0200
|
||||
|
||||
zoneminder (1.26.5-1) precise; urgency=high
|
||||
|
||||
* improvements to zmupdate.pl, cleanups
|
||||
|
|
|
@ -3131,7 +3131,9 @@ unsigned int Monitor::DetectMotion( const Image &comp_image, Event::StringSet &z
|
|||
for ( int n_zone = 0; n_zone < n_zones; n_zone++ )
|
||||
{
|
||||
Zone *zone = zones[n_zone];
|
||||
zone->ClearAlarm();
|
||||
// need previous alarmed state for preclusive zone, so don't clear just yet
|
||||
if (!zone->IsPreclusive())
|
||||
zone->ClearAlarm();
|
||||
if ( !zone->IsInactive() )
|
||||
{
|
||||
continue;
|
||||
|
@ -3148,14 +3150,31 @@ unsigned int Monitor::DetectMotion( const Image &comp_image, Event::StringSet &z
|
|||
{
|
||||
continue;
|
||||
}
|
||||
Debug( 3, "Checking preclusive zone %s", zone->Label() );
|
||||
int old_zone_score = zone->Score();
|
||||
bool old_zone_alarmed = zone->Alarmed();
|
||||
Debug( 3, "Checking preclusive zone %s - old score: %d, state: %s", zone->Label(),old_zone_score, zone->Alarmed()?"alarmed":"quiet" );
|
||||
if ( zone->CheckAlarms( &delta_image ) )
|
||||
{
|
||||
alarm = true;
|
||||
score += zone->Score();
|
||||
zone->SetAlarm();
|
||||
Debug( 3, "Zone is alarmed, zone score = %d", zone->Score() );
|
||||
zoneSet.insert( zone->Label() );
|
||||
//zone->ResetStats();
|
||||
} else {
|
||||
// check if end of alarm
|
||||
if (old_zone_alarmed) {
|
||||
Debug(3, "Preclusive Zone %s alarm Ends. Prevíous score: %d", zone->Label(), old_zone_score);
|
||||
if (old_zone_score > 0) {
|
||||
zone->SetExtendAlarmCount(zone->GetExtendAlarmFrames());
|
||||
}
|
||||
if (zone->CheckExtendAlarmCount()) {
|
||||
alarm=true;
|
||||
zone->SetAlarm();
|
||||
} else {
|
||||
zone->ClearAlarm();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3173,7 +3192,7 @@ unsigned int Monitor::DetectMotion( const Image &comp_image, Event::StringSet &z
|
|||
for ( int n_zone = 0; n_zone < n_zones; n_zone++ )
|
||||
{
|
||||
Zone *zone = zones[n_zone];
|
||||
if ( !zone->IsActive() )
|
||||
if ( !zone->IsActive() || zone->IsPreclusive())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include "zm_image.h"
|
||||
#include "zm_monitor.h"
|
||||
|
||||
void Zone::Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold, int p_max_pixel_threshold, int p_min_alarm_pixels, int p_max_alarm_pixels, const Coord &p_filter_box, int p_min_filter_pixels, int p_max_filter_pixels, int p_min_blob_pixels, int p_max_blob_pixels, int p_min_blobs, int p_max_blobs, int p_overload_frames )
|
||||
void Zone::Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold, int p_max_pixel_threshold, int p_min_alarm_pixels, int p_max_alarm_pixels, const Coord &p_filter_box, int p_min_filter_pixels, int p_max_filter_pixels, int p_min_blob_pixels, int p_max_blob_pixels, int p_min_blobs, int p_max_blobs, int p_overload_frames, int p_extend_alarm_frames )
|
||||
{
|
||||
monitor = p_monitor;
|
||||
|
||||
|
@ -46,8 +46,9 @@ void Zone::Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_
|
|||
min_blobs = p_min_blobs;
|
||||
max_blobs = p_max_blobs;
|
||||
overload_frames = p_overload_frames;
|
||||
extend_alarm_frames = p_extend_alarm_frames;
|
||||
|
||||
Debug( 1, "Initialised zone %d/%s - %d - %dx%d - Rgb:%06x, CM:%d, MnAT:%d, MxAT:%d, MnAP:%d, MxAP:%d, FB:%dx%d, MnFP:%d, MxFP:%d, MnBS:%d, MxBS:%d, MnB:%d, MxB:%d, OF: %d", id, label, type, polygon.Width(), polygon.Height(), alarm_rgb, check_method, min_pixel_threshold, max_pixel_threshold, min_alarm_pixels, max_alarm_pixels, filter_box.X(), filter_box.Y(), min_filter_pixels, max_filter_pixels, min_blob_pixels, max_blob_pixels, min_blobs, max_blobs, overload_frames );
|
||||
Debug( 1, "Initialised zone %d/%s - %d - %dx%d - Rgb:%06x, CM:%d, MnAT:%d, MxAT:%d, MnAP:%d, MxAP:%d, FB:%dx%d, MnFP:%d, MxFP:%d, MnBS:%d, MxBS:%d, MnB:%d, MxB:%d, OF: %d, AF: %d", id, label, type, polygon.Width(), polygon.Height(), alarm_rgb, check_method, min_pixel_threshold, max_pixel_threshold, min_alarm_pixels, max_alarm_pixels, filter_box.X(), filter_box.Y(), min_filter_pixels, max_filter_pixels, min_blob_pixels, max_blob_pixels, min_blobs, max_blobs, overload_frames, extend_alarm_frames );
|
||||
|
||||
alarmed = false;
|
||||
pixel_diff = 0;
|
||||
|
@ -61,6 +62,7 @@ void Zone::Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_
|
|||
score = 0;
|
||||
|
||||
overload_count = 0;
|
||||
extend_alarm_count = 0;
|
||||
|
||||
pg_image = new Image( monitor->Width(), monitor->Height(), 1, ZM_SUBPIX_ORDER_NONE);
|
||||
pg_image->Clear();
|
||||
|
@ -161,6 +163,35 @@ int Zone::GetOverloadFrames()
|
|||
{
|
||||
return overload_frames;
|
||||
}
|
||||
|
||||
int Zone::GetExtendAlarmCount()
|
||||
{
|
||||
return extend_alarm_count;
|
||||
}
|
||||
|
||||
void Zone::SetExtendAlarmCount(int nExtendAlarmCount)
|
||||
{
|
||||
extend_alarm_count = nExtendAlarmCount;
|
||||
}
|
||||
|
||||
int Zone::GetExtendAlarmFrames()
|
||||
{
|
||||
return extend_alarm_frames;
|
||||
}
|
||||
|
||||
bool Zone::CheckExtendAlarmCount()
|
||||
{
|
||||
Info("ExtendAlarm count: %d, ExtendAlarm frames: %d", extend_alarm_count, extend_alarm_frames);
|
||||
if ( extend_alarm_count )
|
||||
{
|
||||
Debug( 3, "In extend mode, %d frames of %d remaining", extend_alarm_count, extend_alarm_frames );
|
||||
extend_alarm_count--;
|
||||
return( true );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//===========================================================================
|
||||
|
||||
|
||||
|
@ -909,7 +940,7 @@ bool Zone::ParseZoneString( const char *zone_string, int &zone_id, int &colour,
|
|||
int Zone::Load( Monitor *monitor, Zone **&zones )
|
||||
{
|
||||
static char sql[ZM_SQL_MED_BUFSIZ];
|
||||
snprintf( sql, sizeof(sql), "select Id,Name,Type+0,Units,Coords,AlarmRGB,CheckMethod+0,MinPixelThreshold,MaxPixelThreshold,MinAlarmPixels,MaxAlarmPixels,FilterX,FilterY,MinFilterPixels,MaxFilterPixels,MinBlobPixels,MaxBlobPixels,MinBlobs,MaxBlobs,OverloadFrames from Zones where MonitorId = %d order by Type, Id", monitor->Id() );
|
||||
snprintf( sql, sizeof(sql), "select Id,Name,Type+0,Units,Coords,AlarmRGB,CheckMethod+0,MinPixelThreshold,MaxPixelThreshold,MinAlarmPixels,MaxAlarmPixels,FilterX,FilterY,MinFilterPixels,MaxFilterPixels,MinBlobPixels,MaxBlobPixels,MinBlobs,MaxBlobs,OverloadFrames,ExtendAlarmFrames from Zones where MonitorId = %d order by Type, Id", monitor->Id() );
|
||||
if ( mysql_query( &dbconn, sql ) )
|
||||
{
|
||||
Error( "Can't run query: %s", mysql_error( &dbconn ) );
|
||||
|
@ -950,6 +981,7 @@ int Zone::Load( Monitor *monitor, Zone **&zones )
|
|||
int MinBlobs = dbrow[col]?atoi(dbrow[col]):0; col++;
|
||||
int MaxBlobs = dbrow[col]?atoi(dbrow[col]):0; col++;
|
||||
int OverloadFrames = dbrow[col]?atoi(dbrow[col]):0; col++;
|
||||
int ExtendAlarmFrames = dbrow[col]?atoi(dbrow[col]):0; col++;
|
||||
|
||||
/* HTML colour code is actually BGR in memory, we want RGB */
|
||||
AlarmRGB = rgb_convert(AlarmRGB, ZM_SUBPIX_ORDER_BGR);
|
||||
|
@ -983,7 +1015,7 @@ int Zone::Load( Monitor *monitor, Zone **&zones )
|
|||
}
|
||||
else
|
||||
{
|
||||
zones[i] = new Zone( monitor, Id, Name, (Zone::ZoneType)Type, polygon, AlarmRGB, (Zone::CheckMethod)CheckMethod, MinPixelThreshold, MaxPixelThreshold, MinAlarmPixels, MaxAlarmPixels, Coord( FilterX, FilterY ), MinFilterPixels, MaxFilterPixels, MinBlobPixels, MaxBlobPixels, MinBlobs, MaxBlobs, OverloadFrames );
|
||||
zones[i] = new Zone( monitor, Id, Name, (Zone::ZoneType)Type, polygon, AlarmRGB, (Zone::CheckMethod)CheckMethod, MinPixelThreshold, MaxPixelThreshold, MinAlarmPixels, MaxAlarmPixels, Coord( FilterX, FilterY ), MinFilterPixels, MaxFilterPixels, MinBlobPixels, MaxBlobPixels, MinBlobs, MaxBlobs, OverloadFrames, ExtendAlarmFrames );
|
||||
}
|
||||
}
|
||||
if ( mysql_errno( &dbconn ) )
|
||||
|
|
|
@ -73,6 +73,7 @@ protected:
|
|||
int max_blobs;
|
||||
|
||||
int overload_frames;
|
||||
int extend_alarm_frames;
|
||||
|
||||
// Outputs/Statistics
|
||||
bool alarmed;
|
||||
|
@ -91,23 +92,24 @@ protected:
|
|||
Image *image;
|
||||
|
||||
int overload_count;
|
||||
int extend_alarm_count;
|
||||
|
||||
protected:
|
||||
void Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold, int p_max_pixel_threshold, int p_min_alarm_pixels, int p_max_alarm_pixels, const Coord &p_filter_box, int p_min_filter_pixels, int p_max_filter_pixels, int p_min_blob_pixels, int p_max_blob_pixels, int p_min_blobs, int p_max_blobs, int p_overload_frames );
|
||||
void Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold, int p_max_pixel_threshold, int p_min_alarm_pixels, int p_max_alarm_pixels, const Coord &p_filter_box, int p_min_filter_pixels, int p_max_filter_pixels, int p_min_blob_pixels, int p_max_blob_pixels, int p_min_blobs, int p_max_blobs, int p_overload_frames, int p_extend_alarm_frames );
|
||||
void std_alarmedpixels(Image* pdiff_image, const Image* ppoly_image, unsigned int* pixel_count, unsigned int* pixel_sum);
|
||||
|
||||
public:
|
||||
Zone( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold=15, int p_max_pixel_threshold=0, int p_min_alarm_pixels=50, int p_max_alarm_pixels=75000, const Coord &p_filter_box=Coord( 3, 3 ), int p_min_filter_pixels=50, int p_max_filter_pixels=50000, int p_min_blob_pixels=10, int p_max_blob_pixels=0, int p_min_blobs=0, int p_max_blobs=0, int p_overload_frames=0 )
|
||||
Zone( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold=15, int p_max_pixel_threshold=0, int p_min_alarm_pixels=50, int p_max_alarm_pixels=75000, const Coord &p_filter_box=Coord( 3, 3 ), int p_min_filter_pixels=50, int p_max_filter_pixels=50000, int p_min_blob_pixels=10, int p_max_blob_pixels=0, int p_min_blobs=0, int p_max_blobs=0, int p_overload_frames=0, int p_extend_alarm_frames=0 )
|
||||
{
|
||||
Setup( p_monitor, p_id, p_label, p_type, p_polygon, p_alarm_rgb, p_check_method, p_min_pixel_threshold, p_max_pixel_threshold, p_min_alarm_pixels, p_max_alarm_pixels, p_filter_box, p_min_filter_pixels, p_max_filter_pixels, p_min_blob_pixels, p_max_blob_pixels, p_min_blobs, p_max_blobs, p_overload_frames );
|
||||
Setup( p_monitor, p_id, p_label, p_type, p_polygon, p_alarm_rgb, p_check_method, p_min_pixel_threshold, p_max_pixel_threshold, p_min_alarm_pixels, p_max_alarm_pixels, p_filter_box, p_min_filter_pixels, p_max_filter_pixels, p_min_blob_pixels, p_max_blob_pixels, p_min_blobs, p_max_blobs, p_overload_frames, p_extend_alarm_frames );
|
||||
}
|
||||
Zone( Monitor *p_monitor, int p_id, const char *p_label, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold=15, int p_max_pixel_threshold=0, int p_min_alarm_pixels=50, int p_max_alarm_pixels=75000, const Coord &p_filter_box=Coord( 3, 3 ), int p_min_filter_pixels=50, int p_max_filter_pixels=50000, int p_min_blob_pixels=10, int p_max_blob_pixels=0, int p_min_blobs=0, int p_max_blobs=0, int p_overload_frames=0 )
|
||||
Zone( Monitor *p_monitor, int p_id, const char *p_label, const Polygon &p_polygon, const Rgb p_alarm_rgb, CheckMethod p_check_method, int p_min_pixel_threshold=15, int p_max_pixel_threshold=0, int p_min_alarm_pixels=50, int p_max_alarm_pixels=75000, const Coord &p_filter_box=Coord( 3, 3 ), int p_min_filter_pixels=50, int p_max_filter_pixels=50000, int p_min_blob_pixels=10, int p_max_blob_pixels=0, int p_min_blobs=0, int p_max_blobs=0, int p_overload_frames=0, int p_extend_alarm_frames=0)
|
||||
{
|
||||
Setup( p_monitor, p_id, p_label, Zone::ACTIVE, p_polygon, p_alarm_rgb, p_check_method, p_min_pixel_threshold, p_max_pixel_threshold, p_min_alarm_pixels, p_max_alarm_pixels, p_filter_box, p_min_filter_pixels, p_max_filter_pixels, p_min_blob_pixels, p_max_blob_pixels, p_min_blobs, p_max_blobs, p_overload_frames );
|
||||
Setup( p_monitor, p_id, p_label, Zone::ACTIVE, p_polygon, p_alarm_rgb, p_check_method, p_min_pixel_threshold, p_max_pixel_threshold, p_min_alarm_pixels, p_max_alarm_pixels, p_filter_box, p_min_filter_pixels, p_max_filter_pixels, p_min_blob_pixels, p_max_blob_pixels, p_min_blobs, p_max_blobs, p_overload_frames, p_extend_alarm_frames );
|
||||
}
|
||||
Zone( Monitor *p_monitor, int p_id, const char *p_label, const Polygon &p_polygon )
|
||||
{
|
||||
Setup( p_monitor, p_id, p_label, Zone::INACTIVE, p_polygon, RGB_BLACK, (Zone::CheckMethod)0, 0, 0, 0, 0, Coord( 0, 0 ), 0, 0, 0, 0, 0, 0, 0 );
|
||||
Setup( p_monitor, p_id, p_label, Zone::INACTIVE, p_polygon, RGB_BLACK, (Zone::CheckMethod)0, 0, 0, 0, 0, Coord( 0, 0 ), 0, 0, 0, 0, 0, 0, 0, 0 );
|
||||
}
|
||||
|
||||
public:
|
||||
|
@ -153,6 +155,11 @@ public:
|
|||
int GetOverloadCount();
|
||||
void SetOverloadCount(int nOverCount);
|
||||
int GetOverloadFrames();
|
||||
//=================================================
|
||||
bool CheckExtendAlarmCount();
|
||||
int GetExtendAlarmCount();
|
||||
void SetExtendAlarmCount(int nOverCount);
|
||||
int GetExtendAlarmFrames();
|
||||
void SetScore(unsigned int nScore);
|
||||
void SetAlarmImage(const Image* srcImage);
|
||||
|
||||
|
|
|
@ -712,6 +712,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => '監視區',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In', // Added - 2009-02-08
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => '最小/最大像素阈值(0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => '忽略过载帪数',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => '区域',
|
||||
'Zoom' => '缩放',
|
||||
'ZoomIn' => '放大',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zóny',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zvìt¹it',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min./max. Pixelschwellwert',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Bildauslassrate bei Systemüberlastung',
|
||||
'ZoneExtendAlarmFrames' => 'Alarmstatus nach Ende für Frames aufrechterhalten',
|
||||
'Zones' => 'Zonen',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Hineinzoomen',
|
||||
|
|
|
@ -709,6 +709,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zoner',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -709,6 +709,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxFiltArea' => 'Min/Max Filtered Area',
|
||||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zones',
|
||||
'Zone' => 'Zone',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -659,6 +659,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zonas',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -702,6 +702,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Tsoone',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zones',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'àæåøéí',
|
||||
'Zoom' => 'æåí',
|
||||
'ZoomIn' => 'æåí ôðéîä',
|
||||
|
|
|
@ -715,6 +715,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max képpont változási<br>küszöb (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Napló',
|
||||
'ZoneOverloadFrames' => 'Túlterhelés esetén<br>ennyi képkocka hagyható ki',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zónák',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom be',
|
||||
|
|
|
@ -713,6 +713,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Soglia Pixel (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zone',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Ingrandisci',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => '¿Þ°Ý',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -702,6 +702,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame negeer aantal',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zones',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Strefy',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -648,6 +648,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zonas',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -679,6 +679,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zona',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -708,6 +708,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max Pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'úÏÎÙ',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
|
|
|
@ -709,6 +709,7 @@ $SLANG = array(
|
|||
'ZoneMinMaxPixelThres' => 'Min/Max pixel Threshold (0-255)',
|
||||
'ZoneMinderLog' => 'ZoneMinder Log', // Added - 2011-06-17
|
||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Zoner',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zooma in',
|
||||
|
|
|
@ -96,6 +96,7 @@ if ( !isset($newZone) )
|
|||
'MinBlobs' => '',
|
||||
'MaxBlobs' => '',
|
||||
'OverloadFrames' => '',
|
||||
'ExtendAlarmFrames' => '',
|
||||
);
|
||||
}
|
||||
$zone['Points'] = coordsToPoints( $zone['Coords'] );
|
||||
|
@ -207,6 +208,10 @@ xhtmlHeaders(__FILE__, $SLANG['Zone'] );
|
|||
<th scope="row"><?= $SLANG['ZoneOverloadFrames'] ?></th>
|
||||
<td colspan="2"><input type="text" name="newZone[OverloadFrames]" value="<?= $newZone['OverloadFrames'] ?>" size="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?= $SLANG['ZoneExtendAlarmFrames'] ?></th>
|
||||
<td colspan="2"><input type="text" name="newZone[ExtendAlarmFrames]" value="<?= $newZone['ExtendAlarmFrames'] ?>" size="4"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -96,6 +96,7 @@ if ( !isset($newZone) )
|
|||
'MinBlobs' => '',
|
||||
'MaxBlobs' => '',
|
||||
'OverloadFrames' => '',
|
||||
'ExtendAlarmFrames' => '',
|
||||
);
|
||||
}
|
||||
$zone['Points'] = coordsToPoints( $zone['Coords'] );
|
||||
|
@ -207,6 +208,10 @@ xhtmlHeaders(__FILE__, $SLANG['Zone'] );
|
|||
<th scope="row"><?= $SLANG['ZoneOverloadFrames'] ?></th>
|
||||
<td colspan="2"><input type="text" name="newZone[OverloadFrames]" value="<?= $newZone['OverloadFrames'] ?>" size="4"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><?= $SLANG['ZoneExtendAlarmFrames'] ?></th>
|
||||
<td colspan="2"><input type="text" name="newZone[ExtendAlarmFrames]" value="<?= $newZone['ExtendAlarmFrames'] ?>" size="4"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue