📄 ganguang.cpp
字号:
// Ganguang.cpp : implementation file
#include "stdafx.h"
#include <Windows.h>
#include "source10.h"
#include "Ganguang.h"
#include "Setscanner.h"
#include "stepcali.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern char InitDir2[100];
extern unsigned char Def_Stp_Para[300]; //下传缺省参数150B+分步校正参数150B存储缓冲区
///////////////////////////////
//感光时间设置窗口——消息映射//
////////////////////////////////
BEGIN_MESSAGE_MAP(CGanguang, CDialog)
//{{AFX_MSG_MAP(CGanguang)
ON_BN_CLICKED(IDC_CuJiao, OnCuJiao)
ON_BN_CLICKED(IDC_JingJiao, OnJingJiao)
ON_BN_CLICKED(IDC_Save, OnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////////////////////////
// CGanguang dialog //
//感光时间设置窗口——窗口生成 //
//////////////////////////////////
CGanguang::CGanguang(CWnd* pParent /*=NULL*/)
: CDialog(CGanguang::IDD, pParent)
{
//{{AFX_DATA_INIT(CGanguang)
Stp_GanG_INI(); //初始化Def_Stp_Para数组中的感光参数
m_GangTime=255; //感光时间基值
m_GangCode=(Def_Stp_Para[150]<<8) | (Def_Stp_Para[151]); //感光目标码
m_GTADD1 = Def_Stp_Para[158+0]; //感光时间附加值
m_GTADD2 = Def_Stp_Para[158+1];
m_GTADD3 = Def_Stp_Para[158+2];
m_GTADD4 = Def_Stp_Para[158+3];
m_GTADD5 = Def_Stp_Para[158+4];
m_GTR1=Def_Stp_Para[166+0]; //感光时间延迟值
m_GTG1=Def_Stp_Para[166+1];
m_GTB1=Def_Stp_Para[166+2];
m_GTR2=Def_Stp_Para[166+3];
m_GTG2=Def_Stp_Para[166+4];
m_GTB2=Def_Stp_Para[166+5];
m_GTR3=Def_Stp_Para[166+6];
m_GTG3=Def_Stp_Para[166+7];
m_GTB3=Def_Stp_Para[166+8];
m_GTR4=Def_Stp_Para[166+9];
m_GTG4=Def_Stp_Para[166+10];
m_GTB4=Def_Stp_Para[166+11];
m_GTR5=Def_Stp_Para[166+12];
m_GTG5=Def_Stp_Para[166+13];
m_GTB5=Def_Stp_Para[166+14];
m_TSH = _T("请修改感光参数或选择相关操作.........");
//}}AFX_DATA_INIT
m_pParent = pParent;
m_nID = CGanguang::IDD;
}
/* 与上相同
m_GangTime=Def_Stp_Para[1]*256+Def_Stp_Para[2];
m_GangCode=Def_Stp_Para[3]*256+Def_Stp_Para[4];
*/
//////////////////////////////////
//感光时间设置窗口——数据交换 //
//////////////////////////////////
void CGanguang::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGanguang)
DDX_Text(pDX, IDC_CCD1_R, m_GTR1);
DDX_Text(pDX, IDC_CCD1_G, m_GTG1);
DDX_Text(pDX, IDC_CCD1_B, m_GTB1);
DDX_Text(pDX, IDC_CCD2_R, m_GTR2);
DDX_Text(pDX, IDC_CCD2_G, m_GTG2);
DDX_Text(pDX, IDC_CCD2_B, m_GTB2);
DDX_Text(pDX, IDC_CCD3_R, m_GTR3);
DDX_Text(pDX, IDC_CCD3_G, m_GTG3);
DDX_Text(pDX, IDC_CCD3_B, m_GTB3);
DDX_Text(pDX, IDC_CCD4_R, m_GTR4);
DDX_Text(pDX, IDC_CCD4_G, m_GTG4);
DDX_Text(pDX, IDC_CCD4_B, m_GTB4);
DDX_Text(pDX, IDC_CCD5_R, m_GTR5);
DDX_Text(pDX, IDC_CCD5_G, m_GTG5);
DDX_Text(pDX, IDC_CCD5_B, m_GTB5);
DDX_Text(pDX, IDC_GangTime, m_GangTime);
DDX_Text(pDX, IDC_GangCode, m_GangCode);
DDX_Text(pDX, IDC_CCD1_ADD, m_GTADD1);
DDX_Text(pDX, IDC_CCD2_ADD, m_GTADD2);
DDX_Text(pDX, IDC_CCD3_ADD, m_GTADD3);
DDX_Text(pDX, IDC_CCD4_ADD, m_GTADD4);
DDX_Text(pDX, IDC_CCD5_ADD, m_GTADD5);
DDX_Text(pDX, IDC_GGStatusL, m_TSH);
//}}AFX_DATA_MAP
}
//////////////////////////////////
//感光时间设置窗口——关闭窗口 //
//////////////////////////////////
void CGanguang::OnCancel()
{
m_TSH ="";
UpdateData(false); //将本过程内的变量值变化导出本过程
/*
if (IDNO == MessageBox("是否关闭感光时间设置窗口?","确认",MB_YESNO))
{
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
*/
Stp_GanG_INI(); //初始化Def_Stp_Para数组中的感光参数
CDialog::OnCancel();
}
int CGanguang::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
//////////////////////////////////////
//感光时间设置窗口——初值获取校正函数 //
//////////////////////////////////////
void CGanguang::OnCuJiao()
{
GangJiao(0); //感光时间初始获取
}
//////////////////////////////////////
//感光时间设置窗口——精校正函数 //
//////////////////////////////////////
void CGanguang::OnJingJiao()
{
GangJiao(1); //感光时间精校正
}
//////////////////////////////////////
// 感光时间粗精校正函数 //
//////////////////////////////////////
void CGanguang::GangJiao(int Cu_Jin)
{
UpdateData(true); //将本过程外的变量值变化导入本过程
//有效性检查
int GangCMAX=GetPrivateProfileInt("CCD_Gang_Dly","GangCMAX",800,InitDir2);
if(m_GangCode<200) m_GangCode=200; //感光目标码
else if(m_GangCode>GangCMAX) m_GangCode=GangCMAX;
//附加感光时间设置值进行范围(0~255)检查
R_Check(&m_GTADD1,0,255);
R_Check(&m_GTADD2,0,255);
R_Check(&m_GTADD3,0,255);
R_Check(&m_GTADD4,0,255);
R_Check(&m_GTADD5,0,255);
//对感光时间设置值进行范围(1~254)检查
RGB_Check(&m_GTR1,&m_GTG1,&m_GTB1,0,255);
RGB_Check(&m_GTR2,&m_GTG2,&m_GTB2,0,255);
RGB_Check(&m_GTR3,&m_GTG3,&m_GTB3,0,255);
RGB_Check(&m_GTR4,&m_GTG4,&m_GTB4,0,255);
RGB_Check(&m_GTR5,&m_GTG5,&m_GTB5,0,255);
m_TSH ="";
UpdateData(false); //将本过程内的变量值变化导出本过程
if (Cu_Jin==0)
if (IDNO == MessageBox("是否继续底层感光时间初始获取操作?","确认",MB_YESNO))
{
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
else
{
m_TSH ="扫描仪正在进行感光时间初值获取校正,等待接收校正结果参数.........";
UpdateData(false); //将本过程内的变量值变化导出本过程,更新显示
}
if (Cu_Jin==1)
if (IDNO == MessageBox("是否继续底层感光时间精确调整操作?","确认",MB_YESNO))
{
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
else
{
m_TSH ="扫描仪正在进行感光时间精校正,等待接收校正结果参数.........";
UpdateData(false); //将本过程内的变量值变化导出本过程,更新显示
}
//将输入的参数变量值写入Def_Stp_Para缓冲区,以供校正下传用
//感光目标码
Def_Stp_Para[150] =HIBYTE(m_GangCode);
Def_Stp_Para[151] =LOBYTE(m_GangCode);
//附加感光时间
int i=158;
Def_Stp_Para[i+0] =LOBYTE(m_GTADD1); //CCD1
Def_Stp_Para[i+1] =LOBYTE(m_GTADD2); //CCD2
Def_Stp_Para[i+2] =LOBYTE(m_GTADD3); //CCD3
Def_Stp_Para[i+3] =LOBYTE(m_GTADD4); //CCD4
Def_Stp_Para[i+4] =LOBYTE(m_GTADD5); //CCD5
//感光延迟时间
i=166;
Def_Stp_Para[i+0] =LOBYTE(m_GTR1); //CCD1
Def_Stp_Para[i+1] =LOBYTE(m_GTG1);
Def_Stp_Para[i+2] =LOBYTE(m_GTB1);
Def_Stp_Para[i+3] =LOBYTE(m_GTR2); //CCD2
Def_Stp_Para[i+4] =LOBYTE(m_GTG2);
Def_Stp_Para[i+5] =LOBYTE(m_GTB2);
Def_Stp_Para[i+6] =LOBYTE(m_GTR3); //CCD3
Def_Stp_Para[i+7] =LOBYTE(m_GTG3);
Def_Stp_Para[i+8] =LOBYTE(m_GTB3);
Def_Stp_Para[i+9] =LOBYTE(m_GTR4); //CCD4
Def_Stp_Para[i+10] =LOBYTE(m_GTG4);
Def_Stp_Para[i+11] =LOBYTE(m_GTB4);
Def_Stp_Para[i+12] =LOBYTE(m_GTR5); //CCD5
Def_Stp_Para[i+13] =LOBYTE(m_GTG5);
Def_Stp_Para[i+14] =LOBYTE(m_GTB5);
Step_Cali(Cu_Jin); //下传底层感光时间初始获取操作命令包并获取显示校正效果参数
//用从底层获取的校正参数值更新感光校正参数变量值
//感光目标码
m_GangCode=(Def_Stp_Para[150]<<8) | (Def_Stp_Para[151]);
//附加感光时间
i=158;
m_GTADD1=Def_Stp_Para[i+0]; //CCD1
m_GTADD2=Def_Stp_Para[i+1]; //CCD2
m_GTADD3=Def_Stp_Para[i+2]; //CCD3
m_GTADD4=Def_Stp_Para[i+3]; //CCD4
m_GTADD5=Def_Stp_Para[i+4]; //CCD5
//感光延迟时间
i=166;
m_GTR1=Def_Stp_Para[i+0];
m_GTG1=Def_Stp_Para[i+1];
m_GTB1=Def_Stp_Para[i+2];
m_GTR2=Def_Stp_Para[i+3];
m_GTG2=Def_Stp_Para[i+4];
m_GTB2=Def_Stp_Para[i+5];
m_GTR3=Def_Stp_Para[i+6];
m_GTG3=Def_Stp_Para[i+7];
m_GTB3=Def_Stp_Para[i+8];
m_GTR4=Def_Stp_Para[i+9];
m_GTG4=Def_Stp_Para[i+10];
m_GTB4=Def_Stp_Para[i+11];
m_GTR5=Def_Stp_Para[i+12];
m_GTG5=Def_Stp_Para[i+13];
m_GTB5=Def_Stp_Para[i+14];
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程,更新显示
}
//////////////////////////////////////
//感光时间设置窗口——参数保存函数 //
//////////////////////////////////////
void CGanguang::OnSave()
{
UpdateData(true); //将本过程外的变量值变化导入本过程
//有效性检查
int GangCMAX=GetPrivateProfileInt("CCD_Gang_Dly","GangCMAX",800,InitDir2);
if(m_GangCode<200) m_GangCode=200; //感光目标码
else if(m_GangCode>GangCMAX) m_GangCode=GangCMAX;
//附加感光时间设置值进行范围(0~255)检查
R_Check(&m_GTADD1,0,255);
R_Check(&m_GTADD2,0,255);
R_Check(&m_GTADD3,0,255);
R_Check(&m_GTADD4,0,255);
R_Check(&m_GTADD5,0,255);
//对感光时间设置值进行范围(1~254)检查
RGB_Check(&m_GTR1,&m_GTG1,&m_GTB1,0,255);
RGB_Check(&m_GTR2,&m_GTG2,&m_GTB2,0,255);
RGB_Check(&m_GTR3,&m_GTG3,&m_GTB3,0,255);
RGB_Check(&m_GTR4,&m_GTG4,&m_GTB4,0,255);
RGB_Check(&m_GTR5,&m_GTG5,&m_GTB5,0,255);
m_TSH ="";
UpdateData(false); //将本过程内的变量值变化导出本过程
if (IDNO == MessageBox("是否将当前感光时间参数保存到参数文件?","确认",MB_YESNO))
{
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
char str[36];
//保存感光时间设置参数到参数文件
sprintf(str, "%d", m_GangCode);
WritePrivateProfileString("CCD_Gang_Dly","GangCode", str, InitDir2); //感光目标码
//附加感光时间
sprintf(str, "%d", m_GTADD1);
WritePrivateProfileString("CCD_Gang_Add","CCD1", str, InitDir2); //CCD1
sprintf(str, "%d", m_GTADD2);
WritePrivateProfileString("CCD_Gang_Add","CCD2", str, InitDir2); //CCD2
sprintf(str, "%d", m_GTADD3);
WritePrivateProfileString("CCD_Gang_Add","CCD3", str, InitDir2); //CCD3
sprintf(str, "%d", m_GTADD4);
WritePrivateProfileString("CCD_Gang_Add","CCD4", str, InitDir2); //CCD4
sprintf(str, "%d", m_GTADD5);
WritePrivateProfileString("CCD_Gang_Add","CCD5", str, InitDir2); //CCD5
//感光延迟时间
sprintf(str, "%d", m_GTR1);
WritePrivateProfileString("CCD_Gang_Dly","R1", str, InitDir2);
sprintf(str, "%d", m_GTG1);
WritePrivateProfileString("CCD_Gang_Dly","G1", str, InitDir2);
sprintf(str, "%d", m_GTB1);
WritePrivateProfileString("CCD_Gang_Dly","B1", str, InitDir2);
sprintf(str, "%d", m_GTR2);
WritePrivateProfileString("CCD_Gang_Dly","R2", str, InitDir2);
sprintf(str, "%d", m_GTG2);
WritePrivateProfileString("CCD_Gang_Dly","G2", str, InitDir2);
sprintf(str, "%d", m_GTB2);
WritePrivateProfileString("CCD_Gang_Dly","B2", str, InitDir2);
sprintf(str, "%d", m_GTR3);
WritePrivateProfileString("CCD_Gang_Dly","R3", str, InitDir2);
sprintf(str, "%d", m_GTG3);
WritePrivateProfileString("CCD_Gang_Dly","G3", str, InitDir2);
sprintf(str, "%d", m_GTB3);
WritePrivateProfileString("CCD_Gang_Dly","B3", str, InitDir2);
sprintf(str, "%d", m_GTR4);
WritePrivateProfileString("CCD_Gang_Dly","R4", str, InitDir2);
sprintf(str, "%d", m_GTG4);
WritePrivateProfileString("CCD_Gang_Dly","G4", str, InitDir2);
sprintf(str, "%d", m_GTB4);
WritePrivateProfileString("CCD_Gang_Dly","B4", str, InitDir2);
sprintf(str, "%d", m_GTR5);
WritePrivateProfileString("CCD_Gang_Dly","R5", str, InitDir2);
sprintf(str, "%d", m_GTG5);
WritePrivateProfileString("CCD_Gang_Dly","G5", str, InitDir2);
sprintf(str, "%d", m_GTB5);
WritePrivateProfileString("CCD_Gang_Dly","B5", str, InitDir2);
m_TSH ="请修改感光参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -