檔案操作 讀取、儲存設定檔案(.cfg)
bool CScaleModelManage::LoadConfigure(int iCam)
{
BOOL bRtn = TRUE;
CFileStore m_File;
CString strFile;
//保留給以前的標定資料讀寫用
strFile.Format("xxx%d.cfg",iCam);
if (!m_File.Open(strFile.GetString(), OpenFlag::load))
{
return false;
}
//讀取曝光時間
m_vecCGdiRect[iCam].clear();
unsigned int nCGdiRect;
bRtn &= (BOOL)m_File.Read(&nCGdiRect, sizeof(nCGdiRect));
for (int i = 0; i < nCGdiRect; i++)
{
shared_ptr <CGdiRect> m_GdiRect = make_shared<CGdiRect>();
m_vecCGdiRect[iCam].push_back(m_GdiRect);
bRtn &= (BOOL)m_vecCGdiRect[iCam][i]->Exchange(m_File);
}
m_vecLinePoint[iCam].clear();
unsigned int nPoints;
bRtn &= (BOOL)m_File.Read(&nPoints, sizeof(nPoints));
for (int i = 0; i < nPoints; i++)
{
int nMac = m_nMacIndex;
int nCam = iCam;
int nFlag = 0;
int nGroup = 0;
int nOrder = 0;
double dLength = 0.0;
double dImgX = 0.0;
double dImgY = 0.0;
bRtn &= m_File.Read(&dImgX, sizeof(dImgX));
bRtn &= m_File.Read(&dImgY, sizeof(dImgY));
shared_ptr <Point2d> CurPoint = make_shared<Point2d>();
CurPoint->dImgX = dImgX;
CurPoint->dImgY = dImgY;
m_vecLinePoint[iCam].push_back(CurPoint);
}
m_File.Close();
return bRtn;
}
bool CScaleModelManage::SaveConfigure(int iCam)
{
BOOL bRtn = TRUE;
CFileStore m_File;
CString strFile;
//保留給以前的標定資料讀寫用
strFile.Format("xxx%d.cfg", iCam);
if (!m_File.Open(strFile.GetString(), OpenFlag::save))
{
return false;
}
//讀取曝光時間
unsigned int nCGdiRect = m_vecCGdiRect[iCam].size();
bRtn &= (BOOL)m_File.Write(&nCGdiRect, sizeof(nCGdiRect));
for (int i = 0; i < nCGdiRect; i++)
{
bRtn &= (BOOL)m_vecCGdiRect[iCam][i]->Exchange(m_File);
}
unsigned int nPoints = m_vecLinePoint[iCam].size();
bRtn &= (BOOL)m_File.Write(&nPoints, sizeof(nPoints));
for (int iPt = 0; iPt < nPoints; iPt++)
{
Point2d& CurPoint = *m_vecLinePoint[iCam][iPt];
bRtn &= m_File.Write(&CurPoint.dImgX, sizeof(CurPoint.dImgX));
bRtn &= m_File.Write(&CurPoint.dImgY, sizeof(CurPoint.dImgY));
}
m_File.Close();
return bRtn;
}