public static SixAxisCalibration ReadSixAxisCalibration(Report report) { report.Seek(20); var cal = new SixAxisCalibration(); cal.accOrigin = new Vector3(report.ReadInt16(), report.ReadInt16(), report.ReadInt16()); cal.accCoeff = new Vector3(report.ReadInt16(), report.ReadInt16(), report.ReadInt16()); cal.gyroOrigin = new Vector3(report.ReadInt16(), report.ReadInt16(), report.ReadInt16()); cal.gyroCoeff = new Vector3(report.ReadInt16(), report.ReadInt16(), report.ReadInt16()); return(cal); }
private void GetCalibrationData() { try { // Get stick's calibration infomation var report = CommandHelper.GetStickCalibration(this.Type, this.handle); this.stickCal = SPIReportReader.ReadStickCalibration(report, this.Type); Debug.Log(string.Format( "Stick calibration data: xMax:{0} xCenter:{1} xMin:{2} yMax:{3} yCenter:{4} yMin:{5} ", stickCal.xMax, stickCal.xCenter, stickCal.xMin, stickCal.yMax, stickCal.yCenter, stickCal.yMin)); } catch (Exception ex) { SetDefaultStickCalibratrion(); } try { // Get stick's parameter infomation, mainly deadzone var report = CommandHelper.GetStickParameters(Type, handle); this.stickPara = SPIReportReader.ReadStickParameter(report, Type); this.deadZone = stickPara.deadzone; Debug.Log(string.Format("Deadzone: {0}", deadZone)); } catch (Exception ex) { SetDefaultStickParameter(); Debug.LogError(ex); } try { // Get 6-axis sensor's calibration infomation var report = CommandHelper.GetSixAxisCalibration(handle); sixAxisCal = SPIReportReader.ReadSixAxisCalibration(report); for (int i = 0; i < 3; i++) { accCalCoeff[i] = (float)(1.0 / (sixAxisCal.accCoeff[i] - sixAxisCal.accOrigin[i])) * 4.0f * 9.8f; gyroCalCoeff[i] = (float)((sixAxisCal.gyroCoeff[i] / 10) / (sixAxisCal.gyroCoeff[i] - sixAxisCal.gyroOrigin[i])); } //Debug.Log(string.Format("6-Axis calibration data: accOrigin:{0} accCoeff:{1} gyroOrigin:{2} gyroCoeff:{3} ", //sixAxisCal.accOrigin, sixAxisCal.accCoeff, sixAxisCal.gyroOrigin, sixAxisCal.gyroCoeff)); } catch (Exception ex) { SetDefaultSixAxisCalibratrion(); Debug.LogError(ex); } }
private void SetDefaultSixAxisCalibratrion() { this.sixAxisCal = new SixAxisCalibration(); }