From: Alex Sadleir Date: Mon, 11 Mar 2013 05:03:10 +0000 Subject: better hourly X-Git-Url: http://maxious.lambdacomplex.org/git/?p=scannr.git&a=commitdiff&h=1f2cec837a1056643fdf763c734546ec91e90660 --- better hourly --- --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,19 @@ *.wav *.pyc /nbproject/private/ +/output.txt + +bin +gen +target +.settings +.classpath +.project +*.keystore +*.swp +*.orig +*.log +*.properties +seed.txt +map.txt + --- a/.gitmodules +++ b/.gitmodules @@ -3,5 +3,5 @@ url = git://github.com/uskr/pynma.git [submodule "js/flotr2"] path = js/flotr2 - url = git://github.com/HumbleSoftware/Flotr2.git + url = https://github.com/HumbleSoftware/Flotr2.git --- /dev/null +++ b/.idea/compiler.xml @@ -1,1 +1,24 @@ + + + + + + --- /dev/null +++ b/.idea/copyright/profiles_settings.xml @@ -1,1 +1,5 @@ - + + + + + --- /dev/null +++ b/.idea/dictionaries/Madoka.xml @@ -1,1 +1,10 @@ - + + + + tgid + timefrom + timeto + tzoffset + + + --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ jar:file:\C:\Program Files (x86)\JetBrains\PhpStorm 5.0.2\lib\webide.jar!\resources\html5-schema\html5.rnc - + --- a/.idea/scannr.iml +++ b/.idea/scannr.iml @@ -1,6 +1,11 @@ - + + + + + + --- /dev/null +++ b/.idea/sqldialects.xml @@ -1,1 +1,8 @@ + + + + + + + --- /dev/null +++ b/.idea/uiDesigner.xml @@ -1,1 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,7 +2,6 @@ - --- a/.idea/workspace.xml +++ /dev/null @@ -1,338 +1,1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1350026709905 - 1350026709905 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- a/404.html +++ b/404.html @@ -1,158 +1,160 @@ - - - Page Not Found :( - - - -
-

Not found :(

-

Sorry, but the page you were trying to view does not exist.

-

It looks like this was the result of either:

-
    -
  • a mistyped address
  • -
  • an out-of-date link
  • -
- - -
- + input::-moz-focus-inner { + padding: 0; + border: 0; + } + + + +
+

Not found :(

+ +

Sorry, but the page you were trying to view does not exist.

+ +

It looks like this was the result of either:

+
    +
  • a mistyped address
  • +
  • an out-of-date link
  • +
+ + +
+ --- a/README.md +++ /dev/null @@ -1,64 +1,1 @@ -# [HTML5 Boilerplate](http://html5boilerplate.com) -HTML5 Boilerplate is a professional front-end template for building fast, -robust, and adaptable web apps or sites. - -This project is the product of many years of iterative development and combined -community knowledge. It does not impose a specific development philosophy or -framework, so you're free to architect your code in the way that you want. - -* Source: [https://github.com/h5bp/html5-boilerplate](https://github.com/h5bp/html5-boilerplate) -* Homepage: [http://html5boilerplate.com](http://html5boilerplate.com) -* Twitter: [@h5bp](http://twitter.com/h5bp) - - -## Quick start - -Choose one of the following options: - -1. Download the latest stable release from - [html5boilerplate.com](http://html5boilerplate.com/) or a custom build from - [Initializr](http://www.initializr.com). -2. Clone the git repo — `git clone - https://github.com/h5bp/html5-boilerplate.git` - and checkout the tagged - release you'd like to use. - - -## Features - -* HTML5 ready. Use the new elements with confidence. -* Cross-browser compatible (Chrome, Opera, Safari, Firefox 3.6+, IE6+). -* Designed with progressive enhancement in mind. -* Includes [Normalize.css](http://necolas.github.com/normalize.css/) for CSS - normalizations and common bug fixes. -* The latest [jQuery](http://jquery.com/) via CDN, with a local fallback. -* The latest [Modernizr](http://modernizr.com/) build for feature detection. -* IE-specific classes for easier cross-browser control. -* Placeholder CSS Media Queries. -* Useful CSS helpers. -* Default print CSS, performance optimized. -* Protection against any stray `console.log` causing JavaScript errors in - IE6/7. -* An optimized Google Analytics snippet. -* Apache server caching, compression, and other configuration defaults for - Grade-A performance. -* Cross-domain Ajax and Flash. -* "Delete-key friendly." Easy to strip out parts you don't need. -* Extensive inline and accompanying documentation. - - -## Documentation - -Take a look at the [documentation table of -contents](/h5bp/html5-boilerplate/blob/master/doc/README.md). This -documentation is bundled with the project, which makes it readily available for -offline reading and provides a useful starting point for any documentation -you want to write about your project. - - -## Contributing - -Anyone and everyone is welcome to -[contribute](/h5bp/html5-boilerplate/blob/master/doc/contribute.md). Hundreds -of developers have helped make the HTML5 Boilerplate what it is today. - --- a/README.txt +++ /dev/null @@ -1,1 +1,1 @@ -ffmpeg from http://ffmpeg.zeranoe.com/builds/ + --- /dev/null +++ b/calllog.php @@ -1,1 +1,21 @@ +prepare('select * from recordings + order by call_timestamp desc limit 1000'); +$sth->execute(Array()); + +$row = 0; +echo ""; +foreach ($sth->fetchAll() as $data) { + + + echo ""; + for ($c = 0; $c < count($data); $c++) { + echo '\n"; + } + echo ""; +} +$row++; +echo "
' . $data[$c] . "
"; + --- a/calls.json.php +++ b/calls.json.php @@ -1,72 +1,93 @@ prepare( 'select min(call_timestamp) as time, count(*), min(length), max(length), avg(length), stddev(length) from recordings + $sth = $conn->prepare('select tgid, min(call_timestamp) as time, count(*), min(length), max(length), avg(length), stddev(length) from recordings +where call_timestamp between to_timestamp(?) and to_timestamp(?) group by tgid, date_trunc(\'hour\', call_timestamp) order by time'); - $sth->execute( Array($sensorID, $timeFrom, $timeTo)); - return $sth->fetchAll(); + $sth->execute(Array($timeFrom, $timeTo)); + return $sth->fetchAll(PDO::FETCH_ASSOC); + + } -function getSensorValuesByDay($sensorID, $dayFrom, $dayTo) { +function getTGIDValuesByDay($TGID, $dayFrom, $dayTo) +{ global $conn; $sth = $conn->prepare('select min(time) as time, min(value), max(value), avg(value), stddev(value) from sensor_values where sensor_id = ? group by sensor_id, date_trunc(\'day\', time) order by time'); - $sth->execute( Array($sensorID)); - return $sth->fetchAll(); + $sth->execute(Array($TGID)); + return $sth->fetchAll(PDO::FETCH_ASSOC); } -function getSensorDataYears($sensorID, $timeFrom, $timeTo) { +function getTGIDDataYears($TGID, $timeFrom, $timeTo) +{ global $conn; $sth = $conn->prepare("select distinct extract('year' from call_timestamp) as year from recordings where tgid = ? order by year"); - $sth->execute(Array($sensorID)); - return $sth->fetchAll(); + $sth->execute(Array($TGID)); + return $sth->fetchAll(PDO::FETCH_ASSOC); } -function getSensorDataMonths($sensorID, $timeFrom, $timeTo) { +function getTGIDDataMonths($TGID, $timeFrom, $timeTo) +{ global $conn; $sth = $conn->prepare("select distinct extract('month' from call_timestamp) as month, extract('year' from call_timestamp) as year from recordings where tgid = ? order by year, month"); - $sth->execute(Array($sensorID)); - return $sth->fetchAll(); + $sth->execute(Array($TGID)); + return $sth->fetchAll(PDO::FETCH_ASSOC); } -function getSensorDataDays($sensorID, $timeFrom, $timeTo) { +function getTGIDDataDays($TGID, $timeFrom, $timeTo) +{ global $conn; $sth = $conn->prepare("select distinct extract('day' from call_timestamp) as day, extract('month' from call_timestamp) as month, extract('year' from call_timestamp) as year from recordings where tgid = ? order by year,month,day"); - $sth->execute(Array($sensorID)); - return $sth->fetchAll(); + $sth->execute(Array($TGID)); + return $sth->fetchAll(PDO::FETCH_ASSOC); } -$action = $_REQUEST['action']; - $sensorID = $_REQUEST['tgid']; -$timefrom = $_REQUEST['from']; -$timeto = $_REQUEST['to']; -if ($action = "data_description") { +$action = (isset($_REQUEST['action']) ? $_REQUEST['action'] : ''); +$TGID = (isset($_REQUEST['tgid']) ? $_REQUEST['tgid'] : ''); +$timefrom = (isset($_REQUEST['from']) ? $_REQUEST['from'] : ''); +$timeto = (isset($_REQUEST['to']) ? $_REQUEST['to'] : ''); + +if ($action == "data") { +$sth = $conn->prepare('select * from recordings + order by call_timestamp desc limit 100'); + +$sth->execute(Array()); + +echo json_encode ($sth->fetchAll(PDO::FETCH_ASSOC)); +} +if ($action == "data_description") { $timefrom = strtotime($timefrom); $timeto = strtotime($timeto); - $years = getSensorDataYears($sensorID, $timefrom, $timeto); + $years = getTGIDDataYears($TGID, $timefrom, $timeto); - $months = getSensorDataMonths($sensorID, $timefrom, $timeto); - $days = getSensorDataDays($sensorID, $timefrom, $timeto); + $months = getTGIDDataMonths($TGID, $timefrom, $timeto); + $days = getTGIDDataDays($TGID, $timefrom, $timeto); echo json_encode(Array("years" => $years, "months" => $months, "days" => $days - )); + )); } -if ($action = "graph") { - $values = getSensorValuesByHour($sensorID, $timefrom, $timeto); - $label = $sensorID; +if (strpos($action, "graph") !== false) { + $values = getTGIDValuesByHour($TGID, $timefrom, $timeto); + $label = $TGID; $data = Array(); $tzoffset = get_timezone_offset("UTC"); foreach ($values as $value) { - $data[] = Array((strtotime($value['time']) + $tzoffset) * 1000, intval($value['avg'])); + if ($action == "graphlength") { + $data[$value['tgid']][] = Array((strtotime($value['time']) + $tzoffset) * 1000, intval($value['avg'])); + } else if ($action == "graphcount") { + $data[$value['tgid']][] = Array((strtotime($value['time']) + $tzoffset) * 1000, intval($value['count'])); + } } - echo json_encode(Array("label" => $label, "data" => $data, + echo json_encode(Array("label" => $label, "data" => $data, "previous" => Array( "from" => $timefrom - (24 * 60 * 60), "to" => $timefrom) @@ -78,5 +99,7 @@ ); } + + ?> --- a/common.inc.php +++ b/common.inc.php @@ -3,22 +3,23 @@ try { $conn = new PDO("pgsql:dbname=scannr;user=postgres;password=snmc;host=localhost"); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); -} -catch(PDOException $e) { +} catch (PDOException $e) { die('Unable to connect to database server.'); } -catch(Exception $e) { +catch (Exception $e) { die('Unknown error in ' . __FILE__ . '.'); } +$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $basePath = ""; $DATA_DIR = "./data"; /** Returns the offset from the origin timezone to the remote timezone, in seconds. - * @param $remote_tz; - * @param $origin_tz; If null the servers current timezone is used as the origin. - * @return int; + * @param $remote_tz; + * @param $origin_tz; If null the servers current timezone is used as the origin. + * @return int; */ -function get_timezone_offset($remote_tz, $origin_tz = null) { +function get_timezone_offset($remote_tz, $origin_tz = null) +{ if ($origin_tz === null) { if (!is_string($origin_tz = date_default_timezone_get())) { return false; // A UTC timestamp was returned -- bail out! @@ -33,60 +34,77 @@ } +function include_header($title) +{ + global $basePath; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -function include_header($title) { - global $basePath; - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --- /dev/null +++ b/css/daterangepicker.css @@ -1,1 +1,196 @@ +.daterangepicker.dropdown-menu { + max-width: none; +} +.daterangepicker.opensleft .ranges, .daterangepicker.opensleft .calendar { + float: left; + margin: 4px; +} + +.daterangepicker.opensright .ranges, .daterangepicker.opensright .calendar { + float: right; + margin: 4px; +} + +.daterangepicker .ranges { + width: 160px; + text-align: left; +} + +.daterangepicker .ranges .range_inputs>div { + float: left; +} + +.daterangepicker .ranges .range_inputs>div:nth-child(2) { + padding-left: 11px; +} + +.daterangepicker .calendar { + display: none; + max-width: 230px; +} + +.daterangepicker .calendar th, .daterangepicker .calendar td { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + white-space: nowrap; + text-align: center; +} + +.daterangepicker .ranges label { + color: #333; + font-size: 11px; + margin-bottom: 2px; + text-transform: uppercase; + text-shadow: 1px 1px 0 #fff; +} + +.daterangepicker .ranges input { + font-size: 11px; +} + +.daterangepicker .ranges ul { + list-style: none; + margin: 0; + padding: 0; +} + +.daterangepicker .ranges li { + font-size: 13px; + background: #f5f5f5; + border: 1px solid #f5f5f5; + color: #08c; + padding: 3px 12px; + margin-bottom: 8px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + cursor: pointer; +} + +.daterangepicker .ranges li.active, .daterangepicker .ranges li:hover { + background: #08c; + border: 1px solid #08c; + color: #fff; +} + +.daterangepicker .calendar { + border: 1px solid #ddd; + padding: 4px; + border-radius: 4px; + background: #fff; +} + +.daterangepicker { + position: absolute; + background: #fff; + top: 100px; + left: 20px; + padding: 4px; + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.daterangepicker.opensleft:before { + position: absolute; + top: -7px; + right: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker.opensleft:after { + position: absolute; + top: -6px; + right: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: ''; +} + +.daterangepicker.opensright:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker.opensright:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; + content: ''; +} + +.daterangepicker table { + width: 100%; + margin: 0; +} + +.daterangepicker td, .daterangepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + cursor: pointer; + white-space: nowrap; +} + +.daterangepicker td.off { + color: #999; +} +.daterangepicker td.disabled { + color: #999; +} + +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background: #eee; +} + +.daterangepicker td.in-range { + background: #ebf4f8; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.daterangepicker td.active, .daterangepicker td.active:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -ms-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.daterangepicker td.week, .daterangepicker th.week { + font-size: 80%; + color: #ccc; +} + --- /dev/null +++ b/datepicker.php @@ -1,1 +1,46 @@ +bri + + + + Pretty Charts with jQuery and AJAX | Tutorialzine Demo + + + + + +
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+ + + + + + + + + + + + + + + + + --- a/db.sql +++ b/db.sql @@ -1,10 +1,7 @@ +-- /usr/pgsql-9.1/bin/pg_dump --schema-only scannr -- -- PostgreSQL database dump -- - --- Dumped from database version 9.1.2 --- Dumped by pg_dump version 9.1.2 --- Started on 2012-10-14 19:22:29 SET statement_timeout = 0; SET client_encoding = 'UTF8'; @@ -13,7 +10,6 @@ SET client_min_messages = warning; -- --- TOC entry 162 (class 3079 OID 11639) -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -- @@ -21,8 +17,6 @@ -- --- TOC entry 1856 (class 0 OID 0) --- Dependencies: 162 -- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -- @@ -36,8 +30,6 @@ SET default_with_oids = false; -- --- TOC entry 161 (class 1259 OID 62391) --- Dependencies: 1847 6 -- Name: recordings; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- @@ -54,11189 +46,23 @@ ALTER TABLE public.recordings OWNER TO postgres; -- --- TOC entry 1850 (class 0 OID 62391) --- Dependencies: 161 --- Data for Name: recordings; Type: TABLE DATA; Schema: public; Owner: postgres +-- Name: tgids; Type: TABLE; Schema: public; Owner: postgres; Tablespace: -- -COPY recordings (filename, tgid, tgname, sitename, call_timestamp, length) FROM stdin; -2012-09-30-1348998992.35-demo.wav 44028 CanberraBlackMnt 2012-09-30 19:56:35.268+10 254088 -2012-09-30-1348998995.69-demo.wav 44028 CanberraBlackMnt 2012-09-30 19:56:38.733+10 256136 -2012-09-30-1348998999.93-demo.wav 44028 CanberraBlackMnt 2012-09-30 19:56:45.913+10 587902 -2012-09-30-1348999006.13-demo.wav 44028 CanberraBlackMnt 2012-09-30 19:56:54.567+10 698570 -2012-09-30-1348999016.18-demo.wav 44028 CanberraBlackMnt 2012-09-30 19:57:00.87+10 481854 -2012-09-30-1348999732.25-demo.wav 44028 CanberraBlackMnt 2012-09-30 20:09:14.875+10 234110 -2012-10-01-1349049204.29-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 09:53:26.799+10 208816 -2012-10-01-1349049226.73-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 09:53:51.106+10 368776 -2012-10-01-1349049233.21-demo.wav 30004 L GEORG CanberraBlackMnt 2012-10-01 09:54:09.788+10 1388118 -2012-10-01-1349049249.98-demo.wav 30004 L GEORG CanberraBlackMnt 2012-10-01 09:54:17.872+10 663688 -2012-10-01-1349049264.24-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 09:54:30.636+10 538760 -2012-10-01-1349049270.91-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 09:54:33.547+10 223368 -2012-10-01-1349049332.89-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 09:55:35.416+10 211876 -2012-10-01-1349049500.43-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 09:58:24.513+10 342452 -2012-10-01-1349049504.69-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 09:58:26.976+10 194696 -2012-10-01-1349049507.06-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 09:58:29.354+10 194670 -2012-10-01-1349049509.44-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 09:58:34.742+10 396850 -2012-10-01-1349049779.09-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:03:04.97+10 492576 -2012-10-01-1349049786.9-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:03:12.308+10 452698 -2012-10-01-1349049792.46-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:03:25.6+10 1095920 -2012-10-01-1349049807.7-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:03:31.677+10 290840 -2012-10-01-1349049861.14-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:04:25.582+10 373762 -2012-10-01-1349049865.67-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:04:28.013+10 198792 -2012-10-01-1349049868.1-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:04:39.641+10 964280 -2012-10-01-1349049882.76-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 10:05:00.226+10 1464278 -2012-10-01-1349049900.31-demo.wav 30004 L GEORG CanberraMtAinsli 2012-10-01 10:05:10.501+10 856174 -2012-10-01-1349049931.19-demo.wav 40093 PCL Rural CanberraBlackMnt 2012-10-01 10:05:33.892+10 194482 -2012-10-01-1349050089.47-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:08:12.583+10 258960 -2012-10-01-1349050092.74-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:08:14.999+10 190600 -2012-10-01-1349050095.28-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:08:20.876+10 469114 -2012-10-01-1349050101.01-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:08:25.274+10 360540 -2012-10-01-1349050181.52-demo.wav 40093 PCL Rural CanberraBlackMnt 2012-10-01 10:09:44.577+10 257894 -2012-10-01-1349050559.5-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:16:02.327+10 234682 -2012-10-01-1349050565.45-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:16:09.695+10 358536 -2012-10-01-1349050569.81-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:16:13.005+10 270436 -2012-10-01-1349051158.46-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:26:02.008+10 297526 -2012-10-01-1349051163.5-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:26:18.926+10 1243718 -2012-10-01-1349051179.11-demo.wav 10123 GOULB1 CanberraMtAinsli 2012-10-01 10:26:22.771+10 248802 -2012-10-01-1349051328.94-demo.wav 400