#ifndef CPROCESS_LASERPOWERCALIPI_H
#define CPROCESS_LASERPOWERCALIPI_H

#include "cmprocess.h"
#include "cprocess_laserpowercali.h"
/*!
 * \brief The CProcess_LaserPowerCali class
 * 功率测试
 */
#ifndef CALIBLASERPOWER_PICK_G2
#define CALIBLASERPOWER_PICK_G2
#endif

class CProcess_LaserPowerCaliPI : public CProcess_LaserPowerCali{
public:
	CProcess_LaserPowerCaliPI(const QString& name, int32_t id
                            , int32_t iLaserPathID);
public:
    /**
     * \brief 测量功率前操作.
     *
     * \param iFreq
     * \param dWidth
     */
    void before_cali_power(int iFreq, int iEpulse, double dWidth);
    /**
     * \brief 测量功率.
     *
     * \param iFreq
     * \param dWidth
     * \param iStep
     */
    void cali_power(int iFreq, int iEpulse, double dWidth, int iStep);
    /**
     * \brief 测量功率后操作.
     *
     * \param iFreq
     * \param dWidth
     */
    void after_cali_power(int iFreq, int iEpulse, double dWidth);

    /**
     * \brief 检查功率偏差.
     *
     * \param iFreq
     * \param dWidth
     * \param dRealPower
     * \param report
     */
    void check_power_diff(int iFreq, int iEpulse, double dWidth, double dRealPower, bool report);
    /**
     * \brief 找最大功率-前置操作.
     *
     * \param iFreq
     * \param dWidth
     */
    void before_cali_MaxPower(int iFreq, double dWidth);
    void cali_MaxPower(int iFreq, double dWidth, int iStep);
    void after_cali_MaxPower(int iFreq, double dWidth);
};

#endif // CPROCESS_LASERPOWERCALI_H
