docs: function parseException(exception) {
          function createErroniusDevice(dt, ct, ip, port, errorCode, errorMessage) {
              return {
                  'dt': dt,
                  'dtString': driver_const.DRIVER_DEVICE_TYPE_NAMES[dt],
                  'dtName': driver_const.DEVICE_TYPE_NAMES[dt],
  
                  'ct': ct,
                  'ctString': driver_const.DRIVER_CONNECTION_TYPE_NAMES[ct],
                  'ctName': driver_const.CONNECTION_TYPE_NAMES[ct],
  
                  'ip': ip,
                  'port': port,
  
                  'errorCode': exception.errorCode,
                  'errorMessage': exception.errorMessage,
  
                  'includeError': true,
              };
          }
  
          try {
              // console.log('Exception', exception);
  
              var errorCode = exception.errorCode;
              var errorMessage = exception.errorMessage;
  
              var erroniusDev = null;
              try {
                  var deviceHints = exception.initFailure.deviceHints;
                  // console.log('Device Hints', deviceHints);
  
                  var dt = driver_const.deviceTypes[deviceHints.knownDeviceType];
                  var ip = deviceHints.ip;
                  var port = deviceHints.port;
                  var ct = driver_const.connectionTypes[deviceHints.initProtocol];
                  if(ct == driver_const.LJM_CT_UDP && port == driver_const.LJM_WIFI_UDP_PORT) {
                      ct = driver_const.LJM_CT_WIFI_UDP;
                  } else if(ct == driver_const.LJM_CT_UDP && port == driver_const.LJM_ETH_UDP_PORT) {
                      ct = driver_const.LJM_CT_ETHERNET_UDP;
                  }
  
                  if(typeof(exception.initFailure.deviceHints.discovered) !== 'undefined') {
                      if(exception.initFailure.deviceHints.discovered) {
                          erroniusDev = createErroniusDevice(
                              dt, ct, ip, port, errorCode, errorMessage
                          );
                      }
                  }
              }
              catch(err) {
                  var dev = exception.device;
                  // console.log('Error device', dev);
                  erroniusDev = createErroniusDevice(
                      driver_const.deviceTypes[dev.deviceType],
                      driver_const.connectionTypes[dev.ljmConnectionType],
                      dev.ip,
                      dev.port,
                      errorCode,
                      errorMessage
                  );
              }
  
              // if(errorCodesToReport.indexOf(exception.errorCode) >= 0) {
              if(erroniusDev.includeError) {
                  // console.log('Saved Exception', exception);
                  erroniusDevices.push(erroniusDev);
              }
          } catch(err) {
  
          }
      }