Bug 260 - Added average pixel difference to statistics

git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@1910 e3e1d417-86f3-4887-817a-d78f3d33393f
This commit is contained in:
stan 2006-03-31 15:34:16 +00:00
parent 0d4474c6d9
commit 131ed30d7a
19 changed files with 77 additions and 40 deletions

View File

@ -323,6 +323,7 @@ CREATE TABLE Stats (
ZoneId int(10) unsigned NOT NULL default '0', ZoneId int(10) unsigned NOT NULL default '0',
EventId int(10) unsigned NOT NULL default '0', EventId int(10) unsigned NOT NULL default '0',
FrameId int(10) unsigned NOT NULL default '0', FrameId int(10) unsigned NOT NULL default '0',
PixelDiff tinyint(3) unsigned NOT NULL default '0',
AlarmPixels int(10) unsigned NOT NULL default '0', AlarmPixels int(10) unsigned NOT NULL default '0',
FilterPixels int(10) unsigned NOT NULL default '0', FilterPixels int(10) unsigned NOT NULL default '0',
BlobPixels int(10) unsigned NOT NULL default '0', BlobPixels int(10) unsigned NOT NULL default '0',

View File

@ -6,6 +6,10 @@
-- Add support for linked monitors -- Add support for linked monitors
-- --
alter table Monitors add column LinkedMonitors varchar(255) NOT NULL default '' after Enabled; alter table Monitors add column LinkedMonitors varchar(255) NOT NULL default '' after Enabled;
--
-- Revise some defaults and sizes
--
alter table Monitors modify column Device varchar(64) not null default ''; alter table Monitors modify column Device varchar(64) not null default '';
alter table Monitors modify column Host varchar(64) not null default ''; alter table Monitors modify column Host varchar(64) not null default '';
alter table Monitors modify column Port varchar(8) not null default ''; alter table Monitors modify column Port varchar(8) not null default '';
@ -14,8 +18,17 @@ alter table Monitors modify column LabelX smallint(5) unsigned not null default
alter table Monitors modify column LabelY smallint(5) unsigned not null default 0; alter table Monitors modify column LabelY smallint(5) unsigned not null default 0;
alter table Monitors modify column MaxFPS decimal(5,2) default NULL; alter table Monitors modify column MaxFPS decimal(5,2) default NULL;
update Monitors set MaxFPS = NULL where MaxFPS = 0.00; update Monitors set MaxFPS = NULL where MaxFPS = 0.00;
--
-- Add monitor specific alarm max FPS
--
alter table Monitors add column AlarmMaxFPS decimal(5,2) default NULL after MaxFPS; alter table Monitors add column AlarmMaxFPS decimal(5,2) default NULL after MaxFPS;
--
-- Add average pixel difference to stats
--
alter table Stats add column PixelDiff tinyint(3) unsigned NOT NULL default '0' after FrameId;
-- --
-- Add some new monitor presets -- Add some new monitor presets
-- --

View File

@ -49,6 +49,7 @@ void Zone::Setup( Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_
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", 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 )); 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", 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 ));
alarmed = false; alarmed = false;
pixel_diff = 0;
alarm_pixels = 0; alarm_pixels = 0;
alarm_filter_pixels = 0; alarm_filter_pixels = 0;
alarm_blob_pixels = 0; alarm_blob_pixels = 0;
@ -101,7 +102,7 @@ Zone::~Zone()
void Zone::RecordStats( const Event *event ) void Zone::RecordStats( const Event *event )
{ {
static char sql[BUFSIZ]; static char sql[BUFSIZ];
snprintf( sql, sizeof(sql), "insert into Stats set MonitorId=%d, ZoneId=%d, EventId=%d, FrameId=%d, AlarmPixels=%d, FilterPixels=%d, BlobPixels=%d, Blobs=%d, MinBlobSize=%d, MaxBlobSize=%d, MinX=%d, MinY=%d, MaxX=%d, MaxY=%d, Score=%d", monitor->Id(), id, event->Id(), event->Frames()+1, alarm_pixels, alarm_filter_pixels, alarm_blob_pixels, alarm_blobs, min_blob_size, max_blob_size, alarm_box.LoX(), alarm_box.LoY(), alarm_box.HiX(), alarm_box.HiY(), score ); snprintf( sql, sizeof(sql), "insert into Stats set MonitorId=%d, ZoneId=%d, EventId=%d, FrameId=%d, PixelDiff=%d, AlarmPixels=%d, FilterPixels=%d, BlobPixels=%d, Blobs=%d, MinBlobSize=%d, MaxBlobSize=%d, MinX=%d, MinY=%d, MaxX=%d, MaxY=%d, Score=%d", monitor->Id(), id, event->Id(), event->Frames()+1, pixel_diff, alarm_pixels, alarm_filter_pixels, alarm_blob_pixels, alarm_blobs, min_blob_size, max_blob_size, alarm_box.LoX(), alarm_box.LoY(), alarm_box.HiX(), alarm_box.HiY(), score );
if ( mysql_query( &dbconn, sql ) ) if ( mysql_query( &dbconn, sql ) )
{ {
Error(( "Can't insert event stats: %s", mysql_error( &dbconn ) )); Error(( "Can't insert event stats: %s", mysql_error( &dbconn ) ));
@ -122,6 +123,8 @@ bool Zone::CheckAlarms( const Image *delta_image )
int diff_height = diff_image->Height(); int diff_height = diff_image->Height();
int diff_stride = diff_width * diff_image->Colours(); int diff_stride = diff_width * diff_image->Colours();
unsigned long pixel_diff_count = 0;
int alarm_lo_x = 0; int alarm_lo_x = 0;
int alarm_hi_x = 0; int alarm_hi_x = 0;
int alarm_lo_y = 0; int alarm_lo_y = 0;
@ -176,8 +179,9 @@ bool Zone::CheckAlarms( const Image *delta_image )
{ {
if ( *ppoly && (*pdiff > min_pixel_threshold) && (!max_pixel_threshold || (*pdiff < max_pixel_threshold)) ) if ( *ppoly && (*pdiff > min_pixel_threshold) && (!max_pixel_threshold || (*pdiff < max_pixel_threshold)) )
{ {
*pdiff = WHITE;
alarm_pixels++; alarm_pixels++;
pixel_diff_count += abs(*pdiff);
*pdiff = WHITE;
} }
else else
{ {
@ -195,7 +199,9 @@ bool Zone::CheckAlarms( const Image *delta_image )
} }
} }
} }
Debug( 5, ( "Got %d alarmed pixels, need %d -> %d", alarm_pixels, min_alarm_pixels, max_alarm_pixels )); if ( pixel_diff_count && alarm_pixels )
pixel_diff = pixel_diff_count/alarm_pixels;
Debug( 5, ( "Got %d alarmed pixels, need %d -> %d, avg pixel diff %d", alarm_pixels, min_alarm_pixels, max_alarm_pixels, pixel_diff ));
if ( config.record_diag_images ) if ( config.record_diag_images )
{ {
static char diag_path[PATH_MAX] = ""; static char diag_path[PATH_MAX] = "";
@ -702,7 +708,7 @@ bool Zone::CheckAlarms( const Image *delta_image )
image = 0; image = 0;
} }
Debug( 1, ( "%s: Alarm Pixels: %d, Filter Pixels: %d, Blob Pixels: %d, Blobs: %d, Score: %d", Label(), alarm_pixels, alarm_filter_pixels, alarm_blob_pixels, alarm_blobs, score )); Debug( 1, ( "%s: Pixel Diff: %d, Alarm Pixels: %d, Filter Pixels: %d, Blob Pixels: %d, Blobs: %d, Score: %d", Label(), pixel_diff, alarm_pixels, alarm_filter_pixels, alarm_blob_pixels, alarm_blobs, score ));
} }
return( true ); return( true );
} }

View File

@ -74,6 +74,7 @@ protected:
// Outputs/Statistics // Outputs/Statistics
bool alarmed; bool alarmed;
int pixel_diff;
int alarm_pixels; int alarm_pixels;
int alarm_filter_pixels; int alarm_filter_pixels;
int alarm_blob_pixels; int alarm_blob_pixels;
@ -126,6 +127,7 @@ public:
inline void ResetStats() inline void ResetStats()
{ {
alarmed = false; alarmed = false;
pixel_diff = 0;
alarm_pixels = 0; alarm_pixels = 0;
alarm_filter_pixels = 0; alarm_filter_pixels = 0;
alarm_blob_pixels = 0; alarm_blob_pixels = 0;

View File

@ -201,7 +201,7 @@ $jws = array(
'restarting' => array( 'w'=>250, 'h'=>150 ), 'restarting' => array( 'w'=>250, 'h'=>150 ),
'settings' => array( 'w'=>200, 'h'=>225 ), 'settings' => array( 'w'=>200, 'h'=>225 ),
'state' => array( 'w'=>300, 'h'=>120 ), 'state' => array( 'w'=>300, 'h'=>120 ),
'stats' => array( 'w'=>680, 'h'=>200 ), 'stats' => array( 'w'=>740, 'h'=>200 ),
'timeline' => array( 'w'=>760, 'h'=>500 ), 'timeline' => array( 'w'=>760, 'h'=>500 ),
'user' => array( 'w'=>280, 'h'=>372 ), 'user' => array( 'w'=>280, 'h'=>372 ),
'version' => array( 'w'=>320, 'h'=>140 ), 'version' => array( 'w'=>320, 'h'=>140 ),

View File

@ -54,6 +54,7 @@ function closeWindow()
</tr> </tr>
<tr><td colspan="2"><table width="100%" border="0" bgcolor="#7F7FB2" cellpadding="3" cellspacing="1"><tr bgcolor="#FFFFFF"> <tr><td colspan="2"><table width="100%" border="0" bgcolor="#7F7FB2" cellpadding="3" cellspacing="1"><tr bgcolor="#FFFFFF">
<td class="smallhead"><?= $zmSlangZone ?></td> <td class="smallhead"><?= $zmSlangZone ?></td>
<td class="smallhead" align="center"><?= $zmSlangPixelDiff ?></td>
<td class="smallhead" align="center"><?= $zmSlangAlarmPx ?></td> <td class="smallhead" align="center"><?= $zmSlangAlarmPx ?></td>
<td class="smallhead" align="center"><?= $zmSlangFilterPx ?></td> <td class="smallhead" align="center"><?= $zmSlangFilterPx ?></td>
<td class="smallhead" align="center"><?= $zmSlangBlobPx ?></td> <td class="smallhead" align="center"><?= $zmSlangBlobPx ?></td>
@ -70,6 +71,7 @@ if ( count($stats) )
?> ?>
<tr bgcolor="#FFFFFF"> <tr bgcolor="#FFFFFF">
<td class="text"><?= $stat['ZoneName'] ?></td> <td class="text"><?= $stat['ZoneName'] ?></td>
<td class="text" align="center"><?= $stat['PixelDiff'] ?></td>
<td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['AlarmPixels'], (100*$stat['AlarmPixels']/$stat['Area']) ) ?></td> <td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['AlarmPixels'], (100*$stat['AlarmPixels']/$stat['Area']) ) ?></td>
<td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['FilterPixels'], (100*$stat['FilterPixels']/$stat['Area']) ) ?></td> <td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['FilterPixels'], (100*$stat['FilterPixels']/$stat['Area']) ) ?></td>
<td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['BlobPixels'], (100*$stat['BlobPixels']/$stat['Area']) ) ?></td> <td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['BlobPixels'], (100*$stat['BlobPixels']/$stat['Area']) ) ?></td>

View File

@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Hesla se neshoduj
$zmSlangPaths = 'Cesty'; $zmSlangPaths = 'Cesty';
$zmSlangPhoneBW = 'Modem&nbsp;B/W'; $zmSlangPhoneBW = 'Modem&nbsp;B/W';
$zmSlangPhone = 'Modem'; $zmSlangPhone = 'Modem';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixely'; $zmSlangPixels = 'pixely';
$zmSlangPlayAll = 'Pøehrát v¹e'; $zmSlangPlayAll = 'Pøehrát v¹e';
$zmSlangPleaseWait = 'Prosím èekejte'; $zmSlangPleaseWait = 'Prosím èekejte';

View File

@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Die Passw&ouml;rter sind unterschiedlich';
$zmSlangPaths = 'Pfade'; $zmSlangPaths = 'Pfade';
$zmSlangPhoneBW = 'Tel.&nbsp;B/W'; $zmSlangPhoneBW = 'Tel.&nbsp;B/W';
$zmSlangPhone = 'Telephon'; $zmSlangPhone = 'Telephon';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'Punkte'; $zmSlangPixels = 'Punkte';
$zmSlangPlayAll = 'Alle zeigen'; $zmSlangPlayAll = 'Alle zeigen';
$zmSlangPleaseWait = 'Bitte warten'; $zmSlangPleaseWait = 'Bitte warten';

View File

@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'Det nye og konfimerede passwords er forskellige'
$zmSlangPaths = 'Stiger'; $zmSlangPaths = 'Stiger';
$zmSlangPhoneBW = 'Telefon&nbsp;B/B'; $zmSlangPhoneBW = 'Telefon&nbsp;B/B';
$zmSlangPhone = 'Telefon'; $zmSlangPhone = 'Telefon';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Afspil Alle'; $zmSlangPlayAll = 'Afspil Alle';
$zmSlangPleaseWait = 'Vent venligst'; $zmSlangPleaseWait = 'Vent venligst';

View File

@ -115,46 +115,46 @@ $zmSlangAttrNotes = 'Notes';
$zmSlangAttrTime = 'Time'; $zmSlangAttrTime = 'Time';
$zmSlangAttrTotalScore = 'Total Score'; $zmSlangAttrTotalScore = 'Total Score';
$zmSlangAttrWeekday = 'Weekday'; $zmSlangAttrWeekday = 'Weekday';
$zmSlangAutoArchiveEvents = 'Automatically archive all matches';
$zmSlangAutoArchiveAbbr = 'Archive'; $zmSlangAutoArchiveAbbr = 'Archive';
$zmSlangAutoArchiveEvents = 'Automatically archive all matches';
$zmSlangAuto = 'Auto'; $zmSlangAuto = 'Auto';
$zmSlangAutoDeleteEvents = 'Automatically delete all matches';
$zmSlangAutoDeleteAbbr = 'Delete'; $zmSlangAutoDeleteAbbr = 'Delete';
$zmSlangAutoEmailEvents = 'Automatically email details of all matches'; $zmSlangAutoDeleteEvents = 'Automatically delete all matches';
$zmSlangAutoEmailAbbr = 'Email'; $zmSlangAutoEmailAbbr = 'Email';
$zmSlangAutoExecuteEvents = 'Automatically execute command on all matches'; $zmSlangAutoEmailEvents = 'Automatically email details of all matches';
$zmSlangAutoExecuteAbbr = 'Execute'; $zmSlangAutoExecuteAbbr = 'Execute';
$zmSlangAutoMessageEvents = 'Automatically message details of all matches'; $zmSlangAutoExecuteEvents = 'Automatically execute command on all matches';
$zmSlangAutoMessageAbbr = 'Message'; $zmSlangAutoMessageAbbr = 'Message';
$zmSlangAutoMessageEvents = 'Automatically message details of all matches';
$zmSlangAutoStopTimeout = 'Auto Stop Timeout'; $zmSlangAutoStopTimeout = 'Auto Stop Timeout';
$zmSlangAutoUploadEvents = 'Automatically upload all matches';
$zmSlangAutoUploadAbbr = 'Upload'; $zmSlangAutoUploadAbbr = 'Upload';
$zmSlangAutoVideoEvents = 'Automatically create video for all matches'; $zmSlangAutoUploadEvents = 'Automatically upload all matches';
$zmSlangAutoVideoAbbr = 'Video'; $zmSlangAutoVideoAbbr = 'Video';
$zmSlangAutoVideoEvents = 'Automatically create video for all matches';
$zmSlangAvgBrScore = 'Avg.<br/>Score'; $zmSlangAvgBrScore = 'Avg.<br/>Score';
$zmSlangBadAlarmMaxFPS = 'Alarm Maximum FPS must be a positive integer or floating point value';
$zmSlangBadNameChars = 'Names may only contain alphanumeric characters plus hyphen and underscore';
$zmSlangBadMaxFPS = 'Maximum FPS must be a positive integer or floating point value';
$zmSlangBadRefBlendPerc = 'Reference blendpercentage must be a positive integer';
$zmSlangBadDevice = 'Device must be set to a valid value';
$zmSlangBadChannel = 'Channel must be set to an integer of zero or more';
$zmSlangBadFormat = 'Format must be set to an integer of zero or more';
$zmSlangBadWidth = 'Width must be set to a valid value';
$zmSlangBadHeight = 'Height must be set to a valid value';
$zmSlangBadHost = 'Host must be set to a valid ip address or hostname, do not include http://';
$zmSlangBadPort = 'Port must be set to a valid number';
$zmSlangBadPath = 'Path must be set to a valid value';
$zmSlangBadLabelX = 'Label X co-ordinate must be set to an integer of zero or more';
$zmSlangBadLabelY = 'Label Y co-ordinate must be set to an integer of zero or more';
$zmSlangBadImageBufferCount = 'Image buffer size must be an integer of 10 or more';
$zmSlangBadWarmupCount = 'Warmup frames must be an integer of zero or more';
$zmSlangBadPreEventCount = 'Pre event image buffer must be at least zero, and less than image buffer size';
$zmSlangBadPostEventCount = 'Post event image buffer must be an integer of zero or more';
$zmSlangBadAlarmFrameCount = 'Alarm frame count must be an integer of one or more'; $zmSlangBadAlarmFrameCount = 'Alarm frame count must be an integer of one or more';
$zmSlangBadSectionLength = 'Section length must be an integer of 30 or more'; $zmSlangBadAlarmMaxFPS = 'Alarm Maximum FPS must be a positive integer or floating point value';
$zmSlangBadChannel = 'Channel must be set to an integer of zero or more';
$zmSlangBadDevice = 'Device must be set to a valid value';
$zmSlangBadFormat = 'Format must be set to an integer of zero or more';
$zmSlangBadFPSReportInterval = 'FPS report interval buffer count must be an integer of 100 or more'; $zmSlangBadFPSReportInterval = 'FPS report interval buffer count must be an integer of 100 or more';
$zmSlangBadFrameSkip = 'Frame skip count must be an integer of zero or more'; $zmSlangBadFrameSkip = 'Frame skip count must be an integer of zero or more';
$zmSlangBadHeight = 'Height must be set to a valid value';
$zmSlangBadHost = 'Host must be set to a valid ip address or hostname, do not include http://';
$zmSlangBadImageBufferCount = 'Image buffer size must be an integer of 10 or more';
$zmSlangBadLabelX = 'Label X co-ordinate must be set to an integer of zero or more';
$zmSlangBadLabelY = 'Label Y co-ordinate must be set to an integer of zero or more';
$zmSlangBadMaxFPS = 'Maximum FPS must be a positive integer or floating point value';
$zmSlangBadNameChars = 'Names may only contain alphanumeric characters plus hyphen and underscore';
$zmSlangBadPath = 'Path must be set to a valid value';
$zmSlangBadPort = 'Port must be set to a valid number';
$zmSlangBadPostEventCount = 'Post event image buffer must be an integer of zero or more';
$zmSlangBadPreEventCount = 'Pre event image buffer must be at least zero, and less than image buffer size';
$zmSlangBadRefBlendPerc = 'Reference blendpercentage must be a positive integer';
$zmSlangBadSectionLength = 'Section length must be an integer of 30 or more';
$zmSlangBadWarmupCount = 'Warmup frames must be an integer of zero or more';
$zmSlangBadWebColour = 'Web colour must be a valid web colour string'; $zmSlangBadWebColour = 'Web colour must be a valid web colour string';
$zmSlangBadWidth = 'Width must be set to a valid value';
$zmSlangBandwidth = 'Bandwidth'; $zmSlangBandwidth = 'Bandwidth';
$zmSlangBlobPx = 'Blob Px'; $zmSlangBlobPx = 'Blob Px';
$zmSlangBlobs = 'Blobs'; $zmSlangBlobs = 'Blobs';
@ -387,16 +387,16 @@ $zmSlangMaxZoomSpeed = 'Max Zoom Speed';
$zmSlangMaxZoomStep = 'Max Zoom Step'; $zmSlangMaxZoomStep = 'Max Zoom Step';
$zmSlangMediumBW = 'Medium&nbsp;B/W'; $zmSlangMediumBW = 'Medium&nbsp;B/W';
$zmSlangMedium = 'Medium'; $zmSlangMedium = 'Medium';
$zmSlangMinBlobLtMinFilter = 'Minimum blob area should be less than or equal to minimum filter area';
$zmSlangMinFilterLtMinAlarm = 'Minimum filter area should be less than or equal to minimum alarm area';
$zmSlangMinAlarmAreaLtMax = 'Minimum alarm area should be less than maximum'; $zmSlangMinAlarmAreaLtMax = 'Minimum alarm area should be less than maximum';
$zmSlangMinAlarmAreaUnset = 'You must specify the minimum alarm pixel count'; $zmSlangMinAlarmAreaUnset = 'You must specify the minimum alarm pixel count';
$zmSlangMinBlobAreaLtMax = 'Minimum blob area should be less than maximum'; $zmSlangMinBlobAreaLtMax = 'Minimum blob area should be less than maximum';
$zmSlangMinBlobAreaUnset = 'You must specify the minimum blob pixel count'; $zmSlangMinBlobAreaUnset = 'You must specify the minimum blob pixel count';
$zmSlangMinBlobLtMinFilter = 'Minimum blob area should be less than or equal to minimum filter area';
$zmSlangMinBlobsLtMax = 'Minimum blobs should be less than maximum'; $zmSlangMinBlobsLtMax = 'Minimum blobs should be less than maximum';
$zmSlangMinBlobsUnset = 'You must specify the minimum blob count'; $zmSlangMinBlobsUnset = 'You must specify the minimum blob count';
$zmSlangMinFilterAreaLtMax = 'Minimum filter area should be less than maximum'; $zmSlangMinFilterAreaLtMax = 'Minimum filter area should be less than maximum';
$zmSlangMinFilterAreaUnset = 'You must specify the minimum filter pixel count'; $zmSlangMinFilterAreaUnset = 'You must specify the minimum filter pixel count';
$zmSlangMinFilterLtMinAlarm = 'Minimum filter area should be less than or equal to minimum alarm area';
$zmSlangMinFocusRange = 'Min Focus Range'; $zmSlangMinFocusRange = 'Min Focus Range';
$zmSlangMinFocusSpeed = 'Min Focus Speed'; $zmSlangMinFocusSpeed = 'Min Focus Speed';
$zmSlangMinFocusStep = 'Min Focus Step'; $zmSlangMinFocusStep = 'Min Focus Step';
@ -423,8 +423,8 @@ $zmSlangMinZoomStep = 'Min Zoom Step';
$zmSlangMisc = 'Misc'; $zmSlangMisc = 'Misc';
$zmSlangMonitorIds = 'Monitor&nbsp;Ids'; $zmSlangMonitorIds = 'Monitor&nbsp;Ids';
$zmSlangMonitor = 'Monitor'; $zmSlangMonitor = 'Monitor';
$zmSlangMonitorPreset = 'Monitor Preset';
$zmSlangMonitorPresetIntro = 'Select an appropriate preset from the list below.<br><br>Please note that this may overwrite any values you already have configured for this monitor.<br><br>'; $zmSlangMonitorPresetIntro = 'Select an appropriate preset from the list below.<br><br>Please note that this may overwrite any values you already have configured for this monitor.<br><br>';
$zmSlangMonitorPreset = 'Monitor Preset';
$zmSlangMonitors = 'Monitors'; $zmSlangMonitors = 'Monitors';
$zmSlangMontage = 'Montage'; $zmSlangMontage = 'Montage';
$zmSlangMonth = 'Month'; $zmSlangMonth = 'Month';
@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'The new and confirm passwords are different';
$zmSlangPaths = 'Paths'; $zmSlangPaths = 'Paths';
$zmSlangPhoneBW = 'Phone&nbsp;B/W'; $zmSlangPhoneBW = 'Phone&nbsp;B/W';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'Please Wait'; $zmSlangPleaseWait = 'Please Wait';
@ -508,8 +509,8 @@ $zmSlangResetEventCounts = 'Reset Event Counts';
$zmSlangReset = 'Reset'; $zmSlangReset = 'Reset';
$zmSlangRestarting = 'Restarting'; $zmSlangRestarting = 'Restarting';
$zmSlangRestart = 'Restart'; $zmSlangRestart = 'Restart';
$zmSlangRestrictedMonitors = 'Restricted Monitors';
$zmSlangRestrictedCameraIds = 'Restricted Camera Ids'; $zmSlangRestrictedCameraIds = 'Restricted Camera Ids';
$zmSlangRestrictedMonitors = 'Restricted Monitors';
$zmSlangReturnDelay = 'Return Delay'; $zmSlangReturnDelay = 'Return Delay';
$zmSlangReturnLocation = 'Return Location'; $zmSlangReturnLocation = 'Return Location';
$zmSlangRotateLeft = 'Rotate Left'; $zmSlangRotateLeft = 'Rotate Left';
@ -524,8 +525,8 @@ $zmSlangScale = 'Scale';
$zmSlangScore = 'Score'; $zmSlangScore = 'Score';
$zmSlangSecs = 'Secs'; $zmSlangSecs = 'Secs';
$zmSlangSectionlength = 'Section length'; $zmSlangSectionlength = 'Section length';
$zmSlangSelect = 'Select';
$zmSlangSelectMonitors = 'Select Monitors'; $zmSlangSelectMonitors = 'Select Monitors';
$zmSlangSelect = 'Select';
$zmSlangSelfIntersecting = 'Polygon edges must not intersect'; $zmSlangSelfIntersecting = 'Polygon edges must not intersect';
$zmSlangSetLearnPrefs = 'Set Learn Prefs'; // This can be ignored for now $zmSlangSetLearnPrefs = 'Set Learn Prefs'; // This can be ignored for now
$zmSlangSetNewBandwidth = 'Set New Bandwidth'; $zmSlangSetNewBandwidth = 'Set New Bandwidth';
@ -584,9 +585,9 @@ $zmSlangType = 'Type';
$zmSlangUnarchive = 'Unarchive'; $zmSlangUnarchive = 'Unarchive';
$zmSlangUnits = 'Units'; $zmSlangUnits = 'Units';
$zmSlangUnknown = 'Unknown'; $zmSlangUnknown = 'Unknown';
$zmSlangUpdate = 'Update';
$zmSlangUpdateAvailable = 'An update to ZoneMinder is available.'; $zmSlangUpdateAvailable = 'An update to ZoneMinder is available.';
$zmSlangUpdateNotNecessary = 'No update is necessary.'; $zmSlangUpdateNotNecessary = 'No update is necessary.';
$zmSlangUpdate = 'Update';
$zmSlangUseFilterExprsPost = '&nbsp;filter&nbsp;expressions'; // This is used at the end of the phrase 'use N filter expressions' $zmSlangUseFilterExprsPost = '&nbsp;filter&nbsp;expressions'; // This is used at the end of the phrase 'use N filter expressions'
$zmSlangUseFilterExprsPre = 'Use&nbsp;'; // This is used at the beginning of the phrase 'use N filter expressions' $zmSlangUseFilterExprsPre = 'Use&nbsp;'; // This is used at the beginning of the phrase 'use N filter expressions'
$zmSlangUseFilter = 'Use Filter'; $zmSlangUseFilter = 'Use Filter';
@ -621,16 +622,16 @@ $zmSlangWeek = 'Week';
$zmSlangWhiteBalance = 'White Balance'; $zmSlangWhiteBalance = 'White Balance';
$zmSlangWhite = 'White'; $zmSlangWhite = 'White';
$zmSlangWide = 'Wide'; $zmSlangWide = 'Wide';
$zmSlangX = 'X';
$zmSlangX10ActivationString = 'X10 Activation String'; $zmSlangX10ActivationString = 'X10 Activation String';
$zmSlangX10InputAlarmString = 'X10 Input Alarm String'; $zmSlangX10InputAlarmString = 'X10 Input Alarm String';
$zmSlangX10OutputAlarmString = 'X10 Output Alarm String'; $zmSlangX10OutputAlarmString = 'X10 Output Alarm String';
$zmSlangX10 = 'X10'; $zmSlangX10 = 'X10';
$zmSlangY = 'Y'; $zmSlangX = 'X';
$zmSlangYes = 'Yes'; $zmSlangYes = 'Yes';
$zmSlangYouNoPerms = 'You do not have permissions to access this resource.'; $zmSlangYouNoPerms = 'You do not have permissions to access this resource.';
$zmSlangZoneArea = 'Zone Area'; $zmSlangY = 'Y';
$zmSlangZoneAlarmColour = 'Alarm Colour (Red/Green/Blue)'; $zmSlangZoneAlarmColour = 'Alarm Colour (Red/Green/Blue)';
$zmSlangZoneArea = 'Zone Area';
$zmSlangZoneFilterSize = 'Filter Width/Height (pixels)'; $zmSlangZoneFilterSize = 'Filter Width/Height (pixels)';
$zmSlangZoneMinMaxAlarmArea = 'Min/Max Alarmed Area'; $zmSlangZoneMinMaxAlarmArea = 'Min/Max Alarmed Area';
$zmSlangZoneMinMaxBlobArea = 'Min/Max Blob Area'; $zmSlangZoneMinMaxBlobArea = 'Min/Max Blob Area';

View File

@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Les 2 mots de passe sont diff
$zmSlangPaths = 'Paths'; $zmSlangPaths = 'Paths';
$zmSlangPhoneBW = 'Phone&nbsp;B/W'; $zmSlangPhoneBW = 'Phone&nbsp;B/W';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'Attendez'; $zmSlangPleaseWait = 'Attendez';

View File

@ -489,6 +489,7 @@ $zmSlangPasswordsDifferent = 'Le password non coincidono';
$zmSlangPaths = 'Percorsi'; $zmSlangPaths = 'Percorsi';
$zmSlangPhoneBW = 'Banda&nbsp;Tel'; $zmSlangPhoneBW = 'Banda&nbsp;Tel';
$zmSlangPhone = 'Telefono'; $zmSlangPhone = 'Telefono';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Vedi tutti'; $zmSlangPlayAll = 'Vedi tutti';
$zmSlangPleaseWait = 'Attendere prego'; $zmSlangPleaseWait = 'Attendere prego';

View File

@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = '
$zmSlangPaths = 'パス'; $zmSlangPaths = 'パス';
$zmSlangPhoneBW = '携帯用'; $zmSlangPhoneBW = '携帯用';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'ピクセル'; $zmSlangPixels = 'ピクセル';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'お待ちください'; $zmSlangPleaseWait = 'お待ちください';

View File

@ -483,6 +483,7 @@ $zmSlangPassword = 'Wachtwoord';
$zmSlangPaths = 'Paden'; $zmSlangPaths = 'Paden';
$zmSlangPhoneBW = 'Telefoon&nbsp;B/W'; $zmSlangPhoneBW = 'Telefoon&nbsp;B/W';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'wacht A.U.B.'; $zmSlangPleaseWait = 'wacht A.U.B.';

View File

@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'Has
$zmSlangPaths = '¦cie¿ki'; $zmSlangPaths = '¦cie¿ki';
$zmSlangPhoneBW = 'Tel.&nbsp;prz.'; $zmSlangPhoneBW = 'Tel.&nbsp;prz.';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pikseli'; $zmSlangPixels = 'pikseli';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'Proszê czekaæ'; $zmSlangPleaseWait = 'Proszê czekaæ';

View File

@ -422,6 +422,7 @@ $zmSlangPassword = 'Senha';
$zmSlangPaths = 'Caminhos'; $zmSlangPaths = 'Caminhos';
$zmSlangPhoneBW = 'Discada&nbsp;L/B'; $zmSlangPhoneBW = 'Discada&nbsp;L/B';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'pixels'; $zmSlangPixels = 'pixels';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'Por Favor Espere'; $zmSlangPleaseWait = 'Por Favor Espere';

View File

@ -453,6 +453,7 @@ $zmSlangPasswordsDifferent = 'Cele dou&#259; parole difer&#259;.';
$zmSlangPaths = 'Cale'; $zmSlangPaths = 'Cale';
$zmSlangPhoneBW = 'Phone&nbsp;B/W'; $zmSlangPhoneBW = 'Phone&nbsp;B/W';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'Pixeli'; $zmSlangPixels = 'Pixeli';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'V&#259; rug&#259;m a&#351;tepta&#355;i'; $zmSlangPleaseWait = 'V&#259; rug&#259;m a&#351;tepta&#355;i';

View File

@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = '
$zmSlangPaths = 'ğÕÔÉ'; $zmSlangPaths = 'ğÕÔÉ';
$zmSlangPhoneBW = 'ôÅÌÅÆÏÎÎÁÑ ÌÉÎÉÑ'; $zmSlangPhoneBW = 'ôÅÌÅÆÏÎÎÁÑ ÌÉÎÉÑ';
$zmSlangPhone = 'Phone'; $zmSlangPhone = 'Phone';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = '× ĞÉËÓÅÌÑÈ'; $zmSlangPixels = '× ĞÉËÓÅÌÑÈ';
$zmSlangPlayAll = 'Play All'; $zmSlangPlayAll = 'Play All';
$zmSlangPleaseWait = 'ğÏÖÁÌÕÊÓÔÁ ĞÏÄÏÖÄÉÔÅ'; $zmSlangPleaseWait = 'ğÏÖÁÌÕÊÓÔÁ ĞÏÄÏÖÄÉÔÅ';

View File

@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'L
$zmSlangPaths = 'Sökvägar'; $zmSlangPaths = 'Sökvägar';
$zmSlangPhoneBW = 'Mobil&nbsp;B/W'; $zmSlangPhoneBW = 'Mobil&nbsp;B/W';
$zmSlangPhone = 'Mobil'; $zmSlangPhone = 'Mobil';
$zmSlangPixelDiff = 'Pixel Diff';
$zmSlangPixels = 'bildpunkter'; $zmSlangPixels = 'bildpunkter';
$zmSlangPlayAll = 'Visa alla'; $zmSlangPlayAll = 'Visa alla';
$zmSlangPleaseWait = 'Vänta...'; $zmSlangPleaseWait = 'Vänta...';