mrDarker
6 天以前 829fe6c6bc33d53fda9c31fd45a37e1df87befff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#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