100 lines
3.0 KiB
C++
100 lines
3.0 KiB
C++
// HSI_Sevenocean_EF3.cpp : 定义 DLL 的初始化例程。
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "HSI.h"
|
|
#include "HSI_Sevenocean_EF3.h"
|
|
#include "HSI_Motion.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
|
|
//===========================================================================
|
|
HSI_Sevenocean_EF3* g_pHSI_Sevenocean_EF3 = nullptr;
|
|
|
|
pEventCallback HSI_Sevenocean_EF3::m_pEventCallback = nullptr;
|
|
//===========================================================================
|
|
HSI_Sevenocean_EF3::HSI_Sevenocean_EF3()
|
|
{
|
|
hWnd = nullptr;
|
|
bOfflineOnly = false;
|
|
TRACE0("HSI_Sevenocean_EF3 Constructor!\n");
|
|
}
|
|
|
|
//===========================================================================
|
|
HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
|
{
|
|
TRACE0("HSI_Sevenocean_EF3 Destructor!\n");
|
|
}
|
|
|
|
//===========================================================================
|
|
/**
|
|
* HSI 初始化
|
|
*
|
|
* \param _hWnd :消息传输句柄
|
|
* \param _bOfflineOnly :暂无用,默认 False
|
|
* \return
|
|
*/
|
|
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|
{
|
|
auto rStatus = HSI_STATUS_NORMAL;
|
|
hWnd = _hWnd;
|
|
bOfflineOnly = _bOfflineOnly;
|
|
return rStatus;
|
|
}
|
|
|
|
//===========================================================================
|
|
HSI_STATUS HSI_Sevenocean_EF3::GetMachineInfo(int& _NumMachineTypes)
|
|
{
|
|
auto rStatus = HSI_STATUS_NORMAL;
|
|
_NumMachineTypes = HSI_MACHINE_EF3; //机器类型EF3
|
|
return rStatus;
|
|
}
|
|
|
|
//===========================================================================
|
|
HSI_STATUS HSI_Sevenocean_EF3::SetEventCallback(pEventCallback _pCallback)
|
|
{
|
|
auto rStatus = HSI_STATUS_NORMAL;
|
|
if (_pCallback)
|
|
{
|
|
m_pEventCallback = _pCallback;
|
|
//sEvenProp.EventType = HSI_EVENT_FUNCTION;
|
|
//sEvenProp.EventID = HSI_EVENT_DEBUG_LOG;
|
|
//sEvenProp.EventCallbackID = 0;
|
|
//sEvenProp.EventResponse = HSI_EVENT_FUNCTION_OK;
|
|
//strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Set callback succeed!");
|
|
//EventCallback(sEvenProp);
|
|
|
|
// 2024.7.17 询问急停逻辑,metus层面不参与急停逻辑,只负责通知,具体逻辑由电气层决定
|
|
// 通过事件通知急停状态,metus层面没有弹窗,改由 中间件层面当运动急停后弹窗通知
|
|
//sEvenProp.Init();
|
|
//sEvenProp.EventType = HSI_EVENT_NOTIFY;
|
|
//sEvenProp.EventID = HSI_NOTIFY_EMERGENCY_STATE;
|
|
//sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
|
//strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "急停已触发!!!");
|
|
//EventCallback(sEvenProp);
|
|
|
|
//AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
|
}
|
|
return rStatus;
|
|
}
|
|
|
|
//===========================================================================
|
|
VOID HSI_Sevenocean_EF3::EventCallback(sHSIEventProperties& _sEventProp)
|
|
{
|
|
if (m_pEventCallback)
|
|
{
|
|
m_pEventCallback(_sEventProp.EventType, _sEventProp.EventResponse, _sEventProp.EventID, _sEventProp.EventData,
|
|
_sEventProp.EventCallbackID);
|
|
}
|
|
}
|
|
|
|
//===========================================================================
|
|
HSI_STATUS HSI_Sevenocean_EF3::Shutdown()
|
|
{
|
|
auto rStatus = HSI_STATUS_NORMAL;
|
|
return rStatus;
|
|
}
|