123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #pragma once
- #include "CppSQLite3.h"
- #include "dt.h"
- #include <string>
- #include <windows.h>
- #include <mutex>
- #include "CDataBaseOperate.h"
- #ifdef HARDWARE_DLL
- #define DLL_HARDWARE_API __declspec(dllexport)
- #else
- #define DLL_HARDWARE_API
- #endif
- namespace ns_db
- {
- using namespace std;
- #define HARDWARE_DATABASE_NAME ROOT_PATH##"\\db\\Hardware.db"
- #define CAMERA_LIST_TABLE_NAME "CameraList"
- #define MODULE_LIST_TABLE_NAME "ModuleList"
- #define AXIS_LIST_TABLE_NAME "AxisList"
- #define DIGIT_IO_LIST_TABLE_NAME "DigitIoList"
- typedef struct _CAMERA_LIST_STRUCT : TABLE_INFO_BASE
- {
- string CameraName; //相机名称
- INT CameraType; //相机类型
- string Describe; //相机描述信息
- INT LampType; //灯光控制器类型
- string RedAddrs; //红光IP,或串口号
- INT RedLight; //红光通道号(-1 表示不用该种光)
- string GreenAddrs; //绿光IP,或串口号
- INT GreenLight; //绿光通道号(-1 表示不用该种光)
- string BlueAddrs; //蓝光IP,或串口号
- INT BlueLight; //蓝光通道号(-1 表示不用该种光)
- string PointAddrs; //点光IP,或串口号
- INT PointLight; //点光源通道号(-1 表示不用该种光)
- } CAMERA_LIST_STRUCT; //
- typedef struct _MODULE_LIST_STRUCT : TABLE_INFO_BASE
- {
- string ModuleType; //模组类型
- string ModuleName; //模组名称
- bool Enable; //是否启用
- }MODULE_LIST_STRUCT; //
- #pragma region Axis_XXX
- //马达轴的权限枚举
- enum AXIS_USE { DISABLE = 0, SLAVE = 1, MASTER = 2 };
- typedef struct _AXIS_LIST_STRUCT : TABLE_INFO_BASE
- {
- string ModuleType; //模组类型
- string AxisType; //轴类型
- string AxisName; //轴名称
- AXIS_USE Use; //轴状态
- bool EnaDiag; //诊断时是否使能
- UINT HomePriority; //回零优先顺序:0~3 数值越大,越先回零
- UINT HomeTime; //回零等待时间(秒)
- UINT FastTime; //快速等待时间(秒)
- UINT MediumTime; //中速等待时间(秒)
- UINT SlowTime; //慢速等待时间(秒)
- string strDescribe; //描述
- _AXIS_LIST_STRUCT()
- {
- ModuleType = "";
- AxisName = "";
- Use = AXIS_USE::DISABLE;
- AxisType = "";
- EnaDiag = true;
- HomePriority = 0;
- HomeTime = 0;
- FastTime = 0;
- MediumTime = 0;
- SlowTime = 0;
- strDescribe = "";
- }
- }AXIS_LIST_STRUCT;
- #pragma endregion
- #pragma region IO_XXX
- enum IO_TYPE { DI = 0, DO,DIS, DOS, AI, AO };
- enum DIGIT_IO_LEVEL { LOW = 0/*低电平*/, HIGH = 1/*高电平*/, NUL };
- typedef struct _IO_CONFIG_STRUCT : TABLE_INFO_BASE
- {
- string IoName; //IO名称
- bool Use; //IO是否使用
- string Describe; //描述
- string ModuleType; //模组类型
- string IoUtility; //轴类型
- IO_TYPE IoType; //IO类型
- DIGIT_IO_LEVEL StartingState; //OUTPUT IO当前状态 ,INPUT IO 该字段无用
- } IO_CONFIG_STRUCT; //IO定义
- #pragma endregion
- class DLL_HARDWARE_API CHardware : public CDataBaseOperate
- {
- public:
- CHardware();
- private:
- LONG SaveDB() override;
- LONG LoadDB() override;
- LONG SaveAxisConfig(string strTableName, std::vector<AXIS_LIST_STRUCT>* vecAxisConfig);
- LONG SaveIOConfig(string strTableName, std::vector<IO_CONFIG_STRUCT>* vecIOConfig);
- #pragma region IoList
- private:
- std::vector<IO_CONFIG_STRUCT> m_vecIoList;
- LONG LoadIoList();
- public:
- std::vector<IO_CONFIG_STRUCT> GetIoList() { return m_vecIoList; };
- #pragma endregion
- #pragma region AxisList
- private:
- std::vector<AXIS_LIST_STRUCT> m_vecAxisList;
- LONG LoadAxisList();
- public:
- std::vector<AXIS_LIST_STRUCT> GetAxisList() { return m_vecAxisList; };
- #pragma endregion
- #pragma region CameraList
- private:
- std::vector<CAMERA_LIST_STRUCT> m_vecCameraList;
- LONG LoadCameraList();
- public:
- std::vector<CAMERA_LIST_STRUCT> GetCameraList() {return m_vecCameraList;};
-
- #pragma endregion
- #pragma region ModuleList
- private:
- std::vector<MODULE_LIST_STRUCT> m_vecModuleList;
- LONG LoadModuleList();
- public:
- std::vector<MODULE_LIST_STRUCT> GetModuleList() { return m_vecModuleList; };
- LONG GetModuleByName(string strModuleName, MODULE_LIST_STRUCT& stModule);
- #pragma endregion
- private:
- std::vector<IO_CONFIG_STRUCT> m_vecIOConfig_Ejector;
- public:
- LONG GetIOEjectorConfig(std::vector<IO_CONFIG_STRUCT>& vecIOConfig);
- LONG SetIOEjectorConfig(std::vector<IO_CONFIG_STRUCT>* vecIOConfig);
- LONG GetIOEjectorConfig(const char* InteriorName, IO_CONFIG_STRUCT& stIOConfig);
- LONG SetIOEjectorConfig(const char* InteriorName, IO_CONFIG_STRUCT& stIOConfig);
- //LONG GetAxisBondHeadConfig(const char* InteriorName, AXIS_CONFIG_STRUCT& stAxisConfig);
- //LONG GetIOBondHeadConfig(const char* InteriorName, IO_CONFIG_STRUCT& stIOConfig);
- };
- }
|