#ifndef AXIS_MANAGER_H
|
#define AXIS_MANAGER_H
|
|
#include <string>
|
#include <vector>
|
#include <mutex>
|
#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<std::string> getAxis(int axisId);
|
|
// »ñÈ¡ËùÓÐÖáÐÅÏ¢
|
std::vector<std::vector<std::string>> getAllAxes();
|
|
// ɾ³ýÖ¸¶¨Öá
|
bool deleteAxis(int axisId);
|
|
// Ìí¼Ó»ò¸üж¨Î»µã
|
bool savePosition(int axisId, const std::string& description, double positionValue,
|
const std::string& plcAddress);
|
|
// »ñÈ¡ÖáµÄËùÓж¨Î»µã
|
std::vector<std::vector<std::string>> getPositions(int axisId, int pageNumber, int pageSize);
|
|
// »ñÈ¡¶¨Î»µã×ÜÊý
|
int getTotalPositionCount(int axisId);
|
|
// ɾ³ýÖ¸¶¨¶¨Î»µã
|
bool deletePosition(int positionId);
|
|
// »ñÈ¡ËùÓеÄÖáID
|
std::vector<int> getUsedAxisIds();
|
|
// »ñÈ¡ËùÓÐÖáµÄÖáNO
|
std::vector<std::string> 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
|