📄 staticoff.cpp
字号:
// StaticOff.cpp : implementation file
//
#include "stdafx.h"
#include <Windows.h>
#include "source10.h"
#include "StaticOff.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存储缓冲区
/////////////////////////////////////////////////////////////////////////////
// CStaticOff dialog
CStaticOff::CStaticOff(CWnd* pParent /*=NULL*/)
: CDialog(CStaticOff::IDD, pParent)
{
//{{AFX_DATA_INIT(CStaticOff)
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
//读Def_Stp_Para缓冲区内的静态偏移校正参数(由JiaoZheng.cpp内读jiaose.ini文件初始化)进行显示初始化
//int i=150+40; //Def_Stp_Para缓冲区内的8个头静态偏移校正参数的起始位置为190
m_OR1=Def_Stp_Para[190+0];
m_OG1=Def_Stp_Para[190+1];
m_OB1=Def_Stp_Para[190+2];
m_OR2=Def_Stp_Para[190+3];
m_OG2=Def_Stp_Para[190+4];
m_OB2=Def_Stp_Para[190+5];
m_OR3=Def_Stp_Para[190+6];
m_OG3=Def_Stp_Para[190+7];
m_OB3=Def_Stp_Para[190+8];
m_OR4=Def_Stp_Para[190+9];
m_OG4=Def_Stp_Para[190+10];
m_OB4=Def_Stp_Para[190+11];
m_OR5=Def_Stp_Para[190+12];
m_OG5=Def_Stp_Para[190+13];
m_OB5=Def_Stp_Para[190+14];
//}}AFX_DATA_INIT
Stp_Offset_INI(); //初始化Def_Stp_Para数组后150字节中的静态偏移参数
RGB_Chk_ChgN(&m_OR1,&m_OG1,&m_OB1,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR2,&m_OG2,&m_OB2,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR3,&m_OG3,&m_OB3,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR4,&m_OG4,&m_OB4,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR5,&m_OG5,&m_OB5,32); //将32~63转换成0~-31,供窗口显示
}
void CStaticOff::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStaticOff)
DDX_Text(pDX, IDC_CCD1_B, m_OB1);
DDX_Text(pDX, IDC_CCD1_R, m_OR1);
DDX_Text(pDX, IDC_CCD1_G, m_OG1);
DDX_Text(pDX, IDC_CCD2_B, m_OB2);
DDX_Text(pDX, IDC_CCD2_R, m_OR2);
DDX_Text(pDX, IDC_CCD2_G, m_OG2);
DDX_Text(pDX, IDC_CCD3_B, m_OB3);
DDX_Text(pDX, IDC_CCD3_R, m_OR3);
DDX_Text(pDX, IDC_CCD3_G, m_OG3);
DDX_Text(pDX, IDC_CCD4_B, m_OB4);
DDX_Text(pDX, IDC_CCD4_R, m_OR4);
DDX_Text(pDX, IDC_CCD4_G, m_OG4);
DDX_Text(pDX, IDC_CCD5_B, m_OB5);
DDX_Text(pDX, IDC_CCD5_R, m_OR5);
DDX_Text(pDX, IDC_CCD5_G, m_OG5);
DDX_Text(pDX, IDC_OFStatusL, m_TSH);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CStaticOff, CDialog)
//{{AFX_MSG_MAP(CStaticOff)
ON_BN_CLICKED(IDC_CuJiao, OnCuJiao)
ON_BN_CLICKED(IDC_JingJiao, OnJingJiao)
ON_BN_CLICKED(IDC_Save, OnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStaticOff message handlers
int CStaticOff::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
//////////////////////////////////////
//静态偏移设置窗口——初值获取校正函数 //
//////////////////////////////////////
void CStaticOff::OnCuJiao()
{
OffsetJiao(2); //静态偏移初值获取校正
}
//////////////////////////////////////
//静态偏移设置窗口——精校正函数 //
//////////////////////////////////////
void CStaticOff::OnJingJiao()
{
OffsetJiao(3); //静态偏移精校正
}
//////////////////////////////////////
// 静态偏移粗精校正函数 //
//////////////////////////////////////
void CStaticOff::OffsetJiao(int Cu_Jin)
{
UpdateData(true); //将本过程外的变量值变化导入本过程,更新变量值
//对输入的参数值进行有效性检查
// ***** 静态偏移下传参数 (设置值为-31~+31) *****
RGB_Check(&m_OR1,&m_OG1,&m_OB1,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR2,&m_OG2,&m_OB2,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR3,&m_OG3,&m_OB3,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR4,&m_OG4,&m_OB4,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR5,&m_OG5,&m_OB5,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
m_TSH = _T("");
UpdateData(false); //将本过程内的变量值变化导出本过程,更新显示
if (Cu_Jin==2)
if (IDNO == MessageBox("是否继续底层静态偏移初始获取操作?","确认",MB_YESNO))
{
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
else
{
m_TSH ="扫描仪正在进行静态偏移初值获取校正,等待接收校正结果参数.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
}
if (Cu_Jin==3)
if (IDNO == MessageBox("是否继续底底层静态偏移精确调整操作?","确认",MB_YESNO))
{
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
else
{
m_TSH ="扫描仪正在进行静态偏移精校正,等待接收校正结果参数.........";
UpdateData(false); //将本过程内的变量值变化导出本过程
}
//将输入的参数变量值写入Def_Stp_Para缓冲区,以供校正下传用(下传值为0~+63)
int i=190;
int R1,G1,B1;
RGB_Chk_ChgP(m_OR1,m_OG1,m_OB1,-31,31,32,&R1,&G1,&B1); //对静态偏移R、G、B进行范围(-31~+31)检查,设置值为负值时,将-1~-31转换成33~63
Def_Stp_Para[i+0]=LOBYTE(R1); //CCD1
Def_Stp_Para[i+1]=LOBYTE(G1);
Def_Stp_Para[i+2]=LOBYTE(B1);
RGB_Chk_ChgP(m_OR2,m_OG2,m_OB2,-31,31,32,&R1,&G1,&B1); //对静态偏移R、G、B进行范围(-31~+31)检查,设置值为负值时,将-1~-31转换成33~63
Def_Stp_Para[i+3]=LOBYTE(R1); //CCD2
Def_Stp_Para[i+4]=LOBYTE(G1);
Def_Stp_Para[i+5]=LOBYTE(B1);
RGB_Chk_ChgP(m_OR3,m_OG3,m_OB3,-31,31,32,&R1,&G1,&B1); //对静态偏移R、G、B进行范围(-31~+31)检查,设置值为负值时,将-1~-31转换成33~63
Def_Stp_Para[i+6]=LOBYTE(R1); //CCD3
Def_Stp_Para[i+7]=LOBYTE(G1);
Def_Stp_Para[i+8]=LOBYTE(B1);
RGB_Chk_ChgP(m_OR4,m_OG4,m_OB4,-31,31,32,&R1,&G1,&B1); //对静态偏移R、G、B进行范围(-31~+31)检查,设置值为负值时,将-1~-31转换成33~63
Def_Stp_Para[i+9]=LOBYTE(R1); //CCD4
Def_Stp_Para[i+10]=LOBYTE(G1);
Def_Stp_Para[i+11]=LOBYTE(B1);
RGB_Chk_ChgP(m_OR5,m_OG5,m_OB5,-31,31,32,&R1,&G1,&B1); //对静态偏移R、G、B进行范围(-31~+31)检查,设置值为负值时,将-1~-31转换成33~63
Def_Stp_Para[i+12]=LOBYTE(R1); //CCD5
Def_Stp_Para[i+13]=LOBYTE(G1);
Def_Stp_Para[i+14]=LOBYTE(B1);
Step_Cali(Cu_Jin); //下传底层静态偏移初始获取操作命令包并获取显示校正效果参数
//用从底层获取的校正参数值更新偏移校正参数变量值
i=190;
m_OR1=Def_Stp_Para[i+0];
m_OG1=Def_Stp_Para[i+1];
m_OB1=Def_Stp_Para[i+2];
m_OR2=Def_Stp_Para[i+3];
m_OG2=Def_Stp_Para[i+4];
m_OB2=Def_Stp_Para[i+5];
m_OR3=Def_Stp_Para[i+6];
m_OG3=Def_Stp_Para[i+7];
m_OB3=Def_Stp_Para[i+8];
m_OR4=Def_Stp_Para[i+9];
m_OG4=Def_Stp_Para[i+10];
m_OB4=Def_Stp_Para[i+11];
m_OR5=Def_Stp_Para[i+12];
m_OG5=Def_Stp_Para[i+13];
m_OB5=Def_Stp_Para[i+14];
RGB_Chk_ChgN(&m_OR1,&m_OG1,&m_OB1,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR2,&m_OG2,&m_OB2,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR3,&m_OG3,&m_OB3,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR4,&m_OG4,&m_OB4,32); //将32~63转换成0~-31,供窗口显示
RGB_Chk_ChgN(&m_OR5,&m_OG5,&m_OB5,32); //将32~63转换成0~-31,供窗口显示
// ***** 对静态偏移进行有效性检查 (设置值为-31~+31) *****
RGB_Check(&m_OR1,&m_OG1,&m_OB1,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR2,&m_OG2,&m_OB2,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR3,&m_OG3,&m_OB3,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR4,&m_OG4,&m_OB4,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR5,&m_OG5,&m_OB5,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
m_TSH ="请修改静态偏移参数或选择相关操作.........";
UpdateData(false); //将本过程内的变量值变化导出本过程,更新显示
}
//////////////////////////////////////
//静态偏移设置窗口——参数保存函数 //
//////////////////////////////////////
void CStaticOff::OnSave()
{
UpdateData(true); //将本过程外的变量值变化导入本过程
// ***** 静态偏移下传参数 (设置值为-31~+31,下传值为0~+63) *****
RGB_Check(&m_OR1,&m_OG1,&m_OB1,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR2,&m_OG2,&m_OB2,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR3,&m_OG3,&m_OB3,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR4,&m_OG4,&m_OB4,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
RGB_Check(&m_OR5,&m_OG5,&m_OB5,-31,31); //对静态偏移设置值进行范围(-31~+31)检查
m_TSH = _T("");
UpdateData(false); //将本过程内的变量值变化导出本过程
if (IDNO == MessageBox("是否将当前静态偏移参数保存到参数文件?","确认",MB_YESNO))
{
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
char str[36];
//保存静态偏移设置参数到参数文件
sprintf(str, "%d", m_OR1);
WritePrivateProfileString("CCD_Offset","R1", str, InitDir2);
sprintf(str, "%d", m_OG1);
WritePrivateProfileString("CCD_Offset","G1", str, InitDir2);
sprintf(str, "%d", m_OB1);
WritePrivateProfileString("CCD_Offset","B1", str, InitDir2);
sprintf(str, "%d", m_OR2);
WritePrivateProfileString("CCD_Offset","R2", str, InitDir2);
sprintf(str, "%d", m_OG2);
WritePrivateProfileString("CCD_Offset","G2", str, InitDir2);
sprintf(str, "%d", m_OB2);
WritePrivateProfileString("CCD_Offset","B2", str, InitDir2);
sprintf(str, "%d", m_OR3);
WritePrivateProfileString("CCD_Offset","R3", str, InitDir2);
sprintf(str, "%d", m_OG3);
WritePrivateProfileString("CCD_Offset","G3", str, InitDir2);
sprintf(str, "%d", m_OB3);
WritePrivateProfileString("CCD_Offset","B3", str, InitDir2);
sprintf(str, "%d", m_OR4);
WritePrivateProfileString("CCD_Offset","R4", str, InitDir2);
sprintf(str, "%d", m_OG4);
WritePrivateProfileString("CCD_Offset","G4", str, InitDir2);
sprintf(str, "%d", m_OB4);
WritePrivateProfileString("CCD_Offset","B4", str, InitDir2);
sprintf(str, "%d", m_OR5);
WritePrivateProfileString("CCD_Offset","R5", str, InitDir2);
sprintf(str, "%d", m_OG5);
WritePrivateProfileString("CCD_Offset","G5", str, InitDir2);
sprintf(str, "%d", m_OB5);
WritePrivateProfileString("CCD_Offset","B5", str, InitDir2);
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
UpdateData(false); //将本过程内的变量值变化导出本过程
}
void CStaticOff::OnCancel()
{
m_TSH ="";
UpdateData(false); //将本过程内的变量值变化导出本过程
/* if (IDNO == MessageBox("是否关闭静态偏移校正窗口?","确认",MB_YESNO))
{
m_TSH = _T("请修改静态偏移参数或选择相关操作.........");
UpdateData(false); //将本过程内的变量值变化导出本过程
return;
}
*/
//读取jiaose.ini文件内的静态偏移设置参数初始化Def_Stp_Para缓冲区
Stp_Offset_INI(); //初始化Def_Stp_Para数组中的静态偏移参数
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -