⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manage_whdoc.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 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 + -