From bc7f1c4e028e69be51079b59dae4ae5c4d43f5bb Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期六, 31 一月 2026 21:54:56 +0800
Subject: [PATCH] 1.状态指示图,目前灰色表示掉线,绿色表示在线。增加Slot的小点表示有没有料,及加工状态 。 2.增加图示

---
 SourceCode/Bond/Servo/ServoGraph.h |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/ServoGraph.h b/SourceCode/Bond/Servo/ServoGraph.h
index a5ca74f..4fcc730 100644
--- a/SourceCode/Bond/Servo/ServoGraph.h
+++ b/SourceCode/Bond/Servo/ServoGraph.h
@@ -62,6 +62,11 @@
 #define HMGRAPH_HT_NOWHERE			0x1
 #define HMGRAPH_HT_ITEM				0x2
 
+enum class SlotBarPos {
+	None = 0,
+	Top,
+	Bottom
+};
 
 class CServoGraph
 {
@@ -75,6 +80,7 @@
 		HBITMAP hBitmap;
 		int bmWidth;
 		int bmHeight;
+		float angle;
 	} IMAGE;
 
 
@@ -93,6 +99,8 @@
 			this->box2BackgroundColor = RGB(0, 255, 255);;
 			this->box2FrameColor = RGB(255, 255, 0);;
 			this->bBox2Visible = FALSE;
+			this->m_pData = nullptr;
+			this->slotBarPos = SlotBarPos::None;
 		};
 		~INDICATEBOX() {};
 
@@ -109,6 +117,9 @@
 		COLORREF box2FrameColor;
 		BOOL bBox2Visible;
 		std::vector<void*> m_contexts;
+		void* m_pData;
+		SlotBarPos slotBarPos;
+		std::vector<COLORREF> slotColors;
 	};
 
 	class INDICATEBKGND
@@ -141,9 +152,11 @@
 	LRESULT OnTimer(WPARAM wParam, LPARAM lParam);
 	LRESULT OnPaint(WPARAM wParam, LPARAM lParam);
 	LRESULT OnMouseMove(WPARAM wParam, LPARAM lParam);
+	LRESULT OnSize(WPARAM wParam, LPARAM lParam);
 	LRESULT OnLButtonDown(WPARAM wParam, LPARAM lParam);
 
 public:
+	void Invalidata();
 	void AddImage(int id, char* pszPath, int x, int y);
 	void AddIndicateBox(int id, int x, int y, int width);
 	void AddIndicateBox(int id, int x, int y, int width,
@@ -153,6 +166,8 @@
 	BOOL RemoveIndicateBoxAllContext(int id);
 	const std::vector<void*>& GetIndicateBoxContexts(int id);
 	bool IsIndicateBoxContextsEmpty(int id);
+	void SetIndicateBoxData(int id, void* pData);
+	void* GetIndicateBoxData(int id);
 	void ShowIndicateBoxInterior(int id, COLORREF color);
 	void HideIndicateBoxInterior(int id);
 	CServoGraph::INDICATEBOX* GetIndicateBox(int id);
@@ -166,6 +181,17 @@
 	BOOL GetIndicateBoxRect(int id, LPRECT lprcBox);
 	void SetBoxText(int id, const char* pszText, const char* pszTooltip);
 	HWND GetSafeWnd();
+	void UpdateImageCoordinates(int id, int newX, int newY);
+	void UpdateIndicateBoxCoordinates(int id, int newX, int newY);
+	void UpdateImageAngle(int id, float angle);
+	void UpdateIndicateBox1Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor1, COLORREF newFrameColor2);
+	void UpdateIndicateBox2Colors(int id, COLORREF newBackgroundColor, COLORREF newFrameColor);
+	void SetIndicateBoxSlotBarPosition(int id, SlotBarPos pos);
+	void SetIndicateBoxSlotColors(int id, const std::vector<COLORREF>& colors);
+	void SetSlotBarSize(int size);
+
+private:
+	void DrawImage(HDC hMemDC, IMAGE& item);
 
 private:
 	HWND		m_hWnd;
@@ -178,6 +204,7 @@
 	std::vector<INDICATEBKGND> m_indicateBkgnds;
 	void* m_pHighItem;
 	HWND m_hWndTooltip;
+	int m_slotBarSize;
 };
 
 #endif // !defined(AFX_EQUIPMENTGRAPH_H__FBB8916A_DE77_4EA3_9C21_E51E6B06194C__INCLUDED_)

--
Gitblit v1.9.3