void openData(LPVOID pParam)
{
CProcessDlg *dlg = (CProcessDlg *)pParam;
OpenWorker *worker = (OpenWorker *)(dlg->worker);
worker->dlg = dlg;
int cnt = 0;
// Sleep(100);
DPL_CURVE_INFO1 curveData;
DPL_INSTRUMENT_INFO1 instData;
CFile file;
file.Open(worker->pathName, CFile::modeRead | CFile::typeBinary);
file.SeekToBegin();
DPL_DELAY_FILE head;
file.Read(&head, sizeof(DPL_DELAY_FILE));
if (strncmp(head.szDelayFileFlag, "SL6000DPL", 9) != 0)
{
worker->err.Format("文件类型无法识别:%s", worker->pathName);
::PostMessage(dlg->GetSafeHwnd(), WM_USER_PROCESS, -1, 0);
return;
}
for (size_t i = 0; i < head.szInstrumentNum; i++)
{
file.Read(&instData, sizeof(DPL_INSTRUMENT_INFO1));
CString data;
data.Format("%16s", instData.szInstrumentName);
data.Format("%16s", instData.szInstrumentAlias);
data.Format("%16s", instData.szInstrumentSerial);
data.Format("%10d", instData.sInstrumentAddress);
data.Format("%16.5f", instData.fInstrumentWeight);
data.Format("%16.5f", instData.fInstrumentLengthTransport);
data.Format("%16.5f\n", instData.fInstrumentLengthConnect);
cnt++;
}
for (size_t j = 0; j < head.szCurveNum; j++)
{
file.Read(&curveData, sizeof(DPL_CURVE_INFO1));
CString data;
data.Format("%16s", curveData.szCurveName);
data.Format("%16s", curveData.szCurveAlias);
data.Format("%16s", curveData.szMetricCurveUnit);
data.Format("%10d", curveData.sInstrumentAddress);
data.Format("%10d", curveData.sCurveId);
data.Format("%16.5f", curveData.fMultiCoefficient);
data.Format("%16.5f", curveData.fAddCoefficient);
data.Format("%16.5f", curveData.fMetricDelay);
data.Format("%16.5f\n", curveData.fCalculateDelay);
cnt++;
::PostMessage(dlg->GetSafeHwnd(), WM_USER_PROCESS, (cnt * 100) / (head.szInstrumentNum + head.szCurveNum), 0);
}
::PostMessage(dlg->GetSafeHwnd(), WM_USER_PROCESS, 100, 0);
file.Close();
ExitThread(0);
}
//m_List listcontrol对象 strMsg文件内容
m_List.InsertItem(LVIF_TEXT|LVIF_STATE, i-1, strMsg, LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED, 0, 0);