LAPTOP-SNT8I5JK\Boounion
2025-09-08 3f000671e15acd2de87c8588d7f09c0dc103bd7b
SourceCode/Bond/Servo/CVacuumBake.cpp
@@ -334,6 +334,26 @@
         }
      }
      // FAC Data Report
      addFacDataReportStep(0x16589, 0xc4d, 1);
      /*
      {
         CEqReadStep* pStep = new CEqReadStep(0x16589, 133 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodeFacDataReport((CStep*)pFrom, pszData, size);
               }
               return -1;
            });
         pStep->setName(STEP_EQ_FAC_DATA_REPORT);
         pStep->setProp("Port", (void*)1);
         pStep->setWriteSignalDev(0xc4d);
         if (addStep(STEP_ID_FAC_DATA_REPORT, pStep) != 0) {
            delete pStep;
         }
      }
      */
      // process start/end report
      {
         CEqReadStep* pStep = new CEqReadStep(0x15D3F, 13 * 2,
@@ -459,4 +479,128 @@
      return (int)params.size();
   }
   int CVacuumBake::parsingProcessData(const char* pszData, size_t size, std::vector<CParam>& params)
   {
      return parsingParams(pszData, size, params);
   }
   int CVacuumBake::parsingSVData(const char* pszData, size_t size, std::vector<CParam>& params)
   {
      /*
      1   A腔工艺运行步骤   1Word   123456
         2   A腔体真空规值   FLOAT   123.456
         3   A腔温控表1当前值   2Word   12345.6
         4   A腔温控表2当前值   2Word   12345.6
         5   A腔温控表4当前值   2Word   12345.6
         6   A腔温控表5当前值   2Word   12345.6
         7   A腔温控表6当前值   2Word   12345.6
         8   A腔温控表7当前值   2Word   12345.6
         9   A腔烘烤剩余时间   1Word   12345.6
         10   B腔工艺运行步骤   1Word   123456
         11   B腔体真空规值   FLOBT   123.456
         12   B腔温控表1当前值   2Word   12345.6
         13   B腔温控表2当前值   2Word   12345.6
         14   B腔温控表4当前值   2Word   12345.6
         15   B腔温控表5当前值   2Word   12345.6
         16   B腔温控表6当前值   2Word   12345.6
         17   B腔温控表7当前值   2Word   12345.6
         18   B腔烘烤剩余时间   1Word   12345.6
   */
      ASSERT(pszData);
      if (size < 125) return 0;
      int i = 0, v;
      // 1.A腔工艺运行步骤
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
      params.push_back(CParam("A腔工艺运行步骤", "", this->getName().c_str(), v));
      i += 2;
      // 2.A腔体真空规值
      params.push_back(CParam("A腔体真空规值", "", this->getName().c_str(), (double)toFloat(&pszData[i])));
      i += 4;
      // 3.A腔温控表1当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表1当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 4.A腔温控表2当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表2当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 5.A腔温控表4当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表4当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 6.A腔温控表5当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表5当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 7.A腔温控表6当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表6当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 8.A腔温控表7当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("A腔温控表7当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 9.A腔烘烤剩余时间
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
      params.push_back(CParam("A腔烘烤剩余时间", "", this->getName().c_str(), v * 0.1f));
      i += 2;
      // 10.B腔工艺运行步骤
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
      params.push_back(CParam("B腔工艺运行步骤", "", this->getName().c_str(), v));
      i += 2;
      // 11.A腔体真空规值
      params.push_back(CParam("B腔体真空规值", "", this->getName().c_str(), (double)toFloat(&pszData[i])));
      i += 4;
      // 12.B腔温控表1当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表1当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 13.B腔温控表2当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表2当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 14.B腔温控表4当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表4当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 15.B腔温控表5当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表5当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 16.B腔温控表6当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表6当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 17.B腔温控表7当前值
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24;
      params.push_back(CParam("B腔温控表7当前值", "", this->getName().c_str(), v * 0.1f));
      i += 4;
      // 18.B腔烘烤剩余时间
      v = (pszData[i] & 0xff) | (pszData[i + 1] & 0xff) << 8;
      params.push_back(CParam("B腔烘烤剩余时间", "", this->getName().c_str(), v * 0.1f));
      i += 2;
      return (int)params.size();
   }
}