📄 manage_whdoc.cpp
字号:
// Manage_WHDoc.cpp : implementation of the CManage_WHDoc class
//
#include "stdafx.h"
#include "Manage_WH.h"
#include "Manage_WHDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CManage_WHDoc
IMPLEMENT_DYNCREATE(CManage_WHDoc, CDocument)
BEGIN_MESSAGE_MAP(CManage_WHDoc, CDocument)
//{{AFX_MSG_MAP(CManage_WHDoc)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CManage_WHDoc construction/destruction
CManage_WHDoc::CManage_WHDoc()
{
// TODO: add one-time construction code here
//初始化文档类全局指针
gpDoc = this;
m_bTimeDealing = FALSE;
m_bTimeDealing1 = FALSE;
m_bTimeDealing2 = FALSE;
//初始化堆垛机位置坐标数组
m_dLiftPosX1Arra.Add(0.67);
m_dLiftPosX1Arra.Add(0.69);
m_dLiftPosX1Arra.Add(0.71);
m_dLiftPosX1Arra.Add(0.73);
m_dLiftPosX1Arra.Add(0.749);
m_dLiftPosX1Arra.Add(0.767);
m_dLiftPosX1Arra.Add(0.786);
m_dLiftPosX1Arra.Add(0.804);
m_dLiftPosX1Arra.Add(0.823);
m_dLiftPosX1Arra.Add(0.842);
m_dLiftPosX1Arra.Add(0.86);
m_dLiftPosX1Arra.Add(0.88);
m_dLiftPosX1Arra.Add(0.899);
m_dLiftPosX1Arra.Add(0.917);
m_dLiftPosX1Arra.Add(0.936);
m_dLiftPosX1Arra.Add(0.954);
m_dLiftPosX1Arra.Add(0.973);
m_dLiftPosX2Arra.Add(0.689);
m_dLiftPosX2Arra.Add(0.708);
m_dLiftPosX2Arra.Add(0.728);
m_dLiftPosX2Arra.Add(0.747);
m_dLiftPosX2Arra.Add(0.765);
m_dLiftPosX2Arra.Add(0.784);
m_dLiftPosX2Arra.Add(0.802);
m_dLiftPosX2Arra.Add(0.821);
m_dLiftPosX2Arra.Add(0.84);
m_dLiftPosX2Arra.Add(0.858);
m_dLiftPosX2Arra.Add(0.878);
m_dLiftPosX2Arra.Add(0.897);
m_dLiftPosX2Arra.Add(0.915);
m_dLiftPosX2Arra.Add(0.934);
m_dLiftPosX2Arra.Add(0.952);
m_dLiftPosX2Arra.Add(0.971);
m_dLiftPosX2Arra.Add(0.989);
// 设置货架的行数和列数
m_GoodsFrameArra[0].SetRowCol(7, 16);
m_GoodsFrameArra[1].SetRowCol(7, 16);
// 设置每个货位的状态
CAdoConnection cn;
CAdoRecordSet rs;
if (!cn.OpenUDLFile(gstrConSQLSer))
{
AfxMessageBox("数据库连接失败!");
return;
}
CString szSQL;
CString ParamTxtVal,sVal;
int ParamNumVal;
rs.SetAdoConnection(&cn);
szSQL = "SELECT F_SiteIndex,F_SiteState FROM T_Goods_Site_Manage ORDER BY F_SiteIndex";
rs.Open(szSQL, adCmdText);
CString szNumLine,szNumRow,szNumCol,szState;
int iNumLine,iNumRow,iNumCol;
int i(0);
while (!rs.IsEOF())
{
rs.GetCollect("F_SiteIndex", ParamTxtVal);
rs.GetCollect("F_SiteState", ParamNumVal);
szNumLine = ParamTxtVal.Mid(0,1);
szNumCol = ParamTxtVal.Mid(2,2);
szNumRow = ParamTxtVal.Mid(5,1);
iNumLine = atoi(szNumLine) - 1;
iNumRow = atoi(szNumRow) - 1;
iNumCol = atoi(szNumCol) - 1;
m_GoodsFrameArra[iNumLine].SetState(iNumRow, iNumCol, ParamNumVal);
rs.MoveNext();
}
rs.Close();
//获得每个设备当前位置坐标、状态
int iDeviceStatus(0),iIndex(0),iNowNum(0),iKind(0);
double x1,y1,x2,y2;
rs.Open("T_Device_Site_State",adCmdTable);
while (!rs.IsEOF())
{
rs.GetCollect("F_Index",iIndex);
rs.GetCollect("F_Point_x1",x1);
rs.GetCollect("F_Point_y1",y1);
rs.GetCollect("F_Point_x2",x2);
rs.GetCollect("F_Point_y2",y2);
rs.PutCollect("F_State",0);
rs.PutCollect("F_NowNum",0);
rs.GetCollect("F_Kind",iKind);
if (iIndex == 30)
{
m_iLiftStatus = 0;
}
else
{
m_dCoordinateX1Arra.Add(x1);
m_dCoordinateY1Arra.Add(y1);
m_dCoordinateX2Arra.Add(x2);
m_dCoordinateY2Arra.Add(y2);
m_iDeviceStatusArra.Add(0);
m_iNowNum.Add(0);
m_iDeviceKind.Add(iKind);
}
rs.MoveNext();
}
rs.Close();
//清空机器人任务记录
rs.Open("T_Robort_Task",adCmdTable);
rs.MoveFirst();
while (!rs.IsEOF())
{
rs.PutCollect("F_Task",0);
rs.MoveNext();
}
rs.Update();
rs.Close();
cn.Execute("TRUNCATE TABLE T_Lift_Site",adCmdText);
cn.Execute("TRUNCATE TABLE T_RobortArm_Task_Step",adCmdText);
cn.Execute("TRUNCATE TABLE T_ThreeCoordinateRobort_Task_Step",adCmdText);
//获取LGV位置坐标m_iLGVPosX,m_iLGVPosY
rs.Open("T_LGV",adCmdTable);
rs.GetCollect("PosX",x1);
rs.GetCollect("PosY",y1);
rs.GetCollect("LGVErrorCode",iDeviceStatus);
rs.Close();
m_iLGVPosX = static_cast<int>(x1);
m_iLGVPosY = static_cast<int>(y1);
m_iLGVStatus = iDeviceStatus;
cn.Close();
}
CManage_WHDoc::~CManage_WHDoc()
{
}
BOOL CManage_WHDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CManage_WHDoc serialization
void CManage_WHDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CManage_WHDoc diagnostics
#ifdef _DEBUG
void CManage_WHDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CManage_WHDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CManage_WHDoc commands
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -