You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TwoLaserHead-PushJig/LaiPuLaser/DlgSW_XL_Flow.cpp

801 lines
24 KiB
C++

#include "stdafx.h"
#include "LaiPuLaser.h"
#include "DlgSW_XL_Flow.h"
#include "afxdialogex.h"
#include "Program_SZ_XL.h"
#include "DeviceState.h"
#include "CommonFlowMgr.h"
#include "ProgramCutMgr.h"
#include "ProductMgr.h"
#include "MsgBox.h"
#include "MarkParMgr.h"
#include "PropertieMgr.h"
#include "ProgramCutMgr.h"
#include "ObjComponentMgr.h"
#include "WorkTime.h"
#include "MarkAreaMgr.h"
#include "WorkFileMgr.h"
#include "GlobalFunction.h"
#include "DlgMarkArea.h"
#include "AuthorityMgr.h"
#include "DlgAuthorityMgr.h"
#include "DlgAdjustObjPos.h"
#include "ClientMgr.h"
#include "FileMgr.h"
#include "CameraHawkvis.h"
#include "SmartArchive.h"
IMPLEMENT_DYNAMIC(CDlgSW_XL_Flow, CDialogEx)
BEGIN_MESSAGE_MAP(CDlgSW_XL_Flow, CDialogEx)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_START_BTN_1, &CDlgSW_XL_Flow::OnBnClickedStartBtn1)
ON_BN_CLICKED(IDC_LOAD_BTN_1, &CDlgSW_XL_Flow::OnBnClickedLoadBtn1)
ON_BN_CLICKED(IDC_WAIT_BTN_1, &CDlgSW_XL_Flow::OnBnClickedWaitBtn1)
ON_BN_CLICKED(IDC_CATCH_MARK_BTN_1, &CDlgSW_XL_Flow::OnBnClickedCatchMarkBtn1)
ON_BN_CLICKED(IDC_LASER_BTN_1, &CDlgSW_XL_Flow::OnBnClickedLaserBtn1)
ON_BN_CLICKED(IDC_UNLOAD_BTN_1, &CDlgSW_XL_Flow::OnBnClickedUnloadBtn1)
ON_BN_CLICKED(IDC_START_BTN_2, &CDlgSW_XL_Flow::OnBnClickedStartBtn2)
ON_BN_CLICKED(IDC_LOAD_BTN_2, &CDlgSW_XL_Flow::OnBnClickedLoadBtn2)
ON_BN_CLICKED(IDC_WAIT_BTN_2, &CDlgSW_XL_Flow::OnBnClickedWaitBtn2)
ON_BN_CLICKED(IDC_CATCH_MARK_BTN_2, &CDlgSW_XL_Flow::OnBnClickedCatchMarkBtn2)
ON_BN_CLICKED(IDC_LASER_BTN_2, &CDlgSW_XL_Flow::OnBnClickedLaserBtn2)
ON_BN_CLICKED(IDC_UNLOAD_BTN_2, &CDlgSW_XL_Flow::OnBnClickedUnloadBtn2)
ON_BN_CLICKED(IDC_MANUAL_LOAD_BTN_1, &CDlgSW_XL_Flow::OnBnClickedManualLoadBtn1)
ON_BN_CLICKED(IDC_MANUAL_LOAD_BTN_2, &CDlgSW_XL_Flow::OnBnClickedManualLoadBtn2)
ON_BN_CLICKED(IDC_INIT_DEVICE_BTN, &CDlgSW_XL_Flow::OnBnClickedInitDeviceBtn)
ON_BN_CLICKED(IDC_OPEN_DXF, &CDlgSW_XL_Flow::OnBnClickedOpenDxf)
ON_BN_CLICKED(IDC_BOOL_SEL_MARK, &CDlgSW_XL_Flow::OnBnClickedBoolSelMark)
ON_BN_CLICKED(IDC_TRACK1_PRODUCT_OPEN_CLOSE, &CDlgSW_XL_Flow::OnBnClickedTrack1ProductCarrierOpenClose)
ON_BN_CLICKED(IDC_TRACK2_PRODUCT_OPEN_CLOSE, &CDlgSW_XL_Flow::OnBnClickedTrack2ProductCarrierOpenClose)
ON_BN_CLICKED(IDC_SAVE_PAR, &CDlgSW_XL_Flow::OnBnClickedSavePar)
ON_BN_CLICKED(IDC_SPECIAL_OBJ, &CDlgSW_XL_Flow::OnBnClickedSpecialObj)
ON_BN_CLICKED(IDC_OPEN_MAK, &CDlgSW_XL_Flow::OnBnClickedOpenMak)
ON_BN_CLICKED(IDC_SAVE_MAK, &CDlgSW_XL_Flow::OnBnClickedSaveMak)
ON_BN_CLICKED(IDC_MARK_AREA, &CDlgSW_XL_Flow::OnBnClickedMarkArea)
ON_BN_CLICKED(IDC_TRACK2_CLEAR_TIMES, &CDlgSW_XL_Flow::OnBnClickedTrack2ClearTimes)
ON_BN_CLICKED(IDC_TRACK1_CLEAR_TIMES, &CDlgSW_XL_Flow::OnBnClickedTrack1ClearTimes)
ON_BN_CLICKED(IDC_THROW_EDGE_BTN_2, &CDlgSW_XL_Flow::OnBnClickedThrowEdgeBtn2)
ON_BN_CLICKED(IDC_THROW_EDGE_BTN_1, &CDlgSW_XL_Flow::OnBnClickedThrowEdgeBtn1)
ON_BN_CLICKED(IDC_MANUAL_OP_CHECK, &CDlgSW_XL_Flow::OnBnClickedManualOpCheck)
ON_BN_CLICKED(IDC_CIRCLE_STOP_CHECK2, &CDlgSW_XL_Flow::OnBnClickedCircleStopCheck2)
ON_BN_CLICKED(IDC_CIRCLE_STOP_CHECK1, &CDlgSW_XL_Flow::OnBnClickedCircleStopCheck1)
ON_BN_CLICKED(IDC_LOGIN_BTN, &CDlgSW_XL_Flow::OnBnClickedLoginBtn)
ON_BN_CLICKED(IDC_ADJUST_OBJ_POS, &CDlgSW_XL_Flow::OnBnClickedAdjustObjPos)
ON_BN_CLICKED(IDC_CHECK3, &CDlgSW_XL_Flow::OnBnClickedbMarkSelObj)
ON_BN_CLICKED(IDC_BOOL_SEL_MARK2, &CDlgSW_XL_Flow::OnBnClickedAdjustProductPos)
ON_BN_CLICKED(IDC_CHECK4, &CDlgSW_XL_Flow::OnBnClickedDisableServer)
END_MESSAGE_MAP()
#define UPDATE_INFO_TIMER 1
#define UPDATE_INFO_DELAY 200
bool bTrack1ProductFlg = false;//<2F>н<EFBFBD><D0BD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>flg
bool bTrack2ProductFlg = false;//<2F>н<EFBFBD><D0BD><EFBFBD><EFBFBD>׿<EFBFBD><D7BF><EFBFBD>flg
bool bSaveLockFlg = false;
CDlgSW_XL_Flow::CDlgSW_XL_Flow(CWnd* pParent /*=NULL*/)
: m_Jig3PrtOft_x(0)
, m_Jig3PrtOft_y(0)
{
m_LaserSpeed =800;
m_OneObjMarkCnt = 1;//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
m_SpecialOneObjMarkCnt = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
m_MarkAreaCutCount = 1;
}
CDlgSW_XL_Flow::~CDlgSW_XL_Flow()
{
}
void CDlgSW_XL_Flow::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_START_BTN_1, m_StartBtn1);
DDX_Control(pDX, IDC_LOAD_BTN_1, m_LoadBtn1);
DDX_Control(pDX, IDC_MANUAL_LOAD_BTN_1, m_LoadEndBtn1);
DDX_Control(pDX, IDC_WAIT_BTN_1, m_WaitBtn1);
DDX_Control(pDX, IDC_CATCH_MARK_BTN_1, m_CatchMarkBtn1);
DDX_Control(pDX, IDC_LASER_BTN_1, m_CutBtn1);
DDX_Control(pDX, IDC_THROW_EDGE_BTN_1, m_ThrowEdgeBtn1);
DDX_Control(pDX, IDC_UNLOAD_BTN_1, m_UnloadBtn1);
DDX_Control(pDX, IDC_TRACK1_CLEAR_TIMES, m_ClearRecordBtn1);
DDX_Control(pDX, IDC_TRACK1_PRODUCT_OPEN_CLOSE, m_OpenCloseProductBtn1);
DDX_Control(pDX, IDC_START_BTN_2, m_StartBtn2);
DDX_Control(pDX, IDC_LOAD_BTN_2, m_LoadBtn2);
DDX_Control(pDX, IDC_MANUAL_LOAD_BTN_2, m_LoadEndBtn2);
DDX_Control(pDX, IDC_WAIT_BTN_2, m_WaitBtn2);
DDX_Control(pDX, IDC_CATCH_MARK_BTN_2, m_CatchMarkBtn2);
DDX_Control(pDX, IDC_LASER_BTN_2, m_CutBtn2);
DDX_Control(pDX, IDC_THROW_EDGE_BTN_2, m_ThrowEdgeBtn2);
DDX_Control(pDX, IDC_UNLOAD_BTN_2, m_UnloadBtn2);
DDX_Control(pDX, IDC_TRACK2_CLEAR_TIMES, m_ClearRecordBtn2);
DDX_Control(pDX, IDC_TRACK2_PRODUCT_OPEN_CLOSE, m_OpenCloseProductBtn2);
DDX_Control(pDX, IDC_INIT_DEVICE_BTN, m_InitDeviceBtn);
DDX_Control(pDX, IDC_BOOL_SEL_MARK, m_SelWorkBtn);
DDX_Control(pDX, IDC_OPEN_DXF, m_OpenDxfBtn);
DDX_Control(pDX, IDC_OPEN_MAK, m_OpenMarkBtn);
DDX_Control(pDX, IDC_SAVE_MAK, m_SaveMarkBtn);
DDX_Control(pDX, IDC_SPECIAL_OBJ, m_SetSpecialObjBtn);
DDX_Control(pDX, IDC_SAVE_PAR, m_SetParBtn);
DDX_Control(pDX, IDC_MARK_AREA, m_MarkAreaBtn);
DDX_Control(pDX, IDC_LOGIN_BTN, m_LoginBtn);
DDX_Control(pDX, IDC_ADJUST_OBJ_POS, m_AdjustObjPosBtn);
DDX_Text(pDX, IDC_CUT_SPEED, m_LaserSpeed);
DDX_Text(pDX, IDC_CUT_CNT, m_OneObjMarkCnt);
DDX_Text(pDX, IDC_SPECIAL_CUT_CNT, m_SpecialOneObjMarkCnt);
DDX_Text(pDX, IDC_AREA_CUT_CNT, m_MarkAreaCutCount);
DDX_Text(pDX, IDC_CUT_OFFSET_X, m_Jig1PrtOft_x);
DDX_Text(pDX, IDC_CUT_OFFSET_Y, m_Jig1PrtOft_y);
DDX_Control(pDX, IDC_BOOL_SEL_MARK2, m_SetMarkPosBtn);
DDX_Text(pDX, IDC_CUT_OFFSET_X2, m_Jig3PrtOft_x);
DDX_Text(pDX, IDC_CUT_OFFSET_Y2, m_Jig3PrtOft_y);
}
BOOL CDlgSW_XL_Flow::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_OpenDxfBtn.SetUpColor(RGB_GREEN1);
m_OpenMarkBtn.SetUpColor(RGB_GREEN1);
m_SaveMarkBtn.SetUpColor(RGB_GREEN1);
m_SetSpecialObjBtn.SetUpColor(RGB_GREEN1);
m_SetMarkPosBtn.SetUpColor(RGB_GREEN1);
m_OpenCloseProductBtn1.SetUpColor(RGB_GREEN1);
m_OpenCloseProductBtn2.SetUpColor(RGB_GREEN1);
m_ClearRecordBtn1.SetUpColor(RGB_GREEN1);
m_ClearRecordBtn2.SetUpColor(RGB_GREEN1);
m_SetParBtn.SetUpColor(RGB_GREEN1);
m_MarkAreaBtn.SetUpColor(RGB_GREEN1);
m_AdjustObjPosBtn.SetUpColor(RGB_GREEN1);
m_LoginBtn.SetUpColor(RGB_RED);
SetTimer(UPDATE_INFO_TIMER,UPDATE_INFO_DELAY,NULL);
UpdateData(FALSE);
return TRUE;
}
void CDlgSW_XL_Flow::OnTimer(UINT nIDEvent)
{
if(nIDEvent == UPDATE_INFO_TIMER)
{
//KillTimer(UPDATE_INFO_TIMER);
UpdateDlgInfo();
//SetTimer(UPDATE_INFO_TIMER,UPDATE_INFO_DELAY,NULL);
}
static bool bExe = true;
static int Times = 0;
if (gTrackWorkFlow1.IsTrackIdle()&&gTrackWorkFlow2.IsTrackIdle())
{
if (bExe)
{
Times++;
if (Times>300)
{
bExe = false;
Times = 0;
gTrackWorkFlow1.SendAutoStartFlg(false);
}
}
}
else
{
Times = 0;
bExe = true;
}
CDialog::OnTimer(nIDEvent);
}
#if 1
//<2F><><EFBFBD>¶Ի<C2B6><D4BB><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Ϣ
void CDlgSW_XL_Flow::UpdateDlgInfo()
{
if(gExitApp)
return;
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ť
CDeviceState &DeviceState = CDeviceState::GetInstance();
bool bDeviceIni = DeviceState.IsDeviceIni();
if(bDeviceIni)
{
m_InitDeviceBtn.SetUpColor(RGB_GREEN);
}
else
{
m_InitDeviceBtn.SetUpColor(RGB_RED);
}
//<2F><><EFBFBD>װ<EFBFBD>ť
if (gTrackWorkFlow1.m_bCarrierOpen)
{
m_OpenCloseProductBtn1.SetWindowTextA("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>");
m_OpenCloseProductBtn1.SetUpColor(RGB_YELLOW);
}
else
{
m_OpenCloseProductBtn1.SetWindowTextA("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѽн<EFBFBD>");
m_OpenCloseProductBtn1.SetUpColor(RGB_GREEN);
}
if (gTrackWorkFlow2.m_bCarrierOpen)
{
m_OpenCloseProductBtn2.SetWindowTextA("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>");
m_OpenCloseProductBtn2.SetUpColor(RGB_YELLOW);
}
else
{
m_OpenCloseProductBtn2.SetWindowTextA("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѽн<EFBFBD>");
m_OpenCloseProductBtn2.SetUpColor(RGB_GREEN);
}
//<2F>ӹ<EFBFBD>ʱ<EFBFBD><CAB1>
CString str = gWorkTime.GetTimeSpanStr();
CString str1 = gWorkTime.GetLastWorkTime();
GetDlgItem(IDC_WORK_TIME)->SetWindowText(str);
GetDlgItem(IDC_LAST_WORK_TIME)->SetWindowText(str1);
//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
str.Format("%ld",gProgram_SZ_XL->GetCutProductCnt(_ETrackType_Track_1));
GetDlgItem(IDC_CUT_PRODUCT_CNT1)->SetWindowText(str);
str.Format("%ld",gProgram_SZ_XL->GetCutProductCnt(_ETrackType_Track_2));
GetDlgItem(IDC_CUT_PRODUCT_CNT2)->SetWindowText(str);
if(gProgram_SZ_XL->IsbAutoWorking())
GetDlgItem(IDC_MANUAL_OP_CHECK)->EnableWindow(false);
else
GetDlgItem(IDC_MANUAL_OP_CHECK)->EnableWindow(true);
UpdateBtnColorExt(gTrackWorkFlow1,m_StartBtn1,IDC_START_BTN_1,m_LoadBtn1,m_LoadEndBtn1,m_WaitBtn1,m_CatchMarkBtn1,m_CutBtn1,m_ThrowEdgeBtn1,m_UnloadBtn1);
UpdateBtnColorExt(gTrackWorkFlow2,m_StartBtn2,IDC_START_BTN_2,m_LoadBtn2,m_LoadEndBtn2,m_WaitBtn2,m_CatchMarkBtn2,m_CutBtn2,m_ThrowEdgeBtn2,m_UnloadBtn2);
}
void CDlgSW_XL_Flow::UpdateBtnColorExt(CTrackWorkFlow &TrackWorkFlow,CMyBttom &StartBtn,int StartBtnID,CMyBttom &LoadBtn,CMyBttom &LoadEndBtn,CMyBttom &WaitBtn,CMyBttom &CatchMarkBtn,CMyBttom &CutBtn,CMyBttom &ThrowEdgeBtn,CMyBttom &UnloadBtn)
{
CDeviceState &DeviceState = CDeviceState::GetInstance();
bool bDeviceIni = DeviceState.IsDeviceIni();
CString str;
if(TrackWorkFlow.IsbAutoWorking())
{
StartBtn.SetUpColor(RGB_YELLOW);
str = "ֹͣ";
}
else
{
if(bDeviceIni)
StartBtn.SetUpColor(RGB_GREEN);
else
StartBtn.SetUpColor(RGB_BLUE1);
str = "<EFBFBD><EFBFBD>ʼ";
}
GetDlgItem(StartBtnID)->SetWindowText(str);
if(gProgram_SZ_XL->IsbSelMarkMode())
{
m_SelWorkBtn.SetUpColor(RGB_PINK);
}
else
{
m_SelWorkBtn.SetUpColor(RGB_GREEN1);
}
if(gProgram_SZ_XL->IsbAutoWorkMode())
{
m_LoadEndBtn1.SetUpColor(RGB_GRAY1);
m_LoadEndBtn2.SetUpColor(RGB_GRAY1);
}
else
{
if(gProgram_SZ_XL->GetCurTrackWorkStep(_ETrackType_Track_1)==_ETrack_Step_Load)
m_LoadEndBtn1.SetUpColor(RGB_PINK);
else
m_LoadEndBtn1.SetUpColor(RGB_GRAY1);
if(gProgram_SZ_XL->GetCurTrackWorkStep(_ETrackType_Track_2)==_ETrack_Step_Load)
m_LoadEndBtn2.SetUpColor(RGB_PINK);
else
m_LoadEndBtn2.SetUpColor(RGB_GRAY1);
}
COLORREF ColorLoadBtn = RGB_BLUE1;
COLORREF ColorWaitBtn = RGB_BLUE1;
COLORREF ColorCatchMarkBtn = RGB_BLUE1;
COLORREF ColorCutBtn = RGB_BLUE1;
COLORREF ColorThrowEdgeBtn = RGB_BLUE1;
COLORREF ColorUnloadBtn = RGB_BLUE1;
ETrackWorkStep TrackWorkStep = TrackWorkFlow.GetCurTrackWorkStep();
switch(TrackWorkStep)
{
case _ETrack_Step_Load://<2F><><EFBFBD><EFBFBD>
ColorLoadBtn = RGB_GREEN;
break;
case _ETrack_Step_Load_Stop://<2F><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><><D6B4>ֹͣ
ColorLoadBtn = RGB_YELLOW;
break;
case _ETrack_Step_To_Wait_Pos://<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ȴ<EFBFBD>λ<EFBFBD><CEBB>
case _ETrack_Step_Mark_Waiting://<2F>ȴ<EFBFBD><C8B4><EFBFBD>
ColorWaitBtn = RGB_GREEN;
break;
case _ETrack_Step_Catch_mark://ץȡ<D7A5><C8A1>λ
ColorCatchMarkBtn = RGB_GREEN;
break;
case _ETrack_Step_Catch_mark_Err://ץȡ<D7A5><C8A1>λʧ<CEBB><CAA7>
ColorCatchMarkBtn = RGB_RED;
break;
case _ETrack_Step_Marking://<2F>и<EFBFBD>
ColorCutBtn = RGB_GREEN;
break;
case _ETrack_Step_Mark_Stop://<2F>и<EFBFBD>ֹͣ
ColorCutBtn = RGB_YELLOW;
break;
case _ETrack_Step_Throw_Edge://ȥ<>߿<EFBFBD>
ColorThrowEdgeBtn = RGB_GREEN;
break;
case _ETrack_Step_Unload://<2F><><EFBFBD><EFBFBD>
ColorUnloadBtn = RGB_GREEN;
break;
default:
break;
}
LoadBtn.SetUpColor(ColorLoadBtn);
WaitBtn.SetUpColor(ColorWaitBtn);
CatchMarkBtn.SetUpColor(ColorCatchMarkBtn);
CutBtn.SetUpColor(ColorCutBtn);
ThrowEdgeBtn.SetUpColor(ColorThrowEdgeBtn);
UnloadBtn.SetUpColor(ColorUnloadBtn);
CString s;
s.Format("Step : %ld",gTrackWorkFlow1.GetCurTrackWorkStepInt());
GetDlgItem(IDC_STEP_1)->SetWindowText(s);
s.Format("Step : %ld",gTrackWorkFlow2.GetCurTrackWorkStepInt());
GetDlgItem(IDC_STEP_2)->SetWindowText(s);
}
//<2F>ָ<EFBFBD><D6B8><EFBFBD>ǰѭ<C7B0><D1AD><EFBFBD><EFBFBD>ֹͣcheck
void CDlgSW_XL_Flow::ResetCircleStopCheck(ETrackType TrackType)
{
if(TrackType==_ETrackType_Track_1)
((CButton*)GetDlgItem(IDC_CIRCLE_STOP_CHECK1))->SetCheck(false);
else
((CButton*)GetDlgItem(IDC_CIRCLE_STOP_CHECK2))->SetCheck(false);
}
#endif
#if 1
void CDlgSW_XL_Flow::OnBnClickedStartBtn1()
{
gProgram_SZ_XL->StartAutoWork(_ETrackType_Track_1);
}
void CDlgSW_XL_Flow::OnBnClickedStartBtn2()
{
gProgram_SZ_XL->StartAutoWork(_ETrackType_Track_2);
}
#endif
#if 1
void CDlgSW_XL_Flow::OnBnClickedLoadBtn1()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Unload_End);
}
void CDlgSW_XL_Flow::OnBnClickedLoadBtn2()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Unload_End);
}
//<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CDlgSW_XL_Flow::OnBnClickedManualLoadBtn1()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Load_End);
}
void CDlgSW_XL_Flow::OnBnClickedManualLoadBtn2()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Load_End);
}
//<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ȴ<EFBFBD>λ<EFBFBD><CEBB>
void CDlgSW_XL_Flow::OnBnClickedWaitBtn1()
{
if (gProgram_SZ_XL->IsbAutoWorking())
return;
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Load_End);
}
void CDlgSW_XL_Flow::OnBnClickedWaitBtn2()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Load_End);
}
void CDlgSW_XL_Flow::OnBnClickedCatchMarkBtn1()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Mark_Waiting);
}
void CDlgSW_XL_Flow::OnBnClickedCatchMarkBtn2()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Mark_Waiting);
}
void CDlgSW_XL_Flow::OnBnClickedLaserBtn1()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Catch_mark_End);
}
void CDlgSW_XL_Flow::OnBnClickedLaserBtn2()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Catch_mark_End);
}
void CDlgSW_XL_Flow::OnBnClickedThrowEdgeBtn1()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Mark_End);
}
void CDlgSW_XL_Flow::OnBnClickedThrowEdgeBtn2()
{
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Mark_End);
}
void CDlgSW_XL_Flow::OnBnClickedUnloadBtn1()
{
if (gTrackWorkFlow1.GetCurTrackWorkStep()==_ETrack_Step_Unload)
gTrackWorkFlow1.KillCurWorkThread();
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Throw_Edge_End);
}
void CDlgSW_XL_Flow::OnBnClickedUnloadBtn2()
{
if (gTrackWorkFlow2.GetCurTrackWorkStep() == _ETrack_Step_Unload)
gTrackWorkFlow2.KillCurWorkThread();
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Throw_Edge_End);
}
void CDlgSW_XL_Flow::OnBnClickedTrack1ProductCarrierOpenClose()
{
BOOL & bOpen = gTrackWorkFlow1.m_bCarrierOpen;
bOpen = !bOpen;
gProgram_SZ_XL->ProductCarrierOpenClose(_ETrackType_Track_1, bOpen);
}
void CDlgSW_XL_Flow::OnBnClickedTrack2ProductCarrierOpenClose()
{
BOOL & bOpen = gTrackWorkFlow2.m_bCarrierOpen;
bOpen = !bOpen;
gProgram_SZ_XL->ProductCarrierOpenClose(_ETrackType_Track_2, bOpen);
}
void CDlgSW_XL_Flow::OnBnClickedTrack1ClearTimes()
{
gProgram_SZ_XL->ResetRecordTimes(_ETrackType_Track_1);
}
void CDlgSW_XL_Flow::OnBnClickedTrack2ClearTimes()
{
gProgram_SZ_XL->ResetRecordTimes(_ETrackType_Track_2);
}
//<2F><>ǰѭ<C7B0><D1AD><EFBFBD><EFBFBD>ֹͣ
void CDlgSW_XL_Flow::OnBnClickedCircleStopCheck1()
{
bool bStop = ((CButton*)GetDlgItem(IDC_CIRCLE_STOP_CHECK1))->GetCheck();
gProgram_SZ_XL->SetbCircleStop(_ETrackType_Track_1,bStop);
}
void CDlgSW_XL_Flow::OnBnClickedCircleStopCheck2()
{
bool bStop = ((CButton*)GetDlgItem(IDC_CIRCLE_STOP_CHECK2))->GetCheck();
gProgram_SZ_XL->SetbCircleStop(_ETrackType_Track_2,bStop);
}
#endif
#if 1
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>
void CDlgSW_XL_Flow::OnBnClickedInitDeviceBtn()
{
gProgram_SZ_XL->InitDevice();
}
#include "ObjComponentMgr.h"
void CDlgSW_XL_Flow::OnBnClickedBoolSelMark()
{
bool b = gProgram_SZ_XL->IsbSelMarkMode();
gProgram_SZ_XL->SetbSelMarkMode(!b);
/*if (!b)
{
auto & ComponentVec = gObjComponentMgr->GetComponentVec();
auto & SelIndexVec = gClientMgr->m_SelObjIndexVec;
SelIndexVec.clear();
int cnt = ComponentVec.size();
for (int idx = 0; idx < cnt; idx++)
{
if ((ComponentVec[idx]).IsSelected())
{
SelIndexVec.push_back(idx);
}
}
gClientMgr->SendCmd_MarkSelObj();
}*/
}
#endif
#if 1
void CDlgSW_XL_Flow::UpdateCutPar()
{
//<2F><>ȡdxf <20><>Ӧ<EFBFBD><D3A6><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
gProgram_SZ_XL->ReadCutPar();
m_LaserSpeed = gCommonFlowMgr->m_CutSpeed;//<2F>и<EFBFBD><D0B8>ٶ<EFBFBD>
m_OneObjMarkCnt = gCommonFlowMgr->m_OneObjMarkCnt;//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
m_SpecialOneObjMarkCnt = gCommonFlowMgr->m_SpecialOneObjMarkCnt;//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
m_MarkAreaCutCount = gCommonFlowMgr->GetAreaCycleCnt();//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_Jig1PrtOft_x = gCommonFlowMgr->m_Jig1PrtOffset.x;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
m_Jig1PrtOft_y = gCommonFlowMgr->m_Jig1PrtOffset.y;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
{
CString path;
gProgram_SZ_XL->GetDxfParFilePath("pjo", path);
CSmartArchive ar(path, false);
ar + m_Jig1PrtOft_x;
ar + m_Jig1PrtOft_y;
ar + m_Jig3PrtOft_x;
ar + m_Jig3PrtOft_y;
gCommonFlowMgr->m_Jig1PrtOffset.x = m_Jig1PrtOft_x;
gCommonFlowMgr->m_Jig1PrtOffset.y = m_Jig1PrtOft_y;
gCommonFlowMgr->m_Jig3PrtOffset.x= m_Jig3PrtOft_x;
gCommonFlowMgr->m_Jig3PrtOffset.y = m_Jig3PrtOft_y;
}
UpdateData(FALSE);
}
//Ӧ<>ò<EFBFBD><C3B2><EFBFBD>
void CDlgSW_XL_Flow::OnBnClickedSavePar()
{
if(bSaveLockFlg)//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return;
bSaveLockFlg = true;//<2F><><EFBFBD><EFBFBD>
UpdateData(TRUE);
gCommonFlowMgr->m_CutSpeed = m_LaserSpeed;//<2F>и<EFBFBD><D0B8>ٶ<EFBFBD>
gCommonFlowMgr->m_OneObjMarkCnt = m_OneObjMarkCnt;//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
gCommonFlowMgr->m_SpecialOneObjMarkCnt = m_SpecialOneObjMarkCnt;//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
gCommonFlowMgr->m_AreaCycleCnt = (m_MarkAreaCutCount);//<2F><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gCommonFlowMgr->m_Jig1PrtOffset.x = m_Jig1PrtOft_x;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
gCommonFlowMgr->m_Jig1PrtOffset.y = m_Jig1PrtOft_y;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
gCommonFlowMgr->m_Jig3PrtOffset.x = m_Jig3PrtOft_x;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
gCommonFlowMgr->m_Jig3PrtOffset.y = m_Jig3PrtOft_y;//<2F><><EFBFBD>Բ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>и<EFBFBD>ƫ<EFBFBD><C6AB>
{
CString path;
gProgram_SZ_XL->GetDxfParFilePath("pjo", path);
CSmartArchive ar(path, true);
ar + m_Jig1PrtOft_x;
ar + m_Jig1PrtOft_y;
ar + m_Jig3PrtOft_x;
ar + m_Jig3PrtOft_y;
}
//<2F><><EFBFBD><EFBFBD>dxf <20><>Ӧ<EFBFBD><D3A6><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>
gProgram_SZ_XL->SaveCutPar();
//Ӧ<>ò<EFBFBD><C3B2><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´򿪵<C2B4>ǰ<EFBFBD>ļ<EFBFBD>
gClientMgr->SendCmd_OpenFile(gProgramCutMgr->GetCurOpenFileFullName());
CMsgBox MsgBox;
MsgBox.Show("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>óɹ<EFBFBD>");
bSaveLockFlg = false;//<2F><><EFBFBD><EFBFBD>
}
#endif
#if 1
void CDlgSW_XL_Flow::OnBnClickedSpecialObj()
{
gObjComponentMgr->SetSelObjPenNum();
}
void CDlgSW_XL_Flow::OpenWorkFile(bool bDxf)
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
//<2F><><EFBFBD><EFBFBD>
gProgramCutMgr->OpenWorkFile(bDxf);
UpdateCutPar();
//area<65>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
gMarkAreaMgr->MoveAllAreaToTargetPt(Dbxy(0,0));
GetCurViewPtr()->DoZoomFull();
}
void CDlgSW_XL_Flow::OnBnClickedOpenDxf()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
OpenWorkFile(true);
//-----------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ID-------------------
auto FileName = gProgramCutMgr->GetCurOpenFileName();
if (FileName.IsEmpty())
return;
//<2F><>ʼ<EFBFBD><CABC>
vector<CString> KnownFileNameVec(100, "NULL");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
int UseableIdx = 0;
{
CSmartArchive ar("KnownFileNameVec", false);
ar + UseableIdx;
for (int i = 0;i != 100;i++)
{
ar + KnownFileNameVec[i];
}
}
auto iter = find(KnownFileNameVec.begin(), KnownFileNameVec.end(), FileName);
if (iter != KnownFileNameVec.end())
{
int cnt = iter - KnownFileNameVec.begin();
gCameraHawkvis->SetCurShapeModelID(cnt);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򱣴<EFBFBD>
gCameraHawkvis->SetCurShapeModelID(UseableIdx);
KnownFileNameVec[UseableIdx] = FileName;
{
UseableIdx++;
if (UseableIdx == 100)//<2F><><EFBFBD><EFBFBD><E0B1A3>100<30><30><><C8BB><EFBFBD><EFBFBD><EFBFBD>ʼ
UseableIdx = 0;
CSmartArchive ar("KnownFileNameVec", true);
ar + UseableIdx;
for (int i = 0;i != 100;i++)
{
ar + KnownFileNameVec[i];
}
}
}
}
void CDlgSW_XL_Flow::OnBnClickedOpenMak()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
OpenWorkFile(false);
//-----------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ID-------------------
auto FileName = gProgramCutMgr->GetCurOpenFileName();
if (FileName.IsEmpty())
return;
//<2F><>ʼ<EFBFBD><CABC>
vector<CString> KnownFileNameVec(100,"NULL");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
int UseableIdx = 0;
{
CSmartArchive ar("KnownFileNameVec", false);
ar + UseableIdx;
for (int i = 0;i != 100;i++)
{
ar + KnownFileNameVec[i];
}
}
auto iter = find(KnownFileNameVec.begin(), KnownFileNameVec.end(), FileName);
if (iter !=KnownFileNameVec.end())
{
int cnt = iter-KnownFileNameVec.begin();
gCameraHawkvis->SetCurShapeModelID(cnt);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򱣴<EFBFBD>
gCameraHawkvis->SetCurShapeModelID(UseableIdx);
KnownFileNameVec[UseableIdx] = FileName;
{
UseableIdx++;
if (UseableIdx == 100)//<2F><><EFBFBD><EFBFBD><E0B1A3>100<30><30>
UseableIdx = 0;
CSmartArchive ar("KnownFileNameVec", true);
ar + UseableIdx;
for (int i = 0;i != 100;i++)
{
ar + KnownFileNameVec[i];
}
}
}
}
void CDlgSW_XL_Flow::OnBnClickedSaveMak()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
CWorkFileMgr WorkFileMgr;
WorkFileMgr.OnSaveFileAs();
}
void CDlgSW_XL_Flow::OnBnClickedMarkArea()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
CDlgMarkArea dlg(*gMarkAreaMgr);
dlg.DoModal();
}
//<2F>л<EFBFBD><D0BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ֶ<EFBFBD>ģʽ
void CDlgSW_XL_Flow::OnBnClickedManualOpCheck()
{
if(gProgram_SZ_XL->IsbAutoWorking())
{
CMsgBox MsgBox;
MsgBox.Show("<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ģʽ!");
return;
}
bool bSel = ((CButton*)GetDlgItem(IDC_MANUAL_OP_CHECK))->GetCheck();
gProgram_SZ_XL->SetbAutoWorkMode(!bSel);
}
//<2F>û<EFBFBD><C3BB><EFBFBD>¼
void CDlgSW_XL_Flow::OnBnClickedLoginBtn()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
CDlgAuthorityMgr dlg;
dlg.DoModal();
if(gAuthorityMgr->IsLogin())
m_LoginBtn.SetUpColor(RGB_GREEN);
else
m_LoginBtn.SetUpColor(RGB_RED);
m_LoginBtn.Refreash();
}
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>obj <20><>λ<EFBFBD><CEBB>
void CDlgSW_XL_Flow::OnBnClickedAdjustObjPos()
{
if(gProgram_SZ_XL->IsbAutoWorking())
return;
if(!gAuthorityMgr->CheckAuthority(_ADMIN,true))
return;
if(!gObjComponentMgr->HasSelObjComponent())
{
CMsgBox MsgBox;
MsgBox.Show("û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>!");
return;
}
CDlgAdjustObjPos dlg;
dlg.DoModal();
}
#endif
void CDlgSW_XL_Flow::OnBnClickedbMarkSelObj()
{
BOOL b = gProgram_SZ_XL->IsbSelMarkMode();
gProgram_SZ_XL->SetbSelMarkMode(!b);
gClientMgr->SendCmd_bMarkSelMode(!b);
gClientMgr->SendCmd_SelObj();
}
void CDlgSW_XL_Flow::OnBnClickedAdjustProductPos()
{
CMsgBox MsgBox;
if (MsgBox.ConfirmOkCancel("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>ץȡλ<EFBFBD><EFBFBD>?") == false)
return;
if (!gAuthorityMgr->CheckAuthority(_ADMIN,true))
return;
//gProductMgr->SetProductCenterPt();
gProductMgr->SetCamCoord();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
gProgramCutMgr->SaveWorkParFile();
}
void CDlgSW_XL_Flow::OnBnClickedDisableServer()
{
if (!gAuthorityMgr->CheckAuthority(_ADMIN, true))
{
bool b = gClientMgr->IsbDisableServer();
((CButton*)GetDlgItem(IDC_CHECK4))->SetCheck(b);
return;
}
bool b = ((CButton*)GetDlgItem(IDC_CHECK4))->GetCheck();
gClientMgr->SetbDisableServer(b);
}