#ifndef AXIS_MANAGER_H #define AXIS_MANAGER_H #include #include #include #include "Database.h" // Öá¹ÜÀíÀà class AxisManager { public: // »ñÈ¡µ¥ÀýʵÀý static AxisManager& getInstance(); // ÉèÖÃÊý¾Ý¿âÁ¬½Ó void setDatabase(BL::Database* db); // ³õʼ»¯Öá±íºÍ¶¨Î»µã±í bool initializeTables(); // ³õʼ»¯Ä¬ÈÏÊý¾Ý bool initializeDefaultData(); // Ìí¼Ó»ò¸üÐÂÖáÐÅÏ¢ bool saveAxis(int axisId, const std::string& axisNo, const std::string& description, const std::string& startAddress, double jogDistance, double manualSpeed, double maxManualSpeed, double minManualSpeed, double autoSpeed, double maxAutoSpeed, double minAutoSpeed, double accelerationTime, double decelerationTime); // »ñÈ¡µ¥¸öÖáÐÅÏ¢ std::vector getAxis(int axisId); // »ñÈ¡ËùÓÐÖáÐÅÏ¢ std::vector> getAllAxes(); // ɾ³ýÖ¸¶¨Öá bool deleteAxis(int axisId); // Ìí¼Ó»ò¸üж¨Î»µã bool savePosition(int axisId, const std::string& description, double positionValue, const std::string& plcAddress); // »ñÈ¡ÖáµÄËùÓж¨Î»µã std::vector> getPositions(int axisId, int pageNumber, int pageSize); // »ñÈ¡¶¨Î»µã×ÜÊý int getTotalPositionCount(int axisId); // ɾ³ýÖ¸¶¨¶¨Î»µã bool deletePosition(int positionId); // »ñÈ¡ËùÓеÄÖáID std::vector getUsedAxisIds(); // »ñÈ¡ËùÓÐÖáµÄÖáNO std::vector getAllAxisNumbers(); private: // ˽Óй¹Ô캯ÊýºÍÎö¹¹º¯Êý AxisManager(); ~AxisManager(); // ½ûÖ¹¿½±´ºÍ¸³Öµ AxisManager(const AxisManager&) = delete; AxisManager& operator=(const AxisManager&) = delete; // Êý¾Ý¿âÁ¬½Ó BL::Database* m_pDB; // Ḭ̈߳²È«Ëø static std::mutex m_mutex; }; #endif // AXIS_MANAGER_H