Saturday, July 19, 2014

New variable $MSE, and Dynamic Print variables on IQeye cameras

An interesting "Dynamic Print" or DP variable was added to the firmware for IQ8xx and IQ7xx cameras a few releases ago.

Dynamic Print variables are those that represent internal, and possibly dynamic, camera values, and can be used in filenames on triggers, inside of image captions, and on custom webpages that you write and upload to the camera.

This particular variable is pretty cool. It is:

$MSE = Milliseconds since epoch

One of the problems I had encountered with IQeye cameras is I was only able to set up rules to name trigger images with granularity to the second. This presents the following sorting problem:



Trigger sequences are supposed to go from negative numbers to positive ones, like trig-03, trig-02,  trig-01,  trig+00,  trig+01  trig+02. However, since the date comes before the trigger sequence number in the filenames, when an event "spans seconds", where the last set of images roll over into the next second, this plays havoc on the sorting.

In addition, there is no guarantee that your filemanager will put trig-03, trig-02,  trig-01,  trig+00,  trig+01  trig+02 in order, even by themselves.

Old

i.e.
File Path "$SH/$SD(%m)-$SD(%d)/$SD(%H)"
File Name "$ST.$FN"

This gives you folders with the camera MAC, with folders then dated by month and day, then folders by the hour, and then the default filenames for the JPEGs themselves.

00_1a_22_21_48/05-19/14/14_10_39.trig-02.jpg

New

i.e.
File Path "$SH/$SD(%m)-$SD(%d)/$SD(%H)"
File Name "$ST.$MSE.$FN"

00_1a_22_21_48/05-19/14/14_10_39.1400510841748.trig-02.jpg

This makes sure that images are sorted in the real order that they were taken.

Maybe other cameras have this variable as well, give it a try!

Does not work
IQ031s 4.0/069
IQeye3 V2.8/6(080313)

Works
IQ511 V2.8/6(080313)
IQ511 V2.8/10(110128)
IQ805 V3.0/9(101130)
IQ752 V3.0/4(091112)

Other variables

$SHYour camera’s hardware address.
$SIYour camera’s IP address.
$SNYour camera’s name, as specified on the Network Settings page.
$STThe current time (in 24-hour format: HH:MM:SS, ex: 16:05:20).
$SDThe current date (ex: Wed Feb 03 2010).
$SCCompany name (e.g. IQinVision).
$SPProduct name (e.g. IQeye752).
$SVThe version of operating software on your camera.
$SMThe domain name, as specified on the Network Settings page.
$FNThe name of the file that your camera is accessing.
$MSEMilliseconds since epoch
$IMGDBGImage debug data
$O(oidNumber)Display an OID, like IP address (3.6.10) or the image focus value(1.2.25) or last trigger event time (1.3.20)
For time-based variables, you can use $SD in combination with the common strftime() UNIX time variables. Not all variables work. I may update this post to reflect that.
       %%     a literal %

       %a     locale's abbreviated weekday name (e.g., Sun)

       %A     locale's full weekday name (e.g., Sunday)

       %b     locale's abbreviated month name (e.g., Jan)

       %B     locale's full month name (e.g., January)

       %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)

       %C     century; like %Y, except omit last two digits (e.g., 21)

       %d     day of month (e.g, 01)

       %D     date; same as %m/%d/%y

       %e     day of month, space padded; same as %_d

       %F     full date; same as %Y-%m-%d

       %g     last two digits of year of ISO week number (see %G)

       %G     year of ISO week number (see %V); normally useful only with %V

       %h     same as %b

       %H     hour (00..23)

       %I     hour (01..12)

       %j     day of year (001..366)

       %k     hour ( 0..23)

       %l     hour ( 1..12)

       %m     month (01..12)

       %M     minute (00..59)

       %n     a newline

       %N     nanoseconds (000000000..999999999)

       %p     locale's equivalent of either AM or PM; blank if not known

       %P     like %p, but lower case

       %r     locale's 12-hour clock time (e.g., 11:11:04 PM)

       %R     24-hour hour and minute; same as %H:%M

       %s     seconds since 1970-01-01 00:00:00 UTC

       %S     second (00..60)

       %t     a tab

       %T     time; same as %H:%M:%S

       %u     day of week (1..7); 1 is Monday

       %U     week number of year, with Sunday as first day of week (00..53)

       %V     ISO week number, with Monday as first day of week (01..53)

       %w     day of week (0..6); 0 is Sunday

       %W     week number of year, with Monday as first day of week (00..53)

       %x     locale's date representation (e.g., 12/31/99)

       %X     locale's time representation (e.g., 23:13:48)

       %y     last two digits of year (00..99)

       %Y     year

       %z     +hhmm numeric timezone (e.g., -0400)

       %:z    +hh:mm numeric timezone (e.g., -04:00)

       %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

       %:::z  numeric  time  zone  with  :  to necessary precision (e.g., -04,
       +05:30)

       %Z     alphabetic time zone abbreviation (e.g., EDT)

Have fun!

No comments:

Post a Comment