v1.0 CALIBRATION: visible LEDs (light box only)


goes with protocol of same name
// Set our initial variables and conditions
var data = json.data_raw;
var output = {};   // location to save output variables
var intensityArray = [20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,500,800];  // the pulsed_lights_brightness which are set in the measurement protocol associated with "lights" array defined above1
var intensities = intensityArray.length; // number of intensities per light
var pulses = 30;   // number of pulses in a intensity
var lights_array;   // define the lights to be calibrated
var total_reads;   // total number of reads from the sensor

// This is used only on the Light Box.  You need to manually extract and save 

var whichSet = 0;

var total_reads = intensities*pulses*2+100;   // total number of reads from the sensor

var parValues = [[],[]];

var responseArray = [[],[]];

var allPar = [];
for (var i = 0; i < json.message.length; i++) {
  allPar.push(Number(json.message[i][2]));
}

var lights_array = [1,2];   // define the lights to be calibrated - default if not defined is 1,2
if (json.message[1][1] == 1) {
  lights_array = [1,2];
}
if (json.message[1][1] == 3) {
  lights_array = [3,4];
}
else if (json.message[1][1] == 6) {
  lights_array = [6,7];
}
else if (json.message[1][1] == 8) {
  lights_array = [8,9];
}
else if (json.message[1][1] == 10) {
  lights_array = [10];
} 

output["allPar"] = allPar;
//output["intensityArray"] = intensityArray;

for (var i = 1; i < intensityArray.length+1; i++) {
  var tempVar = Number(json.message[i][2]);
  if (tempVar > 0) {
    parValues[0].push(json.message[i][2]);
    responseArray[0].push([json.message[i][2], intensityArray[i-1]]);
  }
}

if (lights_array[0] != 10) {
  for (var i = intensityArray.length+1; i < intensityArray.length*2+1; i++) {
    var tempVar = Number(json.message[i][2]);
    if (tempVar > 0) {
      parValues[1].push(json.message[i][2]);
      responseArray[1].push([json.message[i][2], intensityArray[i-intensityArray.length-1]]);
    }
  }
}
// (j != 0 && j != intensities - 1) && (thisResponse > predictedPar[i][j-1]) && (thisResponse > predictedPar[i][0]*1.3)
// if (thisResponse > 0 && (findStart == 1 || (thisResponse > predictedPar[i][0]*1.3 && (j == intensities - 1 || predictedPar[i][j+1] > thisResponse)*1.1))) {
// now we need to fit the response from each LED to a polynomial fit, and output the results to the device
output["toDevice"] = "set_led_par+";

// create variable to store residuals from model (and one with absolute values instead of raw values)
var residuals = [];
var residuals_perc = [];
var residuals_rsq = [];
var actuals_rsq = [];


for (var i = 0; i < lights_array.length; i++) {
  
  output["response_array_"+lights_array[i]] = responseArray[i];
  output["parValues_"+json.message[1][1]] = parValues[i];
  
//  /* // try 2nd order poly
  var model = MathPOLYREG(responseArray[i],2);
  var a = 0;
  var b = 0;
  var c = model.slopes[2].toFixed(11);
  var d = model.slopes[1].toFixed(6);
  var yint = model.slopes[0].toFixed(4);
  output["toDevice"] += lights_array[i]+"+"+a*1000000000+"+"+b*1000000000+"+"+c*1000000000+"+"+d+"+"+yint+"+";
  output["light"+lights_array[i]+"_a"] = a;
  output["light"+lights_array[i]+"_b"] = b;
  output["light"+lights_array[i]+"_c"] = c;
  output["light"+lights_array[i]+"_d"] = d;
  output["light"+lights_array[i]+"_yint"] = yint;


  residuals[i] = [];
  residuals_perc[i] = [];
  residuals_rsq[i] = [];
  actuals_rsq[i] = [];
  for (var j = 0; j < responseArray[i].length; j++) {
    thisLight = responseArray[i][j][0];
    dac_actual = responseArray[i][j][1];
//    dac_predicted = model.slopes[4]*Math.pow(thisLight,4) +model.slopes[3]*Math.pow(thisLight,3) +model.slopes[2]*Math.pow(thisLight,2) + model.slopes[1]*thisLight + model.slopes[0];
    dac_predicted = MathROUND(model.slopes[2]*Math.pow(thisLight,2) + model.slopes[1]*thisLight + model.slopes[0],0);
    var residual = dac_actual - dac_predicted;
    var residual_perc = MathROUND(100*Math.abs(residual/dac_actual),3);
    var residual = dac_actual - dac_predicted;
    if (Math.abs(residual) > 15 && residual_perc > 15) {
      danger("the error for intensity " + dac_actual + " and light " + lights_array[i] + " is > 15 uE and > 15%.  Check calibration setup and recalibrate", output);
    }

    residuals[i].push(residual);
    residuals_perc[i].push(residual_perc);
    residuals_rsq[i].push(Math.abs(residual));
    actuals_rsq[i].push(dac_actual);
//    if (residual != 0) residualsAbs.push(Math.pow(residual),2);
//    output["light"+lights_array[i] + "_" +j + "_residual"] = residual;
//    output["light"+lights_array[i] + "_" +j + "_thisLight"] = thisLight;
//    output["light"+lights_array[i] + "_" +j + "_dac_actual"] = dac_actual;
//    output["light"+lights_array[i] + "_" +j + "_dac_predicted"] = dac_predicted;
  }
  output["residuals" + lights_array[i]] = residuals[i];
  output["residuals_perc" + lights_array[i]] = residuals_perc[i];
//  output["residualssqAll" + lights_array[i]] = residuals_rsq[i];
//  output["sum1" + lights_array[i]] = MathSUM(residuals_rsq[i]);
//  output["sum2" + lights_array[i]] = MathSUM(actuals_rsq[i]);
  var rsquared = MathROUND(1 - (MathSUM(residuals_rsq[i])/MathSUM(actuals_rsq[i])),5);
  output["model fit light " + lights_array[i]] = rsquared;
  if (rsquared < .98 && lights_array[i] != 3) {
    danger("r squared for light " + lights_array[i] + " is out of spec.  Check calibration setup and try again", output);
  }
  if (rsquared < .95 && lights_array[i] == 3) {
    danger("r squared for light " + lights_array[i] + " is out of spec.  Check calibration setup and try again", output);
  }
//  if (MathMAX(residuals_perc[i]) > .2) {
//    if (
//  }
}

output["toDevice"] += "-1+";

output["order"] = ["model fit light 1","model fit light 2","model fit light 3","model fit light 4","model fit light 7"];

return output;
{
  "time_offset": 300,
  "time": 1480515747844,
  "device_version": "1",
  "device_id": "d4:f5:00:00:00:00",
  "device_battery": 93,
  "device_firmware": "1.12",
  "firmware_version": "1.12",
  "device_time": 1478599640,
  "sample": [
    [
      {
        "time": 1480515747881,
        "protocol_id": 1,
        "message": [
          [
            "0",
            "0",
            ""
          ],
          [
            "prompt",
            "6",
            "0"
          ],
          [
            "prompt",
            "6",
            "0"
          ],
          [
            "prompt",
            "6",
            "0"
          ],
          [
            "prompt",
            "6",
            "3.97"
          ],
          [
            "prompt",
            "6",
            "13.92"
          ],
          [
            "prompt",
            "6",
            "25"
          ],
          [
            "prompt",
            "6",
            "36.1"
          ],
          [
            "prompt",
            "6",
            "47.32"
          ],
          [
            "prompt",
            "6",
            "58.5"
          ],
          [
            "prompt",
            "6",
            "69.41"
          ],
          [
            "prompt",
            "6",
            "80.37"
          ],
          [
            "prompt",
            "6",
            "91.05"
          ],
          [
            "prompt",
            "6",
            "101.33"
          ],
          [
            "prompt",
            "6",
            "111.44"
          ],
          [
            "prompt",
            "6",
            "121.44"
          ],
          [
            "prompt",
            "6",
            "131.37"
          ],
          [
            "prompt",
            "6",
            "141.09"
          ],
          [
            "prompt",
            "6",
            "150.64"
          ],
          [
            "prompt",
            "6",
            "160.33"
          ],
          [
            "prompt",
            "6",
            "169.92"
          ],
          [
            "prompt",
            "6",
            "179.33"
          ],
          [
            "prompt",
            "6",
            "188.6"
          ],
          [
            "prompt",
            "6",
            "197.77"
          ],
          [
            "prompt",
            "6",
            "206.8"
          ],
          [
            "prompt",
            "6",
            "412"
          ],
          [
            "prompt",
            "7",
            "609"
          ],
          [
            "prompt",
            "7",
            "0"
          ],
          [
            "prompt",
            "7",
            "0"
          ],
          [
            "prompt",
            "7",
            "0"
          ],
          [
            "prompt",
            "7",
            "0"
          ],
          [
            "prompt",
            "7",
            "0"
          ],
          [
            "prompt",
            "7",
            ".5"
          ],
          [
            "prompt",
            "7",
            "4.55"
          ],
          [
            "prompt",
            "7",
            "10.24"
          ],
          [
            "prompt",
            "7",
            "16.4"
          ],
          [
            "prompt",
            "7",
            "22.8"
          ],
          [
            "prompt",
            "7",
            "29.33"
          ],
          [
            "prompt",
            "7",
            "35.85"
          ],
          [
            "prompt",
            "7",
            "42.44"
          ],
          [
            "prompt",
            "7",
            "49.03"
          ],
          [
            "prompt",
            "7",
            "55.65"
          ],
          [
            "prompt",
            "7",
            "62.21"
          ],
          [
            "prompt",
            "7",
            "69.02"
          ],
          [
            "prompt",
            "7",
            "75.67"
          ],
          [
            "prompt",
            "7",
            "82.46"
          ],
          [
            "prompt",
            "7",
            "89.32"
          ],
          [
            "prompt",
            "7",
            "96.2"
          ],
          [
            "prompt",
            "7",
            "103.06"
          ],
          [
            "prompt",
            "7",
            "109.98"
          ],
          [
            "prompt",
            "7",
            "116.92"
          ],
          [
            "prompt",
            "7",
            "288.5"
          ],
          [
            "prompt",
            "7",
            "490.3"
          ]
        ],
        "data_raw": [
          21,
          21,
          21,
          21,
          21,
          22,
          21,
          21,
          21,
          22,
          22,
          20,
          20,
          21,
          20,
          20,
          21,
          20,
          20,
          21,
          21,
          20,
          19,
          18,
          18,
          18,
          19,
          21,
          21,
          21,
          20,
          20,
          18,
          21,
          20,
          19,
          21,
          21,
          19,
          21,
          21,
          19,
          20,
          21,
          19,
          20,
          21,
          19,
          19,
          20,
          19,
          19,
          22,
          21,
          19,
          21,
          21,
          19,
          21,
          22,
          19,
          21,
          22,
          19,
          21,
          21,
          22,
          19,
          20,
          21,
          22,
          19,
          19,
          21,
          21,
          20,
          19,
          21,
          21,
          19,
          19,
          21,
          21,
          22,
          19,
          20,
          21,
          22,
          19,
          19,
          21,
          21,
          19,
          19,
          19,
          21,
          20,
          21,
          20,
          19,
          19,
          20,
          22,
          21,
          22,
          19,
          19,
          22,
          21,
          21,
          21,
          20,
          18,
          19,
          21,
          21,
          22,
          22,
          19,
          19,
          21,
          21,
          18,
          19,
          22,
          22,
          22,
          21,
          21,
          20,
          18,
          19,
          19,
          23,
          21,
          21,
          20,
          21,
          19,
          18,
          18,
          21,
          21,
          22,
          21,
          21,
          20,
          17,
          18,
          20,
          19,
          19,
          22,
          21,
          21,
          19,
          19,
          20,
          21,
          20,
          18,
          21,
          21,
          22,
          19,
          19,
          22,
          22,
          20,
          19,
          20,
          21,
          22,
          20,
          19,
          22,
          21,
          20,
          18,
          19,
          18,
          21,
          20,
          18,
          21,
          21,
          19,
          18,
          21,
          21,
          18,
          19,
          20,
          21,
          19,
          21,
          21,
          19,
          19,
          21,
          21,
          18,
          19,
          21,
          20,
          19,
          22,
          21,
          18,
          19,
          21,
          18,
          22,
          21,
          18,
          22,
          21,
          19,
          19,
          22,
          19,
          19,
          20,
          20,
          18,
          21,
          21,
          17,
          21,
          21,
          17,
          23,
          21,
          19,
          21,
          21,
          18,
          20,
          21,
          19,
          18,
          21,
          20,
          18,
          21,
          21,
          19,
          21,
          20,
          19,
          19,
          19,
          19,
          21,
          19,
          20,
          22,
          19,
          22,
          21,
          18,
          22,
          21,
          18,
          21,
          20,
          18,
          21,
          20,
          19,
          21,
          18,
          20,
          20,
          19,
          20,
          19,
          22,
          21,
          19,
          21,
          19,
          18,
          21,
          19,
          21,
          20,
          19,
          21,
          19,
          22,
          21,
          19,
          20,
          19,
          19,
          21,
          18,
          21,
          21,
          21,
          19,
          20,
          19,
          21,
          21,
          19,
          21,
          19,
          22,
          21,
          19,
          21,
          19,
          22,
          21,
          18,
          21,
          18,
          21,
          21,
          19,
          21,
          18,
          21,
          20,
          21,
          21,
          18,
          21,
          21,
          17,
          20,
          18,
          22,
          20,
          20,
          21,
          19,
          21,
          18,
          21,
          19,
          21,
          20,
          19,
          21,
          17,
          21,
          20,
          19,
          21,
          18,
          21,
          17,
          20,
          19,
          21,
          20,
          19,
          19,
          20,
          18,
          20,
          18,
          22,
          21,
          21,
          21,
          19,
          21,
          19,
          21,
          18,
          20,
          19,
          22,
          20,
          19,
          21,
          19,
          21,
          18,
          21,
          19,
          21,
          20,
          21,
          20,
          19,
          19,
          20,
          19,
          21,
          19,
          20,
          17,
          20,
          18,
          21,
          18,
          21,
          19,
          20,
          19,
          21,
          19,
          21,
          19,
          21,
          20,
          19,
          20,
          19,
          20,
          19,
          21,
          19,
          20,
          18,
          20,
          19,
          20,
          19,
          20,
          19,
          20,
          19,
          21,
          19,
          20,
          18,
          20,
          18,
          21,
          19,
          20,
          19,
          22,
          18,
          21,
          18,
          20,
          18,
          20,
          18,
          20,
          18,
          21,
          18,
          20,
          17,
          20,
          17,
          21,
          18,
          21,
          18,
          20,
          18,
          21,
          19,
          21,
          19,
          20,
          18,
          20,
          18,
          20,
          18,
          20,
          19,
          20,
          21,
          19,
          21,
          19,
          22,
          19,
          21,
          19,
          22,
          19,
          21,
          19,
          19,
          18,
          20,
          17,
          20,
          18,
          20,
          19,
          20,
          19,
          19,
          19,
          19,
          22,
          19,
          21,
          19,
          21,
          18,
          21,
          17,
          21,
          18,
          20,
          18,
          19,
          21,
          18,
          19,
          17,
          19,
          18,
          21,
          18,
          19,
          19,
          19,
          21,
          19,
          19,
          17,
          19,
          18,
          21,
          18,
          20,
          19,
          19,
          22,
          19,
          20,
          18,
          20,
          17,
          19,
          21,
          20,
          19,
          20,
          18,
          19,
          18,
          19,
          19,
          20,
          20,
          19,
          20,
          18,
          19,
          18,
          21,
          19,
          18,
          21,
          18,
          19,
          17,
          21,
          17,
          21,
          22,
          19,
          20,
          17,
          17,
          20,
          18,
          19,
          21,
          18,
          19,
          17,
          20,
          18,
          19,
          20,
          19,
          20,
          18,
          19,
          20,
          18,
          20,
          17,
          19,
          18,
          20,
          21,
          18,
          20,
          17,
          20,
          19,
          18,
          19,
          19,
          19,
          19,
          17,
          20,
          18,
          19,
          20,
          19,
          19,
          18,
          19,
          21,
          18,
          19,
          17,
          19,
          21,
          18,
          20,
          18,
          19,
          21,
          18,
          20,
          18,
          19,
          20,
          19,
          17,
          19,
          19,
          18,
          20,
          19,
          19,
          19,
          18,
          20,
          22,
          17,
          20,
          18,
          19,
          19,
          17,
          19,
          19,
          19,
          19,
          18,
          20,
          19,
          19,
          18,
          17,
          20,
          20,
          18,
          18,
          19,
          19,
          17,
          19,
          21,
          17,
          20,
          18,
          18,
          19,
          18,
          19,
          19,
          17,
          19,
          21,
          17,
          19,
          18,
          19,
          19,
          17,
          19,
          19,
          17,
          20,
          20,
          18,
          20,
          17,
          19,
          18,
          19,
          19,
          18,
          19,
          19,
          17,
          19,
          20,
          17,
          19,
          21,
          17,
          19,
          18,
          18,
          19,
          17,
          19,
          19,
          17,
          19,
          20,
          17,
          19,
          19,
          16,
          20,
          16,
          17,
          15,
          16,
          18,
          15,
          17,
          18,
          15,
          17,
          17,
          15,
          17,
          18,
          15,
          18,
          19,
          15,
          18,
          17,
          15,
          18,
          18,
          15,
          17,
          17,
          15,
          18,
          18,
          15,
          15,
          13,
          14,
          15,
          15,
          13,
          16,
          16,
          13,
          14,
          15,
          13,
          14,
          14,
          13,
          13,
          15,
          15,
          12,
          15,
          16,
          13,
          15,
          15,
          12,
          15,
          15,
          13,
          13,
          15,
          15,
          23,
          20,
          21,
          22,
          20,
          21,
          21,
          20,
          20,
          22,
          22,
          19,
          22,
          23,
          19,
          22,
          22,
          20,
          20,
          21,
          19,
          21,
          22,
          22,
          19,
          21,
          23,
          18,
          22,
          22,
          23,
          19,
          22,
          22,
          19,
          21,
          22,
          19,
          20,
          21,
          21,
          20,
          23,
          22,
          20,
          21,
          22,
          20,
          21,
          23,
          21,
          20,
          23,
          23,
          20,
          22,
          22,
          20,
          21,
          20,
          21,
          22,
          23,
          19,
          21,
          23,
          20,
          21,
          21,
          19,
          21,
          22,
          20,
          20,
          22,
          23,
          20,
          22,
          23,
          19,
          22,
          22,
          20,
          20,
          22,
          23,
          20,
          21,
          23,
          20,
          22,
          22,
          21,
          21,
          23,
          23,
          20,
          22,
          22,
          20,
          22,
          21,
          20,
          21,
          22,
          23,
          19,
          22,
          23,
          20,
          22,
          22,
          21,
          20,
          23,
          23,
          19,
          23,
          23,
          21,
          22,
          20,
          21,
          22,
          23,
          20,
          22,
          22,
          21,
          22,
          22,
          21,
          20,
          23,
          23,
          19,
          22,
          23,
          20,
          22,
          22,
          20,
          20,
          23,
          23,
          20,
          22,
          23,
          19,
          21,
          21,
          23,
          23,
          20,
          22,
          23,
          21,
          22,
          22,
          21,
          21,
          23,
          23,
          20,
          22,
          22,
          21,
          21,
          23,
          23,
          21,
          22,
          23,
          21,
          22,
          23,
          20,
          21,
          23,
          20,
          23,
          22,
          21,
          21,
          23,
          23,
          19,
          23,
          23,
          20,
          21,
          23,
          22,
          20,
          22,
          22,
          21,
          20,
          23,
          23,
          20,
          22,
          23,
          23,
          19,
          22,
          22,
          21,
          21,
          19,
          23,
          23,
          21,
          21,
          23,
          23,
          20,
          22,
          23,
          22,
          20,
          23,
          22,
          21,
          21,
          23,
          23,
          21,
          21,
          23,
          23,
          21,
          21,
          23,
          22,
          21,
          23,
          23,
          21,
          23,
          20,
          21,
          23,
          23,
          20,
          22,
          23,
          23,
          21,
          23,
          23,
          23,
          20,
          22,
          23,
          23,
          20,
          22,
          23,
          23,
          20,
          22,
          23,
          22,
          21,
          22,
          22,
          21,
          20,
          21,
          23,
          23,
          24,
          21,
          22,
          23,
          24,
          20,
          21,
          23,
          23,
          21,
          22,
          23,
          22,
          21,
          19,
          23,
          23,
          22,
          19,
          23,
          22,
          22,
          21,
          22,
          23,
          22,
          21,
          21,
          23,
          23,
          22,
          21,
          23,
          23,
          23,
          21,
          22,
          23,
          25,
          21,
          22,
          23,
          22,
          21,
          20,
          22,
          23,
          25,
          19,
          21,
          23,
          23,
          22,
          20,
          23,
          23,
          23,
          21,
          22,
          23,
          23,
          22,
          21,
          23,
          23,
          25,
          21,
          21,
          23,
          23,
          21,
          20,
          23,
          23,
          24,
          21,
          21,
          23,
          23,
          25,
          21,
          21,
          23,
          23,
          22,
          22,
          23,
          23,
          25,
          21,
          22,
          23,
          23,
          22,
          21,
          22,
          23,
          23,
          22,
          21,
          23,
          23,
          25,
          21,
          22,
          23,
          23,
          26,
          21,
          21,
          23,
          23,
          24,
          21,
          23,
          23,
          23,
          21,
          22,
          23,
          23,
          21,
          20,
          23,
          23,
          24,
          22,
          20,
          22,
          23,
          23,
          22,
          22,
          23,
          24,
          25,
          21,
          22,
          23,
          23,
          24,
          22,
          23,
          23,
          23,
          24,
          21,
          24,
          25,
          22,
          22,
          23,
          23,
          24,
          22,
          21,
          23,
          24,
          24,
          21,
          20,
          23,
          23,
          23,
          25,
          22,
          22,
          23,
          23,
          25,
          22,
          21,
          23,
          23,
          23,
          21,
          21,
          22,
          23,
          24,
          23,
          24,
          22,
          21,
          23,
          24,
          23,
          24,
          21,
          21,
          23,
          24,
          23,
          22,
          21,
          23,
          23,
          23,
          25,
          23,
          21,
          22,
          23,
          23,
          25,
          21,
          22,
          23,
          24,
          24,
          25,
          22,
          20,
          23,
          22,
          23,
          24,
          21,
          21,
          23,
          24,
          23,
          25,
          21,
          20,
          23,
          24,
          23,
          25,
          21,
          21,
          23,
          23,
          24,
          25,
          22,
          21,
          22,
          23,
          23,
          24,
          25,
          21,
          23,
          22,
          23,
          24,
          23,
          26,
          22,
          22,
          23,
          23,
          23,
          25,
          22,
          21,
          23,
          23,
          24,
          24,
          23,
          21,
          22,
          23,
          23,
          23,
          24,
          23,
          21,
          22,
          23,
          24,
          23,
          25,
          22,
          21,
          22,
          23,
          25,
          23,
          24,
          21,
          21,
          23,
          23,
          24,
          24,
          25,
          22,
          21,
          22,
          24,
          23,
          24,
          25,
          22,
          23,
          23,
          22,
          23,
          24,
          24,
          23,
          25,
          23,
          22,
          22,
          25,
          24,
          24,
          25,
          22,
          21,
          21,
          22,
          24,
          23,
          24,
          26,
          23,
          21,
          22,
          23,
          24,
          25,
          24,
          25,
          22,
          22,
          22,
          23,
          25,
          25,
          23,
          24,
          25,
          22,
          21,
          22,
          23,
          23,
          24,
          25,
          23,
          26,
          23,
          21,
          23,
          24,
          25,
          26,
          24,
          25,
          22,
          22,
          22,
          22,
          22,
          24,
          24,
          25,
          25,
          24,
          26,
          24,
          22,
          23,
          23,
          25,
          25,
          24,
          23,
          25,
          25,
          23,
          22,
          21,
          25,
          25,
          25,
          25,
          25,
          25,
          24,
          22,
          22,
          22,
          23,
          24,
          25,
          24,
          25,
          26,
          24,
          23,
          22,
          22,
          23,
          23,
          24,
          24,
          24,
          25,
          26,
          22,
          22,
          22,
          22,
          24,
          25,
          23,
          25,
          23,
          25,
          25,
          23,
          24,
          23,
          25,
          24,
          25,
          25,
          26,
          23,
          23,
          22,
          22,
          23,
          24,
          24,
          25,
          25,
          23,
          25,
          25,
          24,
          23,
          21,
          22,
          23,
          24,
          24,
          26,
          25,
          24,
          26,
          25,
          25,
          26,
          27,
          27,
          27,
          27,
          27,
          27,
          27,
          28,
          29,
          26,
          25,
          25,
          25,
          25,
          26,
          26,
          27,
          27,
          28,
          28,
          27,
          27,
          28,
          28,
          28,
          26,
          25,
          32,
          30,
          30,
          29,
          28,
          28,
          29,
          29,
          30,
          31,
          31,
          31,
          31,
          30,
          30,
          31,
          32,
          32,
          32,
          29,
          29,
          29,
          28,
          28,
          28,
          29,
          29,
          28,
          30,
          31,
          20,
          20,
          21,
          21,
          22,
          21,
          21,
          21,
          22,
          21,
          22,
          23,
          23,
          21,
          20,
          19,
          19,
          20,
          18,
          19,
          19,
          20,
          21,
          21,
          22,
          21,
          22,
          22,
          21,
          22
        ]
      }
    ]
  ],
  "app_os": "linux",
  "app_name": "PhotosynQ",
  "app_version": "0.3.5",
  "app_device": "x86-64",
  "location": [
    "42.2779580",
    "-83.8180518"
  ],
  "ConsoleMacro": "263"
}
012409 pbi 160 low low res headshot
Created by

Greg Austic


Protocol connections:
5
Latest Update:
Nov 2016