传感器校准设计模式

时间:2013-07-16 14:59:36

标签: java oop design-patterns sensor calibration

假设我有一些传感器。大多数传感器提供3个值,如加速度计。

public class GenericSensor {
    double x, y, z;
}

public class Accelerometer extends GenericSensor {
    double roll, pitch;
}

每个传感器都有点不同。这就是为什么有些人需要校准而其他人不需要校准。

我找不到很好的方法来校准值并将原始值保留用于其他目的。

如果我以后需要它,它应该可以很容易地扩展到其他传感器类型,如陀螺仪或磁力计。

我的第一次尝试是装饰校准。如果所有传感器都像GenericSensor一样延伸Accelerometer,我可以使用CalibratedGenericSensor( GenericSensor s )。但是,如果我只将Acceleromter对象提供给其他方法,则访问CalibratedGenericSensor计算出的成员值很麻烦。

这就是为什么我认为校准应该更早发生这样的事情。

public class GenericSensor {
    double x, y, z;
}

public class CalibratedGenericSensor extends GenericSensor {
    double calX, calY, calZ

    @Override
    double getX() { return calX; }

    @Override
    void setX( double x ){ super.setX(x); calX = calibrate(x); }

    double getRawX() { return super.getX(); }
}

public class Accelerometer extends CalibratedGenericSensor {
    double pitch, roll;
}

您对此有何看法?或者这样的事情是否存在我缺少的设计模式?

提前感谢您的时间。

1 个答案:

答案 0 :(得分:0)

这些课程将如何使用?尝试首先编写将调用该类的代码,然后您将知道API需要什么。

例如,GenericSensor可能需要showCalibrationView方法,允许用户校准它。