#ifndef DEVICE_CTRL_GENERAL_LOADOMETER_H
#define DEVICE_CTRL_GENERAL_LOADOMETER_H
#include "loadometer.h"
#include "common/serial_port/serial_port.h"

namespace zsy
{
    /**
     * 通用地磅，使用串口和通用协议
     */
    class GeneralLoadometer final : public QObject, public Loadometer
    {
        Q_OBJECT
        /**
         * 串口
         */
        QSharedPointer<SerialPort> serialPort;

    public:
        explicit GeneralLoadometer(const LoadometerConfig &config);


        /**
         * 是否可用
         */
        bool canUse() const override;

        /**
         * 协议解析
         *
         * @param buf 待处理数据
         * @return 已处理的数据长度
         */
        uint32_t process(const std::vector<uint8_t> &buf);

        ~GeneralLoadometer() override = default;

    private
        Q_SLOTS:
        

        void onSperr();
    };
} // zsy

#endif // DEVICE_CTRL_GENERAL_LOADOMETER_H