⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wea2dlg(箭杆).cpp

📁 该程序实现的是一个在织布厂用的提花机程序
💻 CPP
📖 第 1 页 / 共 4 页
字号:
				}
				if(pWnd->m_bResponsed)
				{
					pWnd->m_bResponsed=0;
//				::PostMessage(hwnd,WM_SHOWLIST,0,0); ///   uuuuuuuuu
				::PostMessage(hwnd,WM_SHOWSTATIC,0,0);
				}
				if((bEnable_h==0) && (weai._bit.enable==1))//  enable rising_dedge; fast 0
				{
					g_running.SendControl(weai._bit.backwd,weai._bit.shutle);
				}
			}          //caes 0,  fast
/*			if(bNoSensor==1)
			{
				g_bSendData=0;
				break;
			}
*/	
			if((bBackwd_h==1) && (weai._bit.backwd==0) ) //backwd falling_edge
			{
				if(weai._bit.shutle==0)                       //shutle=0, case 8
				{
					bToMap=1;
					g_running.Backward1();                 // case 8
					g_running.Backward1();                 
//					bCheckOK=g_running.OneLineToMapCheck(1);
					g_running.OneLineToMap(1);
					TRACE("\ncase 8");
					flag=8;
				}
				else
				{                                   // case 7
					bToMap=1;
					g_running.Backward1();
					g_running.Backward1();
					g_running.Backward1();
					TRACE("\ncase 7"); 
//					bCheckOK=g_running.OneLineToMapCheck();
					g_running.OneLineToMap();
					flag=7;
				}
			}
			else if((bEnable_h==1) && (weai._bit.enable==0))//  enable falling_dedge;
			{
				bToMap=1;
				bFinish=g_running.Forward1();            //case 1
				if(weai._bit.fast==0)
					bCheckOK=g_running.OneLineToMapCheck();
				else
					g_running.OneLineToMap();
				if(weai._bit.fast==0)
				{
					bFirstBack=1;
					if(bButtonLocked==0)
					{
						bButtonLocked=1;
						::PostMessage(hwnd,WM_LOCKBUTTON,0,0);
					}
				}
				if(bFinish)
				{
					pWnd->m_info.Format("Job_List has been finished");
					g_bSendData=0;
				}
			}
			else if((bEnable_h==0) && (weai._bit.enable==1))  //enable rising_edge  fast 1
			{
				g_running.SendControl(weai._bit.backwd,weai._bit.shutle);
			}
			break;
		case 8:
			if((bEnable_h==1) && (weai._bit.enable==0))//  enable falling_dedge;
			{
				bToMap=1;                           
				g_running.Backward1();                 // case 3
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 3");
				flag=3;
			}
			break;
		case 3:
			if((bBackwd_h==0) && (weai._bit.backwd==1))  //backword rising_edge
			{
				bToMap=1;                          // case 11
				g_running.Forward1();
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 11");
				flag=0;
				::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
				bButtonLocked=0;
				if(bDataErr==1)
				{
				g_running.Forward1();
					g_bSendData=0;
					g_running.StopRun();
//					pWnd->m_info.Format("\nData transmission error\
	//					\nPress Clear when ready.\n");
//			pWnd->m_info.Format("\nData transmission error in running\
//			     \n Map No. %d ?\n  Press Clear when ready.\n",g_running.m_ErrorMap);
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
			g_running.WriteError();
			g_running.DelayMs(100);
				}
			}
			break;
		case 7:
			if((bBackwd_h==0) && (weai._bit.backwd==1))//  backward rising_dedge;
			{
				bToMap=1;                          // case 14
				g_running.Forward1();
				g_running.Forward1();
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
//				g_bWoofFinish=1;
				TRACE("\ncase 14");
				flag=0;
				::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
				bButtonLocked=0;
				if(bDataErr==1)
				{
					g_running.Forward1();
					g_bSendData=0;
					g_running.StopRun();
//					pWnd->m_info.Format("\nData transmission error\
//					\n Map No. %d ?	\nPress Clear when ready.\n",g_running.m_ErrorMap);
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
			g_running.WriteError();
			g_running.DelayMs(100);
				}
				break;
			}

			if((bEnable_h==1) && (weai._bit.enable==0))//  enable falling_dedge;
			{
				bToMap=1;
				if(bFirstBack==1)
				{
					bFirstBack=0;
					if(weai._bit.wo_brk==0)
					{
						g_running.Backward1();         // case 5
//						bCheckOK=g_running.OneLineToMapCheck();
						g_running.OneLineToMap();
						TRACE("\ncase 5");
						flag=5;
						break;
					}
				}
				g_running.Backward1();                 // case 2
				g_running.Backward1();                 
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 2");
				flag=2;
			}
			break;
		case 2:
			if((bBackwd_h==0) && (weai._bit.backwd==1))  //backword rising_edge
			{
				bToMap=1;                          // case 10
				g_running.Forward1();
				g_running.Forward1();
				g_running.Forward1();
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 10");
				flag=0;
				::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
				bButtonLocked=0;
				if(bDataErr==1)
				{
					g_running.Forward1();
					g_bSendData=0;
					g_running.StopRun();
//			pWnd->m_info.Format("\nData transmission error in running\
//			     \n Map No. %d ?\n  Press Clear when ready.\n",g_running.m_ErrorMap);
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
			g_running.WriteError();
			g_running.DelayMs(100);
				}
			}
			break;
		case 5:
			if((weai._bit.enable==0) && (bEnable_h==1)) // enable falling_edge
			{
				bToMap=1;                                 // case 6
				g_running.Backward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 6");
				flag=6;
				break;
			}
			if((weai._bit.shutle==0) && (bShutle_h==1)) // shutle falling_edge
			{
				bToMap=1;                                 // case 9
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck(1);
				g_running.OneLineToMap(1);
				TRACE("\ncase 9");
				flag=9;
			}
			break;
		case 6:
			if((bBackwd_h==0) && (weai._bit.backwd==1))  //backword rising_edge
			{
				bToMap=1;                          // case 14
				g_running.Forward1();
				g_running.Forward1();
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				g_bWoofFinish=1;
				TRACE("\ncase 14");
				flag=0;
				::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
				bButtonLocked=0;
				if(bDataErr==1)
				{
					g_running.Forward1();
					g_bSendData=0;
					g_running.StopRun();
//					pWnd->m_info.Format("\nData transmission error\
//						\nPress Clear when ready.\n");
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
			g_running.WriteError();
			g_running.DelayMs(100);
				}
			}
			break;
		case 9:
			if((bEnable_h==1) && (weai._bit.enable==0))//  enable falling_dedge;
			{
				bToMap=1;
				g_running.Backward1();                // case 4
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				TRACE("\ncase 4");
				flag=4;
			}
			break;
		case 4:
			if((bBackwd_h==0) && (weai._bit.backwd==1))  //backword rising_edge
			{
				bToMap=1;                          // case 12
				g_running.Forward1();
				g_running.Forward1();
//				bCheckOK=g_running.OneLineToMapCheck();
				g_running.OneLineToMap();
				g_bWoofFinish=1;
				TRACE("\ncase 12");
				flag=0;
				::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
				bButtonLocked=0;
				if(bDataErr==1)
				{
					g_running.Forward1();
					g_bSendData=0;
					g_running.StopRun();
//					pWnd->m_info.Format("\nData transmission error\
//						\nPress Clear when ready.\n");
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
			g_running.WriteError();
			g_running.DelayMs(100);
				}
			}
			break;
		default:
			TRACE("\nunkown case, flag=%d\n",flag);
			break;
		}

		if((bEnable_h==0) && (weai._bit.enable==1))  //enable rising_edge   ooooooooooppppppppp  8/26
			{
				g_running.SendControl(weai._bit.backwd,weai._bit.shutle);
			}
		if((weai._bit.wo_brk==0) && (bWobrk_h==1)) //woof_break falling_edge
			bFirstBack=1;
			

		if((bCheckOK==FALSE) && (g_bDataLock==1))
		{
			int j=g_running.m_WritePointer.j._int;
			int k=j/4;
			pWnd->m_info.Format(IDS_DATA_ERROR+g_language,g_running.m_ErrorMap);
//			g_running.WriteError();
			if(flag==0)
			{
				g_running.Forward1();
				g_bSendData=0;
				g_running.StopRun();

// method 2      ----------------------------------
/*			CString info=pWnd->m_info;
			BOOL led;
			CString info1;
			g_test.TestDataTrans(info,info1,info1,led);
			pWnd->m_info=pWnd->m_info+info;
			pWnd->m_info+=info1;
*/	
//	BOOL bLED_flash;
//	g_test.TestDataTrans(pWnd->m_info,bLED_flash);

			g_running.WriteError();
			g_running.DelayMs(100);
			}
			else
				bDataErr=1;
		}
		else
		{
			if((bToMap==1) && (pWnd->m_bResponsed))      //  ttttttttttttrrrrrrr
			{
				pWnd->m_bResponsed=0;
				::PostMessage(hwnd,WM_SHOWLIST,0,0);
			}
		}
		bEnable_h=weai._bit.enable;
		bBackwd_h=weai._bit.backwd;
		bWobrk_h=weai._bit.wo_brk;
		bShutle_h=weai._bit.shutle;

//		EnterCriticalSection(&g_cs);
//		LeaveCriticalSection(&g_cs);

		g_running.Delay();
	}
	g_running.StopRun();
	::PostMessage(hwnd,WM_SHOWLIST,0,0);
//	::PostMessage(hwnd,WM_SHOWSTATIC,0,1);
	::PostMessage(hwnd,WM_ENABLEBUTTON,0,0);
	pWnd->m_bResponsed=0;
	::PostMessage(hwnd,WM_UPDATEINFO,0,0);
//	while(pWnd->m_bResponsed==0)
//	{
//	}
	return 0;
}

void CWea2Dlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent==10)
	{
		int p=PC_DISABLE_L_O;
		int d=0;
		_outp(p,d);
		KillTimer(m_timer);
	m_info.Format(IDS_STAY_TOO_LONG);  
	UpdateData(0);
	g_bSendData=0;
	Sleep(1000);
	}
	CDialog::OnTimer(nIDEvent);
}

void CWea2Dlg::OnTest() 
{
	BOOL bSendData=g_bSendData;
	g_bSendData=0;
	g_running.DelayMs(50);
	CTestDlg dlg;
	dlg.DoModal();
	if(g_test.CheckMapNumber(m_info,g_job.m_Width/4)==FALSE)//03_12_27 加
	{
			UpdateData(0);
			g_running.StopRun(); 
			return;
	}
	g_bSendData=bSendData;
	if(g_bSendData)
	{
		g_running.StartRun();
		CWinThread* pT=AfxBeginThread(SendData,this,THREAD_PRIORITY_HIGHEST);//ABOVE_NORMAL  );//GetSafeHwnd());//,THREAD_PRIORITY_TIME_CRITICAL);  //启动一个线程
	}	
	g_running.OneLineToMap();
}


BOOL CWea2Dlg::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	g_bFlashLED=0;
	g_running.DelayMs(1000);	
	return CDialog::DestroyWindow();
}

/*void CWea2Dlg::OnLanguage() 
{
	// TODO: Add your control notification handler code here
//	g_running.WriteLines();
//	return;
	if(g_language==E)
	{
		g_language=CN;
		PostMessage(WM_LANGUAGE,1,0);
	}
	else
	{
		g_language=E;
		PostMessage(WM_LANGUAGE,0,0);
	}
}
*/

void CWea2Dlg::OnFileop() 
{
	BOOL bSendData=g_bSendData;
	g_bSendData=0;
	g_running.DelayMs(50);	

	int p=PC_INI_O;
	int d=0;
	_outp(p,d);

	HINSTANCE hDLL;
	FILEOPSMP fileopsmp;
	hDLL=NULL;
	hDLL = LoadLibrary("file_dll");
	if (hDLL != NULL)
	{
		fileopsmp=(FILEOPSMP)GetProcAddress(hDLL, "FileOpSmp");
	    if ( !fileopsmp)
	    {
		   AfxMessageBox("Can't load dll function --- FileOp");
	    }
	    else
		{
			fileopsmp(g_language);
		}
		FreeLibrary(hDLL);
	}
	else
		AfxMessageBox("Can't load  DLL");
	
	p=PC_INI_O;
	d=0xaa;
	_outp(p,d);
	if(bSendData==1)
	{
		g_running.StartRun();	
//		m_info.Format(IDS_READY+g_language);
//		UpdateData(0);
//		UpdateList(g_running.m_WritePointer.i._int);
		CWinThread* pT=AfxBeginThread(SendData,this,THREAD_PRIORITY_HIGHEST);//GetSafeHwnd());//,THREAD_PRIORITY_TIME_CRITICAL);  //启动一个线程
	}
}


void CWea2Dlg::OnCreateJob() 
{
	// TODO: Add your control notification handler code here
	BOOL bSendData=g_bSendData;
	g_bSendData=0;
	g_running.DelayMs(50);	

	int p=PC_INI_O;
	int d=0;
	_outp(p,d);

	CJobDlg dlg;
	dlg.DoModal();
	if(g_job.GetSize()==0)
	{
		return;
	}

	g_bSendData=0;
	Sleep(1000);
	p=PC_INI_O;
	d=0xaa;
	_outp(p,d);
	if(bSendData==1)
	{
		g_running.StartRun();	
//		m_info.Format(IDS_READY+g_language);
//		UpdateData(0);
//		UpdateList(g_running.m_WritePointer.i._int);
		CWinThread* pT=AfxBeginThread(SendData,this,THREAD_PRIORITY_HIGHEST);//GetSafeHwnd());//,THREAD_PRIORITY_TIME_CRITICAL);  //启动一个线程
	}
	
}

void CWea2Dlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	if(m_hDLL)
	{
		FreeLibrary(m_hDLL);
		m_hDLL=NULL;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -