// StctView.cpp : implementation of the CStctView class
//
#include "stdafx.h"
#include "Stct.h"
#include "StctDoc.h"
#include "StctView.h"
#include "StsCar.h"
///////////
#include "io.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "dos.h"
#include "windows.h"
#include "sys\timeb.h"
#include "fstream.h"
#include "math.h"
////////////////
#include "curSetDlg.h"
#include "InPosD.h"
#include "SetProductNo.h"
#include "ProductNoTable1.h"
#include "DucaoSet.h"
#include "curclearDlg.h"
#include "LoadRectDlg.h"
#include "OscSetDlg.h"
#include "FBarDlg.h"
#include "TcDlg.h"
#include "thiftDlg.h"
#include "SetupDlg.h"
#include "SetDosing.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define WM_COMM WM_USER+100
///////////////
#define LISTCOLNUM 20
#define LISTHEIGHT 16
#define Wnd_tiaozheng 1.125
#define L_BLUE1 0xf0a0a0L
#define L_GRAY1 0xe0e0e0L
#define COMDELAY 50
#define MAXCOMERR 6
BOOL ComEnd=TRUE; // Indicate Com End Ok
BOOL CycleToZero;
int BtnX[16]={26,82,138,194,282,338,394,450,506,562,658,714,770,826,882,942};
CRect rectWnd(6,30,1012,595);
//CRect rectWnd(6,30,1012,654); //595
CRect rectLst_Item[38][LISTCOLNUM];
int ListLines=TANKMAX;
int ListItemWidth[LISTCOLNUM]={80,45,55,115,30,40,30,40,40,30,40,115,30,40,30,40,40,30,40,90};
long ListColBkColor[LISTCOLNUM]={L_GRAY, RED, L_GRAY, L_CYAN, L_MAGENTA, L_GRAY,
L_CYAN, WHITE, L_GRAY, L_CYAN, WHITE, L_CYAN, L_MAGENTA, L_GRAY,
L_CYAN, WHITE, L_GRAY, L_CYAN, WHITE, CYAN};
long ListColColor[LISTCOLNUM]={WHITE, WHITE, L_RED, BLACK, BLACK, L_RED,
BLACK, BLACK, L_RED, BLACK, BLACK, BLACK, BLACK, L_RED,
BLACK, BLACK, L_RED, BLACK, BLACK, BLACK};
char *ListHead[LISTCOLNUM]={"槽位名称","状态", "时间", "料号", "片数", "F.A","U.A","I.A",
"F.B", "U.B","I.B", "料号", "片数", "F.C","U.C", "I.C", "F.D", "U.D", "I.D" ,"上板时间"};
/////////////////////
CString Week[7]={_T("日"),_T("一"),_T("二"),_T("三"),_T("四"),_T("五"),_T("六")};
//////////////////////////
static struct RectTkNoCh{ int RectTkNo;
int RectCh;
int Rect_No;
}RectTkNoCh[48];
///////////
static unsigned int CurrBufferTotal[RECTMAX][SAMPLE];
/////////////////
HANDLE hCom1;
COMMTIMEOUTS TimeOuts;
OVERLAPPED wrOverlapped;//重叠化结构
void SendProcess(int TkNo, int RectCh, int FixI);
unsigned char VlotBuffer[RECTMAX][SAMPLE];
unsigned char CurrBuffer[RECTMAX][SAMPLE];
unsigned char SendRectChar[RECTMAX+1][10];
/// here for car use
BOOL LoadStsTempData();
int BtnStatus[16];
int BtnRedraw[16];
// For Auto Shift Use
int ShiftDirect;
int ShiftStopEnable;
BOOL ShiftDelaySw;
int ShiftTimer;
BOOL ShiftDelayOk;
int LimitShiftTime;
BOOL CanSelCu;
long AutoRunTime;
int TcComErr;
BOOL UpToDownCheck[2];
DWORD StockTime;
DWORD StockStTime;
DWORD dwPortVal;//从卡件读回的值
DWORD dwPortVal2;//从卡件读回的值
DWORD dwSetPortVal[5];//送到卡件的值
unsigned int GetValue1[5],GetValue2[5];
///////////////
void SendProcess(int TkNo, int RectCh, int FixI);
//////////////////////
//extern TkInfor TkInfor[64];
//extern TkInforB Tk[TANKMAX];
//extern Product_Will_plating Prdct_wl_plt[200];
//extern FBarInfor FBarInf[TANKMAX];
extern ListRedraw[80];
extern bPrtFlag;
extern Product_Index_num; //料号库中的料号数
extern Product_Index_num_Old; //料号库中的旧的料号数
extern CurrIndex;//有无料号的标记
extern LOAD1; //1列飞吧所在槽位
extern LOAD2; //2列飞吧所在槽位
extern index_coma;
extern index_comb;
//BOOL bResult;
///////////////////////////
////////////////////
/////////////////////////////////////////////////////////////////////////////
// CStctView
IMPLEMENT_DYNCREATE(CStctView, CFormView)
BEGIN_MESSAGE_MAP(CStctView, CFormView)
//{{AFX_MSG_MAP(CStctView)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_WM_PAINT()
ON_WM_TIMER()
ON_COMMAND(ID_SET_DUCAO, OnSetDucao)
ON_COMMAND(ID_CUR_CLEAR, OnCurClear)
ON_COMMAND(ID_FBAR_POS_EDIT, OnFbarPosEdit)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_CBN_SELCHANGE(IDC_PRGCOMBOX, OnSelchangePrgcombox)
ON_CBN_SELCHANGE(IDC_COMBOXCU, OnSelchangeComboxcu)
ON_COMMAND(ID_LEAVE_SYS, OnLeaveSys)
ON_BN_CLICKED(IDC_SETAMPBTN, OnSetampbtn)
ON_BN_CLICKED(IDC_SETPRODUCT, OnSetproduct)
ON_BN_CLICKED(IDC_CLEARBTN, OnClearbtn)
ON_BN_CLICKED(IDC_PRODUCTBTN, OnProductbtn)
ON_BN_CLICKED(IDC_QUERYBTN, OnQuerybtn)
ON_BN_CLICKED(IDC_SETUPBTN, OnSetupbtn)
ON_BN_CLICKED(IDC_TCDLGBTN, OnTcdlgbtn)
ON_BN_CLICKED(IDC_DOSINGBTN, OnDosingbtn)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CStctView construction/destruction
CStctView::CStctView()
: CFormView(CStctView::IDD)
{
//{{AFX_DATA_INIT(CStctView)
m_Cycle = 0;
m_InstA = 0;
m_InstB = 0;
m_PosA = 0;
m_PosB = 0;
m_StepA = 0;
m_StepB = 0;
m_TimerA = 0;
m_TimerB = 0;
m_CodeA = 0;
m_CodeB = 0;
//}}AFX_DATA_INIT
int i;
int Lx;
int Ly;
// CMyApp* app=(CMyApp*)AfxGetApp();
Lx=rectWnd.left+2;
Ly=rectWnd.top+25;
//ListItemWidth[LISTCOLNUM]
for(i=0;i<LISTCOLNUM;i++)
ListItemWidth[i]=int(ListItemWidth[i]*Wnd_tiaozheng);
for(i=0;i<16;i++)
BtnX[i]=BtnX[i]+70;
for(i=0;i<38;i++)
{
for(int j=0;j<LISTCOLNUM;j++)
{
rectLst_Item[i][j].left=Lx;
rectLst_Item[i][j].right=rectLst_Item[i][j].left+ListItemWidth[j];
rectLst_Item[i][j].top=Ly+5;
rectLst_Item[i][j].bottom=rectLst_Item[i][j].top+int(LISTHEIGHT*Wnd_tiaozheng)-5;
Lx=Lx+ListItemWidth[j];
}
Lx=rectWnd.left+2;
Ly=Ly+int(LISTHEIGHT*Wnd_tiaozheng);
}
//CRect rectWnd(6,30,1012,595);//Wnd_tiaozheng=1.125;
rectWnd.bottom=int(rectWnd.bottom*Wnd_tiaozheng);
rectWnd.top=int(rectWnd.top*Wnd_tiaozheng);
rectWnd.right=int(rectWnd.right*Wnd_tiaozheng);
rectWnd.left=int(rectWnd.left*Wnd_tiaozheng);
b_Prorun_display=FALSE;
SetTimer(2, 1000, NULL);
// TODO: add construction code here
}
CStctView::~CStctView()
{
KillTimer(2);
}
void CStctView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStctView)
DDX_Control(pDX, IDCANCEL, m_Cancel);
DDX_Control(pDX, IDC_CLEARBTN, m_ClearBtn);
DDX_Control(pDX, IDC_PRODUCTBTN, m_ProductBtn);
DDX_Control(pDX, IDC_QUERYBTN, m_QueryBtn);
DDX_Control(pDX, IDC_SETUPBTN, m_SetupBtn);
DDX_Control(pDX, IDC_DOSINGBTN, m_DosingBtn);
DDX_Control(pDX, IDC_COMBOXCU, m_comBoxCu);
DDX_Control(pDX, IDC_PRGCOMBOX, m_comboxPrg);
DDX_Control(pDX, IDC_CHECK1, m_mCheckOne);
DDX_Control(pDX, IDC_CHECK2, m_CheckTwo);
DDX_Text(pDX, IDC_EDITCYCLE, m_Cycle);
DDX_Text(pDX, IDC_EDITINSTA, m_InstA);
DDX_Text(pDX, IDC_EDITINSTB, m_InstB);
DDX_Text(pDX, IDC_EDITPOSA, m_PosA);
DDX_Text(pDX, IDC_EDITPOSB, m_PosB);
DDX_Text(pDX, IDC_EDITSTEPA, m_StepA);
DDX_Text(pDX, IDC_EDITSTEPB, m_StepB);
DDX_Text(pDX, IDC_EDITTIMERA, m_TimerA);
DDX_Text(pDX, IDC_EDITTIMERB, m_TimerB);
DDX_Text(pDX, IDC_EDITCODEA, m_CodeA);
DDX_Text(pDX, IDC_EDITCODEB, m_CodeB);
//}}AFX_DATA_MAP
}
BOOL CStctView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CStctView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
CStctApp* app=(CStctApp*)AfxGetApp();
m_hEditBrush = CreateSolidBrush(RGB(125,215,125));
m_hElseBrush = CreateSolidBrush(RGB(215,215,215));
int i;
// TODO: Add your specialized creation code her
一种非阻塞式串行口通讯源代码
3星 · 超过75%的资源 需积分: 10 184 浏览量
2010-05-30
09:49:47
上传
评论
收藏 25KB RAR 举报
zgsxsltsj
- 粉丝: 2
- 资源: 2
最新资源
- WS2-32.lib,在编译程序中可以链接使用
- 秒懂傅里叶变换matlab程序实现过程
- ZEND解密dezender12
- sony 索尼IMX334摄像头模组电路板AD版硬件PCB图(6层板).zip
- 基于flask和echarts融合交易策略的bitfinex可视化微服务.zip
- 包含了wvp-assist.tar wvp-talk.tar zlmediakit.tar .
- 3r4efgh53wgrf43tw
- 2024新版Java基础从入门到精通全套视频+资料下载
- Spring AI大模型视频教程+ChatGPT视频教程+OpenAI大模型视频教程(资料+视频教程)
- ABB工业机器人教程PDF版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈