From bea6407b376a4e426f0b120bae569fba6ab867db Mon Sep 17 00:00:00 2001 From: chenluhua1980 <Chenluhua@qq.com> Date: 星期六, 08 十一月 2025 17:55:47 +0800 Subject: [PATCH] 1.CMaster.cpp 第 1644/1667/1691 行在记录 SV 曲线时通过 getGlassFromSlot(0) 取玻璃,而各设备的 initSlots() 都是从 1 开始编号(例如 CBonder.cpp (line 408)、CVacuumBake.cpp (line 415) 等)。槽位 0 永远不存在,所以 pGlass 始终是 nullptr,pGlass->addSVData(...) 的分支从未执行。结果 SERVO::CGlass::m_svDatas 里没有任何曲线数据,GlassJson::ToPrettyString 生成的 pretty 字符串也就没有 sv_datas,导出 CSV 时自然读不到曲线。 同一段代码还有一个潜在 Bug:虽然判断了 channel - 1 < bonderTypes.size(),但真正索引却用的是 bonderTypes[channel]。索引偏移会导致数据类型错位,最后一个通道甚至可能越界。即使修正了槽位,这里也需要同步改成 bonderTypes[channel - 1](另外两处 vacuumbakeTypes、coolingTypes 也一样)。 --- SourceCode/Bond/Servo/CPageGraph1.h | 31 +++++++++++++++++++++++++++++-- 1 files changed, 29 insertions(+), 2 deletions(-) diff --git a/SourceCode/Bond/Servo/CPageGraph1.h b/SourceCode/Bond/Servo/CPageGraph1.h index f891489..ffd2aeb 100644 --- a/SourceCode/Bond/Servo/CPageGraph1.h +++ b/SourceCode/Bond/Servo/CPageGraph1.h @@ -34,6 +34,7 @@ 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); @@ -43,10 +44,36 @@ BOOL m_bIsRobotMoving; COLORREF m_crBkgnd; HBRUSH m_hbrBkgnd; + + // ===== 鏈哄櫒浜哄姩鐢荤浉鍏虫垚鍛樺彉閲� ===== + + // 鍔ㄧ敾鐩爣浣嶇疆锛堟満鍣ㄤ汉鐩爣浣嶇疆鏋氫妇锛� + 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; // ARM1 浠庝腑蹇冨悜宸�47, 鍚戜笂33 - POINT m_arm2Offset; // ARM2 浠庝腑蹇冨悜鍙�10, 鍚戜笂33 + + // 涓や釜鏈烘鑷傜浉瀵逛簬鏈哄櫒浜轰腑蹇冪殑鍋忕Щ锛堝儚绱犲潗鏍囷級 + POINT m_arm1Offset; + POINT m_arm2Offset; + // 瀵硅瘽妗嗘暟鎹� #ifdef AFX_DESIGN_TIME -- Gitblit v1.9.3