package com.imdroid.sideslope.calc;

import com.imdroid.sideslope.bd.Tilt;
import com.imdroid.sideslope.message.D341LocationMessage;

import java.time.LocalDateTime;

public interface GNSSDataCalcService {
    /**
     * 计算单条GNSS数据
     *
     * @param message GNSS数据
     * @param completeWhenIdle 是否根据空闲时间判断本轮结束
     * @return x,y,z三轴数据
     */
    double[] calcSingle(D341LocationMessage message, boolean completeWhenIdle);

    /**
     * 单轮解算结束，计算平滑值
     */
    void calSingleDone(String deviceId, Integer tenantId, LocalDateTime resultTime);
    /**
     * 根据GNSS数据的中间结果，计算出最终结果
     *
     * @param deviceId 设备id
     * @return x,y,z三轴数据
     */
    //double[] calcResult(String deviceId,double[] b562Xyz, double[] tiltXyz);

    /**
     * 根据GNSS数据的中间结果，计算Tilt的平均值
     * @param deviceid 设备id
     * @return Tilt
     */
    Tilt calcAvgTilt(String deviceid);
}
