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:
parent
0d4474c6d9
commit
131ed30d7a
|
@ -323,6 +323,7 @@ CREATE TABLE Stats (
|
|||
ZoneId int(10) unsigned NOT NULL default '0',
|
||||
EventId 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',
|
||||
FilterPixels int(10) unsigned NOT NULL default '0',
|
||||
BlobPixels int(10) unsigned NOT NULL default '0',
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
-- Add support for linked monitors
|
||||
--
|
||||
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 Host varchar(64) 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 MaxFPS decimal(5,2) default NULL;
|
||||
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;
|
||||
|
||||
--
|
||||
-- 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
|
||||
--
|
||||
|
|
|
@ -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 ));
|
||||
|
||||
alarmed = false;
|
||||
pixel_diff = 0;
|
||||
alarm_pixels = 0;
|
||||
alarm_filter_pixels = 0;
|
||||
alarm_blob_pixels = 0;
|
||||
|
@ -101,7 +102,7 @@ Zone::~Zone()
|
|||
void Zone::RecordStats( const Event *event )
|
||||
{
|
||||
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 ) )
|
||||
{
|
||||
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_stride = diff_width * diff_image->Colours();
|
||||
|
||||
unsigned long pixel_diff_count = 0;
|
||||
|
||||
int alarm_lo_x = 0;
|
||||
int alarm_hi_x = 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)) )
|
||||
{
|
||||
*pdiff = WHITE;
|
||||
alarm_pixels++;
|
||||
pixel_diff_count += abs(*pdiff);
|
||||
*pdiff = WHITE;
|
||||
}
|
||||
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 )
|
||||
{
|
||||
static char diag_path[PATH_MAX] = "";
|
||||
|
@ -702,7 +708,7 @@ bool Zone::CheckAlarms( const Image *delta_image )
|
|||
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 );
|
||||
}
|
||||
|
|
|
@ -74,6 +74,7 @@ protected:
|
|||
|
||||
// Outputs/Statistics
|
||||
bool alarmed;
|
||||
int pixel_diff;
|
||||
int alarm_pixels;
|
||||
int alarm_filter_pixels;
|
||||
int alarm_blob_pixels;
|
||||
|
@ -126,6 +127,7 @@ public:
|
|||
inline void ResetStats()
|
||||
{
|
||||
alarmed = false;
|
||||
pixel_diff = 0;
|
||||
alarm_pixels = 0;
|
||||
alarm_filter_pixels = 0;
|
||||
alarm_blob_pixels = 0;
|
||||
|
|
|
@ -201,7 +201,7 @@ $jws = array(
|
|||
'restarting' => array( 'w'=>250, 'h'=>150 ),
|
||||
'settings' => array( 'w'=>200, 'h'=>225 ),
|
||||
'state' => array( 'w'=>300, 'h'=>120 ),
|
||||
'stats' => array( 'w'=>680, 'h'=>200 ),
|
||||
'stats' => array( 'w'=>740, 'h'=>200 ),
|
||||
'timeline' => array( 'w'=>760, 'h'=>500 ),
|
||||
'user' => array( 'w'=>280, 'h'=>372 ),
|
||||
'version' => array( 'w'=>320, 'h'=>140 ),
|
||||
|
|
|
@ -54,6 +54,7 @@ function closeWindow()
|
|||
</tr>
|
||||
<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" align="center"><?= $zmSlangPixelDiff ?></td>
|
||||
<td class="smallhead" align="center"><?= $zmSlangAlarmPx ?></td>
|
||||
<td class="smallhead" align="center"><?= $zmSlangFilterPx ?></td>
|
||||
<td class="smallhead" align="center"><?= $zmSlangBlobPx ?></td>
|
||||
|
@ -70,6 +71,7 @@ if ( count($stats) )
|
|||
?>
|
||||
<tr bgcolor="#FFFFFF">
|
||||
<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['FilterPixels'], (100*$stat['FilterPixels']/$stat['Area']) ) ?></td>
|
||||
<td class="text" align="center"><?= sprintf( "%d (%d%%)", $stat['BlobPixels'], (100*$stat['BlobPixels']/$stat['Area']) ) ?></td>
|
||||
|
|
|
@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Hesla se neshoduj
|
|||
$zmSlangPaths = 'Cesty';
|
||||
$zmSlangPhoneBW = 'Modem B/W';
|
||||
$zmSlangPhone = 'Modem';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixely';
|
||||
$zmSlangPlayAll = 'Pøehrát v¹e';
|
||||
$zmSlangPleaseWait = 'Prosím èekejte';
|
||||
|
|
|
@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Die Passwörter sind unterschiedlich';
|
|||
$zmSlangPaths = 'Pfade';
|
||||
$zmSlangPhoneBW = 'Tel. B/W';
|
||||
$zmSlangPhone = 'Telephon';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'Punkte';
|
||||
$zmSlangPlayAll = 'Alle zeigen';
|
||||
$zmSlangPleaseWait = 'Bitte warten';
|
||||
|
|
|
@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'Det nye og konfimerede passwords er forskellige'
|
|||
$zmSlangPaths = 'Stiger';
|
||||
$zmSlangPhoneBW = 'Telefon B/B';
|
||||
$zmSlangPhone = 'Telefon';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Afspil Alle';
|
||||
$zmSlangPleaseWait = 'Vent venligst';
|
||||
|
|
|
@ -115,46 +115,46 @@ $zmSlangAttrNotes = 'Notes';
|
|||
$zmSlangAttrTime = 'Time';
|
||||
$zmSlangAttrTotalScore = 'Total Score';
|
||||
$zmSlangAttrWeekday = 'Weekday';
|
||||
$zmSlangAutoArchiveEvents = 'Automatically archive all matches';
|
||||
$zmSlangAutoArchiveAbbr = 'Archive';
|
||||
$zmSlangAutoArchiveEvents = 'Automatically archive all matches';
|
||||
$zmSlangAuto = 'Auto';
|
||||
$zmSlangAutoDeleteEvents = 'Automatically delete all matches';
|
||||
$zmSlangAutoDeleteAbbr = 'Delete';
|
||||
$zmSlangAutoEmailEvents = 'Automatically email details of all matches';
|
||||
$zmSlangAutoDeleteEvents = 'Automatically delete all matches';
|
||||
$zmSlangAutoEmailAbbr = 'Email';
|
||||
$zmSlangAutoExecuteEvents = 'Automatically execute command on all matches';
|
||||
$zmSlangAutoEmailEvents = 'Automatically email details of all matches';
|
||||
$zmSlangAutoExecuteAbbr = 'Execute';
|
||||
$zmSlangAutoMessageEvents = 'Automatically message details of all matches';
|
||||
$zmSlangAutoExecuteEvents = 'Automatically execute command on all matches';
|
||||
$zmSlangAutoMessageAbbr = 'Message';
|
||||
$zmSlangAutoMessageEvents = 'Automatically message details of all matches';
|
||||
$zmSlangAutoStopTimeout = 'Auto Stop Timeout';
|
||||
$zmSlangAutoUploadEvents = 'Automatically upload all matches';
|
||||
$zmSlangAutoUploadAbbr = 'Upload';
|
||||
$zmSlangAutoVideoEvents = 'Automatically create video for all matches';
|
||||
$zmSlangAutoUploadEvents = 'Automatically upload all matches';
|
||||
$zmSlangAutoVideoAbbr = 'Video';
|
||||
$zmSlangAutoVideoEvents = 'Automatically create video for all matches';
|
||||
$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';
|
||||
$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';
|
||||
$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';
|
||||
$zmSlangBadWidth = 'Width must be set to a valid value';
|
||||
$zmSlangBandwidth = 'Bandwidth';
|
||||
$zmSlangBlobPx = 'Blob Px';
|
||||
$zmSlangBlobs = 'Blobs';
|
||||
|
@ -387,16 +387,16 @@ $zmSlangMaxZoomSpeed = 'Max Zoom Speed';
|
|||
$zmSlangMaxZoomStep = 'Max Zoom Step';
|
||||
$zmSlangMediumBW = 'Medium B/W';
|
||||
$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';
|
||||
$zmSlangMinAlarmAreaUnset = 'You must specify the minimum alarm pixel count';
|
||||
$zmSlangMinBlobAreaLtMax = 'Minimum blob area should be less than maximum';
|
||||
$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';
|
||||
$zmSlangMinBlobsUnset = 'You must specify the minimum blob count';
|
||||
$zmSlangMinFilterAreaLtMax = 'Minimum filter area should be less than maximum';
|
||||
$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';
|
||||
$zmSlangMinFocusSpeed = 'Min Focus Speed';
|
||||
$zmSlangMinFocusStep = 'Min Focus Step';
|
||||
|
@ -423,8 +423,8 @@ $zmSlangMinZoomStep = 'Min Zoom Step';
|
|||
$zmSlangMisc = 'Misc';
|
||||
$zmSlangMonitorIds = 'Monitor Ids';
|
||||
$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>';
|
||||
$zmSlangMonitorPreset = 'Monitor Preset';
|
||||
$zmSlangMonitors = 'Monitors';
|
||||
$zmSlangMontage = 'Montage';
|
||||
$zmSlangMonth = 'Month';
|
||||
|
@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'The new and confirm passwords are different';
|
|||
$zmSlangPaths = 'Paths';
|
||||
$zmSlangPhoneBW = 'Phone B/W';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'Please Wait';
|
||||
|
@ -508,8 +509,8 @@ $zmSlangResetEventCounts = 'Reset Event Counts';
|
|||
$zmSlangReset = 'Reset';
|
||||
$zmSlangRestarting = 'Restarting';
|
||||
$zmSlangRestart = 'Restart';
|
||||
$zmSlangRestrictedMonitors = 'Restricted Monitors';
|
||||
$zmSlangRestrictedCameraIds = 'Restricted Camera Ids';
|
||||
$zmSlangRestrictedMonitors = 'Restricted Monitors';
|
||||
$zmSlangReturnDelay = 'Return Delay';
|
||||
$zmSlangReturnLocation = 'Return Location';
|
||||
$zmSlangRotateLeft = 'Rotate Left';
|
||||
|
@ -524,8 +525,8 @@ $zmSlangScale = 'Scale';
|
|||
$zmSlangScore = 'Score';
|
||||
$zmSlangSecs = 'Secs';
|
||||
$zmSlangSectionlength = 'Section length';
|
||||
$zmSlangSelect = 'Select';
|
||||
$zmSlangSelectMonitors = 'Select Monitors';
|
||||
$zmSlangSelect = 'Select';
|
||||
$zmSlangSelfIntersecting = 'Polygon edges must not intersect';
|
||||
$zmSlangSetLearnPrefs = 'Set Learn Prefs'; // This can be ignored for now
|
||||
$zmSlangSetNewBandwidth = 'Set New Bandwidth';
|
||||
|
@ -584,9 +585,9 @@ $zmSlangType = 'Type';
|
|||
$zmSlangUnarchive = 'Unarchive';
|
||||
$zmSlangUnits = 'Units';
|
||||
$zmSlangUnknown = 'Unknown';
|
||||
$zmSlangUpdate = 'Update';
|
||||
$zmSlangUpdateAvailable = 'An update to ZoneMinder is available.';
|
||||
$zmSlangUpdateNotNecessary = 'No update is necessary.';
|
||||
$zmSlangUpdate = 'Update';
|
||||
$zmSlangUseFilterExprsPost = ' filter expressions'; // This is used at the end of the phrase 'use N filter expressions'
|
||||
$zmSlangUseFilterExprsPre = 'Use '; // This is used at the beginning of the phrase 'use N filter expressions'
|
||||
$zmSlangUseFilter = 'Use Filter';
|
||||
|
@ -621,16 +622,16 @@ $zmSlangWeek = 'Week';
|
|||
$zmSlangWhiteBalance = 'White Balance';
|
||||
$zmSlangWhite = 'White';
|
||||
$zmSlangWide = 'Wide';
|
||||
$zmSlangX = 'X';
|
||||
$zmSlangX10ActivationString = 'X10 Activation String';
|
||||
$zmSlangX10InputAlarmString = 'X10 Input Alarm String';
|
||||
$zmSlangX10OutputAlarmString = 'X10 Output Alarm String';
|
||||
$zmSlangX10 = 'X10';
|
||||
$zmSlangY = 'Y';
|
||||
$zmSlangX = 'X';
|
||||
$zmSlangYes = 'Yes';
|
||||
$zmSlangYouNoPerms = 'You do not have permissions to access this resource.';
|
||||
$zmSlangZoneArea = 'Zone Area';
|
||||
$zmSlangY = 'Y';
|
||||
$zmSlangZoneAlarmColour = 'Alarm Colour (Red/Green/Blue)';
|
||||
$zmSlangZoneArea = 'Zone Area';
|
||||
$zmSlangZoneFilterSize = 'Filter Width/Height (pixels)';
|
||||
$zmSlangZoneMinMaxAlarmArea = 'Min/Max Alarmed Area';
|
||||
$zmSlangZoneMinMaxBlobArea = 'Min/Max Blob Area';
|
||||
|
|
|
@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'Les 2 mots de passe sont diff
|
|||
$zmSlangPaths = 'Paths';
|
||||
$zmSlangPhoneBW = 'Phone B/W';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'Attendez';
|
||||
|
|
|
@ -489,6 +489,7 @@ $zmSlangPasswordsDifferent = 'Le password non coincidono';
|
|||
$zmSlangPaths = 'Percorsi';
|
||||
$zmSlangPhoneBW = 'Banda Tel';
|
||||
$zmSlangPhone = 'Telefono';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Vedi tutti';
|
||||
$zmSlangPleaseWait = 'Attendere prego';
|
||||
|
|
|
@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = '
|
|||
$zmSlangPaths = 'パス';
|
||||
$zmSlangPhoneBW = '携帯用';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'ピクセル';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'お待ちください';
|
||||
|
|
|
@ -483,6 +483,7 @@ $zmSlangPassword = 'Wachtwoord';
|
|||
$zmSlangPaths = 'Paden';
|
||||
$zmSlangPhoneBW = 'Telefoon B/W';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'wacht A.U.B.';
|
||||
|
|
|
@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = 'Has
|
|||
$zmSlangPaths = '¦cie¿ki';
|
||||
$zmSlangPhoneBW = 'Tel. prz.';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pikseli';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'Proszê czekaæ';
|
||||
|
|
|
@ -422,6 +422,7 @@ $zmSlangPassword = 'Senha';
|
|||
$zmSlangPaths = 'Caminhos';
|
||||
$zmSlangPhoneBW = 'Discada L/B';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'pixels';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'Por Favor Espere';
|
||||
|
|
|
@ -453,6 +453,7 @@ $zmSlangPasswordsDifferent = 'Cele două parole diferă.';
|
|||
$zmSlangPaths = 'Cale';
|
||||
$zmSlangPhoneBW = 'Phone B/W';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'Pixeli';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'Vă rugăm aşteptaţi';
|
||||
|
|
|
@ -483,6 +483,7 @@ $zmSlangPasswordsDifferent = '
|
|||
$zmSlangPaths = 'ğÕÔÉ';
|
||||
$zmSlangPhoneBW = 'ôÅÌÅÆÏÎÎÁÑ ÌÉÎÉÑ';
|
||||
$zmSlangPhone = 'Phone';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = '× ĞÉËÓÅÌÑÈ';
|
||||
$zmSlangPlayAll = 'Play All';
|
||||
$zmSlangPleaseWait = 'ğÏÖÁÌÕÊÓÔÁ ĞÏÄÏÖÄÉÔÅ';
|
||||
|
|
|
@ -482,6 +482,7 @@ $zmSlangPasswordsDifferent = 'L
|
|||
$zmSlangPaths = 'Sökvägar';
|
||||
$zmSlangPhoneBW = 'Mobil B/W';
|
||||
$zmSlangPhone = 'Mobil';
|
||||
$zmSlangPixelDiff = 'Pixel Diff';
|
||||
$zmSlangPixels = 'bildpunkter';
|
||||
$zmSlangPlayAll = 'Visa alla';
|
||||
$zmSlangPleaseWait = 'Vänta...';
|
||||
|
|
Loading…
Reference in New Issue