LAPTOP-SNT8I5JK\Boounion
2025-05-28 5b6e648814aa829706cb94e6c44766ee9a6d9f12
SourceCode/Bond/Servo/Model.cpp
@@ -5,6 +5,7 @@
#include "ToolUnits.h"
#include "CEqAlarmStep.h"
#include "AlarmManager.h"
#include "CGlassPool.h"
CModel::CModel()
@@ -19,7 +20,18 @@
IObservable* CModel::getObservable()
{
   if (m_pObservable == nullptr) {
      m_pObservable = RX_AllocaObservable([&](IObservableEmitter* e) -> void {
         m_pObservableEmitter = e;         // 保存发射器
      });
   }
   return m_pObservable;
}
SERVO::CMaster& CModel::getMaster()
{
   return m_master;
}
void CModel::setWorkDir(const char* pszWorkDir)
@@ -40,6 +52,9 @@
   CString strSoftRev = _T("1.0.2");
   // CGlassPool
   m_glassPool.initPool();
   // Log
   CString strLogDir;
@@ -53,11 +68,6 @@
   CLog::GetLog()->SetLogsDir(strLogDir);
   CLog::GetLog()->SetEquipmentId((LPTSTR)(LPCTSTR)strUnitId);
   LOGI("\r\n\r\n~~~ Prog Start! ~~~");
   m_pObservable = RX_AllocaObservable([&](IObservableEmitter* e) -> void {
      m_pObservableEmitter = e;         // 保存发射器
   });
   SECSListener listener;
@@ -93,6 +103,10 @@
   SERVO::MasterListener masterListener;
   masterListener.onMasterStateChanged = [&](void* pMaster, SERVO::MASTERSTATE state) -> void {
      LOGI("<CModel>Master state changed(%d)", (int)state);
      notify(RX_CODE_MASTER_STATE_CHANGED);
   };
   masterListener.onEqAlive = [&](void* pMaster, SERVO::CEquipment* pEquipment, BOOL bAlive) -> void {
      LOGI("<CModel>Equipment onAlive:%s(%s).\n", pEquipment->getName().c_str(),
         bAlive ? _T("ON") : _T("OFF"));
@@ -152,6 +166,10 @@
   masterListener.onEqVcrEventReport = [&](void* pMaster, SERVO::CEquipment* pEquipment, SERVO::CVcrEventReport* pReport) {
      LOGE("<CModel>onEqVcrEventReport.");
   };
   masterListener.onEqDataChanged = [&](void* pMaster, SERVO::CEquipment* pEquipment, int code) {
      LOGE("<CModel>onEqDataChanged.");
      notifyPtr(RX_CODE_EQ_DATA_CHANGED, pEquipment);
   };
   m_master.setListener(masterListener);
@@ -177,6 +195,7 @@
   m_hsmsPassive.term();
   CLog::GetLog()->SetOnLogCallback(nullptr);
   m_master.term();
   m_glassPool.term();
   return 0;
}