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/CPageGraph1.h |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/SourceCode/Bond/Servo/CPageGraph1.h b/SourceCode/Bond/Servo/CPageGraph1.h
index 405af87..1d6f9b8 100644
--- a/SourceCode/Bond/Servo/CPageGraph1.h
+++ b/SourceCode/Bond/Servo/CPageGraph1.h
@@ -1,12 +1,24 @@
 锘�#pragma once
 #include "ServoGraph.h"
+#include "ServoCommo.h"
 
+namespace SERVO {
+	class CEquipment;
+	class CGlass;
+}
 
 enum DeviceStatus {
 	ONLINE,       // 鍦ㄧ嚎
 	OFFLINE,      // 绂荤嚎
+	OCCUPIED      // 鏈夌墖锛堝崰鐢級
 };
 
+struct RobotPositionMapping {
+	SERVO::ROBOT_POSITION position;
+	float percentage;
+	float angle;
+	int arm; // 0 琛ㄧず ARM1锛�1 琛ㄧず ARM2
+};
 
 // CPageGraph1 瀵硅瘽妗�
 
@@ -20,10 +32,23 @@
 
 
 public:
+	std::string GetConfigPath();
 	void InitRxWindows();
 	void UpdateDeviceStatus(int id, DeviceStatus status);
 	void UpdateRobotPosition(float percentage);
 	void RotateRobot(float angleInDegrees);
+	void BindEquipmentToGraph();
+	void MoveRobotToPosition(SERVO::ROBOT_POSITION position);
+	void StartRobotMoveToPosition(SERVO::ROBOT_POSITION position);
+	POINT LoadArmOffset(const std::string& armName);
+	void SaveArmOffset(const std::string& armName, const POINT& pt);
+
+	void UpdateSlotBars();
+	void BuildSlotColors(SERVO::CEquipment* pEq, std::vector<COLORREF>& colors);
+	COLORREF GetSlotColor(SERVO::CGlass* pGlass, BOOL isProcessing);
+
+	void ApplySlotBarTestPattern(int mode);
+	void UpdateLegendPosition();
 
 private:
 	IObserver* m_pObserver;
@@ -31,6 +56,37 @@
 	BOOL m_bIsRobotMoving;
 	COLORREF m_crBkgnd;
 	HBRUSH m_hbrBkgnd;
+	int m_slotBarTestMode;
+
+	// ===== 鏈哄櫒浜哄姩鐢荤浉鍏虫垚鍛樺彉閲� =====
+
+	// 鍔ㄧ敾鐩爣浣嶇疆锛堟満鍣ㄤ汉鐩爣浣嶇疆鏋氫妇锛�
+	SERVO::ROBOT_POSITION m_targetRobotPosition;
+
+	// 鍔ㄧ敾璧峰鍜岀洰鏍� X 鍧愭爣锛堟按骞充綅绉伙級
+	int m_nRobotMoveStartX;
+	int m_nRobotMoveEndX;
+
+	// 鍔ㄧ敾姝ユ暟鎺у埗锛堟�绘鏁� & 褰撳墠姝ワ級
+	int m_nRobotMoveSteps;          // 鍔ㄧ敾鎬绘鏁帮紙鎺у埗鍔ㄧ敾閫熷害锛�
+	int m_nRobotMoveCurrentStep;    // 褰撳墠鍔ㄧ敾姝ユ暟杩涘害
+
+	// 鍔ㄧ敾璧峰鍜岀洰鏍囪搴︼紙鏃嬭浆瑙掑害锛屽崟浣嶏細搴︼級
+	float m_nRobotMoveStartAngle;   // 璧峰瑙掑害
+	float m_nRobotMoveEndAngle;     // 鐩爣瑙掑害锛堟棆杞搴︼級
+
+	// ===== 鏈哄櫒浜虹姸鎬佺浉鍏虫垚鍛樺彉閲� =====
+
+	// 涓婁竴娆″凡瀹屾垚鐨勪綅缃紙鐢ㄤ簬鍒ゆ柇鏄惁闇�瑕佺Щ鍔級
+	SERVO::ROBOT_POSITION m_lastRobotPosition;
+
+	// 涓婁竴娆″凡鏇存柊鐨勬満鍣ㄤ汉 ARM 鍗犵敤鐘舵�侊紙涓や釜鏈烘鑷傦級
+	BOOL m_lastArmState[2];
+
+	// 涓や釜鏈烘鑷傜浉瀵逛簬鏈哄櫒浜轰腑蹇冪殑鍋忕Щ锛堝儚绱犲潗鏍囷級
+	POINT m_arm1Offset;
+	POINT m_arm2Offset;
+
 
 // 瀵硅瘽妗嗘暟鎹�
 #ifdef AFX_DESIGN_TIME

--
Gitblit v1.9.3